
在网关的使用中遇到客户需要将串行多功能电能表接入罗克韦尔EtherNet/IP网络的PLC中电能表符合电力行业DL/T 645-2007标准。本文将介绍其实现过程。下面我们将分别介绍电力DL/T 645-2007标准和实现方案。电力DL/T 645-2007标准DL/T645规约是针对电表通信而制定的通信协议主要有两个版本分别是DL/T645-97和DL/T645-0797代表是97年制定的协议07则是2007年修正后的协议两个版本都广泛应用。DL/T 645支持RS485有线和红外无线通信采用主-从结构半双工通信方式采集器和电表通过一问一答方式来传输数据。本文主要介绍RS485串行通讯。通信速率标准速率600bps1200bps2400bps4800bps9600bps19200bps。出厂默认2400bps。字节格式每字节含8位二进制码1个起始位(0)、1个偶校验位和1个停止位(1) 共 11位。D0 是字节的最低有效位D7 是字节的最高有效位。先传低位后传高位。数据帧格式控制码格式常用控制码0x11主站发出请求读取数据0x91从站发出应答返回读取数据数据域数据域包括数据标识、密码、操作者代码、数据、帧序号等。常用的数据标识如表中所示前导字节设备在发送帧信息之前先发送4个字节FEH以唤醒接收方。传输响应通信总是由主站向从站发出请求命令被请求的从站接收到命令后作出响应。从站设备收到命令帧后的响应延时 Td20ms≤Td≤500ms 字节之间停顿时间 TbTb≤500ms。应用举例电表地址21 65 20 01 40 19获取电表A相电流的数值数据标识02 02 01 00。主站发送的请求数据帧电表发送的应答数据帧电表返回的A相电流数值是CB 47 33转换为原始数据减去0x33并翻转字节序为00 14 98因此对应的实际电流是1.498A。实现方案通过Anybus ABC3007网关将串行RS485接口的多功能电能表接入罗克韦尔EtherNet/IP网络的PLC中网络结构如下图所示。如果您的PLC是西 门子PROFINET网络或者倍福EtherCAT网络或者别的通讯协议的PLC可以使用该系列其他型号的网关进行转换如ABC3013将串行设备接入PROFINENT网络PLCABC3061将串行设备接入EtherCAT网络PLC。网关配置设置串行通信参数按照电表串行通信中1个起始位、8个数据位1个偶校验位和一个停止位设置串行通讯参数。波特率根据实际电表设置默认2400bps。创建指令模板按照数据帧格式创建指令模板如读相电压相电流等。由于每一块电表的地址是不同的在模板中不给定电表地址数值使用时再设置。调用指令根据需要调用读A相电流指令填入电表地址。通讯报文抓取串行总线上的报文可以看到电表返回的A相电流数值。网关不对读取到的A相电流数据进行换算为保证实时性延迟小于1ms只进行协议的转换将数据传送给另外一侧网络的PLC中在PLC中对数据进行处理和类型转换。数据在PLC中的处理在罗克韦尔PLC中我们需要将网关组态进来然后对数据进行处理和换算。添加网关设备在组态工具中添加网关设备。数据处理从网关传递过来的A相电流数值是CB 47 33需要将其转换为原始数据减去0x33然后按照分辨率0.001进行换算。在线运行将配置和程序下载到PLC中在线运行后可以看到A相电流值是1.498A。以上通过网关我们在PLC中获取到了电表的A相电流当然向电表中写数据的过程也是类似的。虽然电能表和PLC无法直接通讯但是通过一个小小的网关就可以方便的连接起他们。