杨鸿昌, 戴 睿, 徐 亮, 蒋 伟
(1.国网四川省电力公司 信息通信公司, 四川 成都 610054;2.上海电力学院 电子与信息工程学院, 上海 200090)
某些复杂线路情况下,电力客户信息记录与实际不符,造成抄表率低,人工清查困难.本文设计了一种台区客户信息检测终端,可以在线自动检测,准确查清台区用户信息.该终端基于微软公司嵌入式移动计算平台(Windows Embedded Compact,WINCE) 系统、载波模块和GSM模块,采用text文本存储检测日志和结果报表.终端设置编号,上位机与终端通过GPRS通信,采用自定义通信协议,有广播和分播两种方式,可以同时控制5个终端,系统可移植性强.
台区客户信息检测系统由上位机客户信息管理软件和台区客户信息检测终端组成.系统架构如图1所示.终端置于台区配电箱集中器端,通过
电力线载波通信(Power Line Communication,PLC)对载波电能表(采集器或电表)进行检测.电力线载波通信是指将信息调制为高频信号并耦合至电力线路,利用电力线路作为介质进行通信的技术.[1]对于线路复杂的老旧城区,不同台区的电表与采集器通过485总线相连或直接与电力线相连.由于采集器、电表可能位于不同相,所以终端采用三相轮询制,只要有一相检测到即可确定台区归属.
图1 台区客户信息检测系统架构
上位机通过GPRS将台区归属不清、不能抄表的采集器地址或电表号列表下载至终端.终端发出特定查询数据包至目标采集器或电表,如果目标连接在当前台区,则会返回一个应答数据包;如果没有应答,则会再做3次握手尝试;若仍无应答,则认为目标未连接到当前台区.各终端将检测结果上报上位机,用于更新客户信息数据库.
在线检测终端硬件结构如图2所示.采用飞凌嵌入式OK6410-B为主控模块,6层PCB设计,性能稳定,能经受强电磁环境考验.[2]采用Samsung S3C6410处理器,内置256 MB,NAND Flash可掉电存储日志文件和结果报表.接4.3寸触摸屏作为显示和输入模块.使用开发板五线RS232电平串口(DB9母座)接GSM模块,将3个三线TTL电平串口引出,接3个电力线载波模块,利用载波模块将主控板的抄读命令发送到电力线上,并从电力线接收载波模块(载波电能表)返回的数据信息.电源模块将220 V转为5 V直流电压,采用开关电源加LCL模拟滤波电路方式来保证供电的稳定可靠.手持终端由电源模块、OK6410-B主控模块和单相电力线载波模块组成.
图2 终端硬件结构
终端选用WINCE6.0系统作为软件开发平台,提供运行环境和文件管理.WINCE6.0拥有多线程、多任务,以及确定性的实时完全抢先式优先级的操作系统环境,其模块化的设计方式便于定制.[3]
飞凌OK6410板提供了BSP源码包,安装后打开BSP工程文件就可以编译内核.BSP是操作系统和硬件之间的接口,其包含了系统中所有硬件驱动,并根据终端需要,添加了看门狗驱动.
为了防止死机或异常退出引起终端故障,提高系统运行的稳定性,采用如下设计.
3.2.1 设置看门狗
首先要启用系统看门狗功能,定义:
#define ENABLE_WATCH_DOG 1
然后在WINCE工程中新建看门狗驱动,在drivers文件夹下生成wdg文件夹及一系列文件.编译WINCE工程文件生成的镜像文件NK.bin烧写到板子上,即可加载看门狗驱动.
在应用程序中定义:
#define IOCTL_wdg_
wdg1_OPEN 0x04002060
HANDLE pdevice.
程序初始化时开启看门狗:
pdevice = CreateFile(TEXT("wdg1:"),GENERIC_READ|GENERIC_WRITE,NULL,NULL,OPEN_EXISTING,0,NULL).
设2 s定时器,在OnTimer()函数里喂狗:
DeviceIoControl(pdevice,IOCTL_wdg_wdg1_OPEN,NULL,NULL,NULL,NULL,NULL,NULL).
3.2.2 开机自启
为了便于工作人员操作和复位自启,终端将台区检测应用程序SeriesSample.exe编译到内核并且开机自运行.
当终端死机或异常退出时,不能按时喂狗,看门狗触发终端重启,开机自启保证软件自动开启运行,以节省人工.
在线终端的主要功能是通过低压电力线载波技术检测连接到当前变压器的所有采集器,然后将采集器的信息发送至信息管理服务器;支持由管理中心设置检测参数(如轮询次数、查询时段、检测周期),也支持终端界面设置.检测结果上传采用被动上传方式,即当接收到相关命令时才上传.检测工作方式为被动检测,可选择是否立即执行,或设定时间自动检测.具有校时功能,与PC端客户软件定义对应数据格式,远程控制指令和反馈均通过GPRS通信实现.
在线检测终端软件如图3所示.
图3 在线检测终端软件示意
系统软件的主要流程是:先将不确定表号列表下载到各台区变压器检测终端,终端进行检测并返回结果;管理软件通过对结果的分析更新台区客户信息数据库,剩余不能确认归属的则使用手持终端现场确认,梳理出的从属关系下载到对应台区变压器下的集中器以实现准确抄表.
主控模块OK6410-B通过3个电力线载波模块连接A相、B相、C相,通过电力载波通信技术对三相载波电能表进行轮询.按照DL/T645通信协议与电能表信息进行交互[4],采用主-从结构的半双工通信方式.由终端发出的信息帧控制通信链路的建立和解除.传输波特率为9 600 bps,程序采用多串口多线程来实现收发的实时处理.由于一相查到即可确定归属,因此可在A相轮询所有电能表,未查到的在B相查,剩余未查到的在C相查询.检测结果写入“结果列表.txt”,并生成记录文件“检测日志.txt”.
以查询采集器为例,查询帧格式[5]依次为:前导符、帧长、特征域、地址域、控制码、645控制码、645数据域、CRC校验、结束符.
特征域为9AH 81H,地址域采用缩位算法实现地址编码,由源地址、中继地址和目的地址组成.源地址为00H,目的地址为采集器地址.域的长度为2 B,CRC校验值计算公式为:
G(x)=x16+x15+x2+1
(1)
设置变量Rec_State,发送线程和接收线程共用,表明接收端状态.Rec_State=READFAIL表示载波通信异常;Rec_State=DATAERROR 表示响应帧错误;Rec_State=RECSUCCEED 表示正常接收;Rec_State=RXTIMEOUT表示超时.设定4 s定时,每4 s发一帧数据,若成功接收则将发送标志位bSend置1,表示已发送,检测标志位Done置1表示完成检测,转入下一帧数据发送.若失败,则重发3次;若仍不能成功接收,则将发送标志位bSend置-1,表示发送失败,也转入下一帧发送.
接收端可以对串口数据进行读取和分析,若串口数据未读入,readBuf设置接收状态载波通信异常;若不是完整响应帧,设置接收端状态响应帧错误;若采集器在线设置接收端状态正常,则可解析出相位和信号品质;若采集器不在线,设置接收端状态为不在线.
终端和上位机管理中心通过GPRS移动通信公网来实现信息的传输.终端接收上位机管理中心发送过来的采集器地址列表或电表号列表,由管理中心设置检测方式、检测时段、检测周期等参数.检测结果上传采用被动上传方式,当终端接收到上位机管理中心的查询结果命令时,终端自动读取结果列表文件并上传至上位机.
终端和上位机之间的通信采用自定义协议.协议帧格式为编号、帧头、命令字、帧长、信息字段和CRC校验.通过编号来区分不同终端,命令字为1 B,用来区分功能,如上传结果、采集器地址下载、设置检测时间、设置轮询次数、启动检测、复位、同步时间等.CRC校验域的长度为2 B,CRC校验值计算公式同式(1).
在实验室用2台集中器、3台采集器、5台电表搭建配电网模拟环境.集中器1下接2个采集器,集中器2下接1个采集器,模拟台区1和台区
2.将终端接于集中器1端,如图4所示,从终端界面对检测参数进行设置,也可以通过GPRS通信由上位机管理软件设置.
图4 参数设置
检测结果如图5所示.由图5可知,采集器00072094和00072095在线A相,说明在集中器1下面属于台区1;采集器00072093不在线,说明不属于台区1.
图5 检测结果
本文提出的基于WINCE的台区客户信息检测终端在实验中取得了预期的效果,性能稳定.基于嵌入式系统WINCE平台开发软件,缩短了开发时间,提高了运行速度;设置看门狗保证终端稳定运行,操作更为简单智能.
[1] 吕斌,贺海靖,曲君乐,等.基于电力载波的路灯电缆防盗报警器设计[J].单片机与嵌入式系统应用,2014(2):69-72.
[2] 飞凌嵌入式技术有限公司. OK6410-B开发板WINCE用户手册[EB/OL].[2011-04]. http://www.witech.com.cn/
[3] 吴国伟,毕玲,陈庆.嵌入式操作系统原理及应用开发[M].北京:北京航空航天大学出版社,2007:45-52.
[4] 王坤乾.基于DL/T645的模拟电能表软件的研究[D].北京:华北电力大学,2011.
[5] 中华人民共和国国家发展和改革委员会.DL/T645—2007 多功能电能表通信协议[S].北京:中国电力出版社,2008:1-80.