标题:
基于Ethernet的低压电力线载波阻抗动化测试系统
[打印本页]
作者:
forsuccess
时间:
2013-1-23 22:47
标题:
基于Ethernet的低压电力线载波阻抗动化测试系统
电力线网络分布广泛,其接入的负载复杂多样并具有时变性,载波信道的阻抗匹配与否严重影响着电力线载波的可靠、实时传输[1]。在电网处于工作状态时,人们会测量电网载波信道的阻抗值,通过这些数据来优化载波信号,保障载波通信和抄表的质量。DZ3载波阻抗测试装置正是用于测量低压电力线的载波信道阻抗,它主要由主站和终端两部分组成。
主站通过向测试终端发送统一格式的报文指令来控制终端的具体操作。主站负责接收、存储终端测试所得的数据,并对终端上传的数据进行相关处理。终端依据自由坐标轴阻抗测试原理,可测量80 kHz~500 kHz量程范围内的低压电力线载波信道阻抗的模值和相位[2-3]。每个终端都配有一个独一无二的ID号。当终端与主站连接成功时,主站管理软件的界面上会显示出在线终端设备的ID号,通过选中ID号来对相应的终端设备发送指令。使用主站管理软件设置测试频点、测量时间间隔等参数,终端可自动完成单一频点或是多个频点的载波阻抗测量,并保存测量数据。
通过主站设置相应的参数可使终端实现阻抗的自动化测试,主站与终端之间有三种通信方式:USB、GPRS及以太网通信方式,从而使阻抗测试更加方便。使用一根USB连接线直接把计算机与终端相连,主站便可读取终端中的测量数据,并向终端发送指令,但电脑的USB接口有限,一台PC机不能同时控制多台终端,且USB连接线长度有限只能近距离测试[4-5]。也可采用GPRS的通信方式,在终端的GPRS模块中安上客户识别模块SIM卡(Subscriber Identity Module),主站的通信设置项选择GPRS通信即可控制终端运行,但这种方式费用较高[2]。为了降低测试费用并实现对不同地点的多台终端的同时监控,新增了以太网的通信方式。以太网可封装任何协议的数据,具有标准化成熟、灵活性好、成本低、易于使用等优势,选用以太网通信方式,主站可同时监控在同一局域网内的多台终端设备[6,7]。
2 DZ3载波阻抗测试终端以太网通信方式调测
DZ3载波阻抗测试终端原有USB与GPRS两种通信方式,现在又添加了以太网的通信方式[8]。其实质是在终端硬件原有基础上增加了一个以太网转串口模块,并在终端的软件部分进行了串口接收数据的相关修改。该模块给每台终端设备都设置了一个IP号,可自动侦测10/100 Mb/s的网络环境,实现TCP/IP到TTL间的数据转换。为确保使用新的通信方式时,终端与主站间能正常地进行命令与数据的传输,且不影响其他所有模块正常工作,需要在使用前对其进行相应的测试。
2.1 终端部分程序的修改
以太网数据收发方式除04命令(主站向终端发送要求上传ID号的命令)外,其他所有命令与USB通信方式相同,数据处理方式也与USB一致,程序都进入USB_Poll()函数进行命令的处理,只是测量数据包的发送方式不同于USB,采用的是串口发送,再经串口转以太网接口模块,最后由以太网上传至主站。因此,终端的程序需增加判断终端连接上线的函数,并在串口接收数据及部分命令处理程序中进行修改。具体执行步骤如下:
(1)修改串口0接收中断函数void IntUart0Rx(void) interrupt 4。原程序负责接收主站发送给终端的所有命令,将接收到的命令存入临时缓存中,再调用接收串比较函数来判定接收的命令标置位。现在程序中增加了以太网连接方式标记位,用于处理以太网连接方式的数据,再依据命令的第二位(命令的第二位数字表示当前接收命令的长度)来截取测试所需的有效位数。
(2)修改接收串比较函数GPRS_RecString_Comp(Uart0_Re_buf)。该函数原用于比较GPRS通信方式时接收到的字符串,以便相应标志位的设置。现在终端新增了以太网与串口接口转换的通信模块,当终端与主站都上线并处于同一局域网时,为确认终端设备是否已经与主站连接成功,主站会向终端发送04命令,即ID号上传请求命令。此时,若终端已连接上线,终端的串口中断接收函数可接收到04命令,然后进入接收串比较函数。比较函数把接收到的命令与程序中记录的正确命令相比较,若接收的命令完全正确,终端会立即把ID号回复给主站,并把以太网通信方式标记位设置为1,表示终端与主站连接成功。否则表示终端与主站连接失败,主站无法使用以太网的方式向终端发送命令及接收终端上传的数据。
(3) 修改void USB_Poll(unsigned char *n)函数。该函数原是USB通信方式的命令处理函数,由于以太网通信方式的命令处理同USB一致(04命令除外),只有处理后的数据包发送方法不同,因此,在原函数中调用了串口发送程序。当以太网通信方式标记位的值为1时,终端的数据包采用串口发送至串口转以太网模块,经以太网传至主站。
2.2 终端以太网通信方式的命令收发测试
测前需先确定DZ3载波阻抗测试终端的硬件无故障,程序修改完编译无错误后即可载入芯片中开始具体的测试。测试方法是先使用网络调试助手发指令给终端,若终端能辨识出接收的指令正确与否,同时正确回复所有接收正确的指令,则表示终端软、硬件均无误,可与主站连接正常工作。终端回复的数据包中数据格式多样,有些为十六进制数据,有些则为BCD码,还有些为WORD型数据。
主要测试的几条常用指令如下:
(1) ID号的上传
主站开机,若选择以太网通信方式,主站向终端发送“04 04 FF 00”命令,要求终端上传ID号,终端中断接收函数(void IntUart0Rx(void) interrupt 4,串口0接收中断函数)接到04命令后,进入GPRS_RecString_Comp函数,对接收到的串比较,判断接收到的串中与04命令匹配后,对相应的标志置位设置为1,表示终端连接上网络了。又返回中断接收函数。后进入USB_Poll()函数,若Comcode=0x04,用串口发送ID给主站。具体测试如下:
主站发:04 04 FF 00
终端回复:相应终端设备的ID号,如84 00 00 0C 0C 05 00 01 03 03 80 00。
终端回复的数据串表示接收数据的长度为12位(终端回复主站的命令的第3位与第4位表示报文长度,00 0C是十六进制数据,转为十进制数值为12),该测试终端的ID号的流水号为: 000133。
若终端无回复,则需先检查网络调试助手与终端是否已建立连接,确定连接后,逐步调试程序,查看程序的串口接收函数中有无指令接收到,如此逐步查询直至找到具体故障点。若终端回复的位数不对或是回复的数据有误,则需先查看接收到的指令是否正确,若正确则进入相应指令的数据处理函数,辨别是终端数据处理不当还是数据包发送时发生了掉包故障,亦或是主站接收程序的故障。
(2)状态读回
主站发要求读回当前测试状态的08命令给终端,终端接收到命令,进入USB_Poll() 函数,先解析命令,得知是08命令后(即Comcode=0x08),进入08命令的处理程序,数据处理后需上传给主站的数据包使用串口发送给主站。测试如下:
主站发:08 04 F3 00
终端回复:终端设备的当前具体状态,如88 00 00 12 05 02 A0 8C 20 11 07 07 17 16 34 19 55 00。
从接收数据串的第3位和第4位可知主站接收到的这串数据长度为18位(00 12十进制为18),05表示测试的组间时间间隔为5 min,02表示频点时间间隔为2 min,当前测试频点为110 kHz(A08C十进制为41 100,
41 100-40 000=1100,1 100/10=110),20 11 07 07 17 16 34 19则表示当前的时间状态:2011年、周六、7月、17日、16时、34分、19秒。
其他所有指令的发送与接收都是在确定ID号上传正确后才可进行,此时可确定串口的收发程序无误,直接调测命令解析与数据处理部分的程序。
(3) 阻抗实时测量
主站发03命令给终端,终端接收到命令,进入USB_Poll()函数,解析得知是03命令后(即Comcode=0x03),进入03命令的处理程序,在实时测量结束后,把测量所得的数据通过串口发送当前状态给主站。阻抗实时测量的测试过程如下:
主站发:03 04 F8 00
终端回复:终端当前测量的频率点、阻抗模值及相位等数据。如83 00 00 21 11 07 15 2B 5C 16 09 00 31 FF F8 52 6C 16 09 00 66 FF FD 79 7C 16 09 00 CC FF FD 91 00。
终端答复主站的这串数据的长度为33位(00 21十进制为33),11 07 15表示11年7月15日,2B 5C表示测试频率点为110(2B 5C十进制为11 100, 11 100-10 000=1 100,1 100/10=110) ,16 09表示16时9分,阻抗模值为20.4(00 CC十进制为204,204/10=20.4),FF FD分别为相位高低位的计算参数,91为校验位,00表示最后的结束符。终端实时测量的具体回复数据会依据当前主站设置测量的参数值而变化。
若终端回复的数据与主站设置的参数不一致,需要查看03命令的解析程序解析结果是否正确,若命令解析无误则应逐步调试阻抗测量部分的程序,观察几条关键程序执行后得到的结果与理论值是否相近。
(4) 读终端上报数据
当测试人员想查看前一天的测试数据时,测试人员可登入主站管理软件,用主站发02命令给终端,02命令可使终端把所有的测试数据上传给主站。终端接收到命令,进入USB_Poll() 函数,解析得知是02命令后(即Comcode=0x02),进入02命令处理的那段程序,除中间的7次循环发送0这一点上存在区别(以太网通信方式不发而USB发)外,其他数据都由串口发送给主站。02命令的回复数据包含了前一天或是前几天的测试数据(DZ3阻抗测试终端最多可记忆8天的测量数据),因此其回复的数据包长度是所有报文指令中最长的。具体测试结果如下:
主站发:02 04 F9 00
终端回复:终端内存储的所有阻抗测量数据。如82 00 00 27 12 04 05 31 9C 00 01 09 00 00 CB FF FC 58 AC 00 01 09 00 02 0A FF FB 7F BC 00 01 09 00 05 ED FF FC F4 00,具体回复的数据依据终端测量所得的数据而定。
终端回复的82报文内容可分为三部分:数据头、数据段及结束段。数据头含命令类型、回复命令的状态、数据包的长度及时间四点。如上面回复报文中的前几位82 00 00 27 12 04 05表示终端回复的是82命令,00表示命令状态正常,00 27说明数据包长度为39位,发送时间为12年4月5日。数据段由多个阻抗测试数据块组成,解析数据块可得知测试的频率点、此频率点下测试所得的数据长度、测试该点的时间、测得的阻抗模值及相位。例子中的第一个数据块31 9C 00 01 09 00 00 CB FF FC即表示测试频点为270 kHz(31 9C十进制为12 700,(12 700-10 000)/10=270),00 01是WORD型数据表示该数据块的长度,09 00 说明测试时间在9点整,00 CB用于计算阻抗模值,FF FC则用于相位的计算。终端回复的数据包的最后两位数据F4 00是结束段,F4为校验位,00是结束符。
一台终端用于测试的时间越长,内部存储的数据会随之增多(每台终端最多可存储8天的测量数据)。终端传给主站的上报数据越多,主站接收数据包的过程中就有可能发生数据掉包或数据错误等故障,这时可用网络调试助手发送02命令给终端,若网络调试助手接收到终端回复的数据包完整,则表示故障点在主站的接收或解析数据包程序中,否则表示终端有故障。
(5) 错误命令
由于传输过程中的各种干扰,终端接收到的命令有可能发生错误,终端在接收到错误的命令后会回复主站并要求其重发。测试过程如下:
主站发:16 04 ED 00(该命令不存在)
终端回复:CC 00 00 07 16 22 00
CC表示终端接收到的命令是不在协议规定的范围内的异常命令码,00 07说明该回复数据有7位(00 07为十进制7),16是指接收到的错误命令码(以16H开头的命令),22是校验位,00为结束符。
(6) 其他命令
主站发命令给终端,终端接收到命令,进入USB_Poll() 函数,解析得到Comcode后,依据Comcode的具体数值判断得知主站发给终端的是哪一条命令,随后进入这条命令相应的命令处理程序,最后把需要发送的数据通过串口传到终端的串口转以太网工作模块,通过以太网把数据包传给主站。
作者:
TLP291
时间:
2013-3-22 11:44
深圳潮光光耦網——光耦(隔離器)應用服務商
原裝、正品、現貨
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0