通过网关将多功能电能表接入罗克韦尔PLC中
在网关的使用中,遇到客户需要将串行多功能电能表接入罗克韦尔EtherNet/IP网络的PLC中,电能表符合电力行业DL/T 645-2007标准。本文将介绍其实现过程。
下面我们将分别介绍电力DL/T 645-2007标准和实现方案。
电力DL/T 645-2007标准
DL/T645规约是针对电表通信而制定的通信协议,主要有两个版本,分别是DL/T645-97和DL/T645-07,97代表是97年制定的协议,07则是2007年修正后的协议,两个版本都广泛应用。DL/T 645支持RS485有线和红外无线通信,采用主-从结构半双工通信方式,采集器和电表通过一问一答方式来传输数据。本文主要介绍RS485串行通讯。
- 通信速率
标准速率:600bps,1200bps,2400bps,4800bps,9600bps,19200bps。出厂默认2400bps。
- 字节格式
每字节含8位二进制码,1个起始位(0)、1个偶校验位和1个停止位(1), 共 11位。D0 是字节的最低有效位,D7 是字节的最高有效位。先传低位,后传高位。
- 数据帧格式
- 控制码格式
常用控制码:0x11,主站发出请求读取数据
0x91,从站发出应答返回读取数据
- 数据域
数据域包括数据标识、密码、操作者代码、数据、帧序号等。
常用的数据标识如表中所示:
- 前导字节
设备在发送帧信息之前,先发送4个字节FEH,以唤醒接收方。
- 传输响应
通信总是由主站向从站发出请求命令,被请求的从站接收到命令后作出响应。
从站设备收到命令帧后的响应延时 Td:20ms≤Td≤500ms; 字节之间停顿时间 Tb:Tb≤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网络PLC,ABC3061将串行设备接入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无法直接通讯,但是通过一个小小的网关,就可以方便的连接起他们。
