基于MODBUS协议的远程抄表系统
文章以PK6031智能仪表作为实验设备,运用MODBUS协议,设计了远程抄表系统,实现用户对智能仪表的远程参数设置和数据读取,组成一对多的远程抄表系统。基于MODBUS的远程抄表系统实现电量的实时采集,进而实现对用户用电的远方抄录与控制,系统的应用极大地提高了管理人员的工作效率。
标签:MODBUS;智能电表;远程抄表
Abstract:In this paper,the remote meter reading system is designed with PK6031 intelligent instrument as the experimental equipment and MODBUS protocol,thus the remote parameter setting and data reading of intelligent instrument are realized,and a one-to-many remote meter reading system is formed. The remote meter reading system based on MODBUS can realize the real-time collection of electricity quantity,and then realize the remote recording and control of users’ electricity consumption. Finally,the application of the system greatly improves the working efficiency of the managers.
Keywords:MODBUS;intelligent ammeter;remote meter reading
引言
早期電表多依赖人工上门抄表,效率低,极大浪费人工成本[1],运用现场总线技术可以很好解决这个问题。但采用传统的模拟信号控制或者数字-模拟信号控制的缺点在于其需要“点对点”控制,无法构成现场控制大系统。现场总线技术可以突破瓶颈,它综合了微电子技术、自动控制技术、网络技术等多种技术手段,构成全分散、全数字化、双向多点互联的电表通信控制系统[2]。
1 系统方案设计
如图1所示,抄表系统由上位机,电表以及相应的接口转换器组成。PK6031智能仪表的连接方式为总线型拓扑结构。通讯介质为RS-485,采用的是Modbus-RTU协议。上位机与智能电表采用一主多从的通信方式。通信由主机发起,从机对主机发出信息中的地址码进行识别,并根据识别的结果,做出相应的响应。主机的通信接口方式有两类,主要取决于主机的外设接口。第一类由USB 发出,经过USB/232模块,转换成RS-232电平,再由232/485模块接入RS-485网络。第二类直接由主机的RS-232端口发出,经232/485模块接入RS-485网络。上位机与智能电表之间采用半双工工作方式,即在同一时刻只能处于接收信息状态或者发送信息状态,不能同时收发信息。
PK6031智能仪表采用国际最新电子技术,以专用DSP器件,高速微处理器为核心的数字式智能电参数测量仪,是一款智能型电参数采集模块,可测量三相三线制、三相四线制等系统中的电流、电压、功率、功率因数、频率、电能等。
其输出为RS-485 数字信号:有电压值、电流值、有功功率、无功功率、功率因数、频率、电能等参数。
系统采用RS-485总线。485总线采用数据差分传输方式进行数据通信。利用两条线之间的压差作为逻辑状态的判定标准。因此,其共模抑制抗干扰能力较强,传输速率高。485总线上连接着多台PK6031智能仪表,通过向485总线上广播出Modbus协议信息,对应地从机做出反馈。在RS-485总线上理论上可接256个(地址码00--FF)PK6031智能仪表。系统采用支持Modbus-RTU协议的PK6031智能仪表。同时该表还提供多种波特率选择,可通过LCD液晶显示屏进行参数设置和数据读取。多个PK6031智能仪表之间使用地址码进行区分,保证地址不重复,不会发生冲突。PK6031智能仪表通过RS-485通信接口接到485总线上与上位机之间进行数据通信。
2 Modbus协议实现
当主机以RTU 模式在Modbus 总线上进行通讯时,1个字节分成2个 4 位16 进制的字符,该模式的主要优点是在相同波特率下其传输的字符的密度高于ASCII 模式[3]。
RTU模式下每个字节的格式
注意:如果没有校验位的话,则用停止位补充,即两位停止位。
RTU模式下的帧格式
(1)定义defbyte数组依次拼接地址码,功能码,寄存器开始地址,寄存器数量,如表1所示。
(2)根据defbyte数组的内容,送入CRC校验子函数,计算出CRC码并返回。
(3)重新定义rebyte数组,将CRC码拼接到数组尾部。CRC校验码低位在前,高位在后。在RTU模式下,没有开始与结束标志位。取而代之的是t3.5:表示的是3.5个字符的静止时间。这是因为在RTU模式下,信息帧之间以需间隔至少t3.5,即若两个字节之间间隔大于或等于t3.5,则自动识别为两个不同的信息帧。
如表2所示,在接到数据当中,第4,5个字节分别代表电压和电流量程,读取后需先转换成10进制数据类型。第6,7字节代表电流变比为4位16进制数。转换成10进制的策略是:高八位若不为0,则高八位乘以256,加上第八位的数值。若高八位为0,则只需计算第八位数值即可。
3 UI界面设计
在进行UI界面设计的时候,需将同一类的一些控件放到同一个模块里面,这样用户在使用的时候就不会感到很凌乱[4]。如图2所示,在串口设置模块当中,有关于串口设置的端口号,波特率,校验位,数据位,停止位的设置。经过这样的设计之后,用户不至于会与电表的波特率设置相互混淆。在还没有打开串口的时候,有可能用户会触发发送按键,这样程序就会报错。因此,在还没有打开的时候,不能激活相应的按键。只有在串口打开的条件下,才能对发送等按键进行激活。串口打开的时候,应没有办法二次打开,串口打开按键应该无法使用,串口关闭的按键激活,防止用户进行误操作。
在设计UI界面的时候,须考虑到用户的操作顺序。用户的操作顺序:打开串口——写入相应参数——读取电表读数。因此,在设计的时候应有这方面的考虑,让用户操作尽量舒适,满足从上到下,从左到右的习惯。此外,界面增加一个信息提示栏,让用户知道自己的指令是否已经发送出去,得到的数据是否校验成功等,增加人机互动性。
4 结束语
基于Modbus的总线系统优势在于其系统的错误校验,数据交换速度以及可靠性都是传统智能仪表所不能比拟的,这套系统克服了其他通信方式一些没有办法弥补的缺陷。网络管理功能落后,对错误的处理能力弱等缺陷。此外,因本系统严格按照Modbus协议的有关规定,所有支持Modbus控制协议的设备都可以经过简单的编程搭接到总线上,具有较强的通用性。本系统设计了良好的UI界面,设计了众多的按键功能,各个组合键的配合使用可以方便现场的操作和设置。
参考文献:
[1]金萍,刘正其.一种基于ZIGBEE的无线传感网络的智能抄表系统[J].电力工程技术,2016,35(4)36-39.
[2]王利成,陈朝霞.远程抄表系统通讯技术的应用研究[J].工业技术,2016,(6)177-177.
[3]王俊杰,徐建文.基于MODBUS-RTU变频器的PLC设计[J].工业控制计算机,2016,29(02)15-16.
[4]C#编程指南[M].龚小平,史艳辉译.中国水利水电出版社,2002.