这个示例,我们介绍如何将正泰 DDSU666 单相导轨式电表接入 Modbus物联网平台,并实现以下数据的采集上报:
- 电压
- 电流
- 瞬时总有功功率
- 瞬时总无功功率
- 瞬时总视在功率
- 总功功率因数
- 有功总电能
该电表用于普通的单相用电系统,包括家庭用电以及普通的商业用电。对于工业场景的三相电表和其它品牌的智能电表产品,以下方法同样适用。
电表接线示例
该电表支持 RS485/Modbus 协议,我们通过 DTU 将电表接入 Modbus物联网平台,DTU 负责 Modbus 报文透传。
DTU 和电表通过 485 总线连接,可以在一个 DTU 上连接多个电表,从而采集多个回路的用电数据。
电表的交流电端口接线方式如下图:
关于电表的更多详细介绍,请以厂家的产品说明书为准。
配置从机地址及寄存器
要在设备类型中显示 Modbus 配置功能,需要先将设备类型的接入协议设置为 Modbus RTU 透传。
在设置之前,通常我们要参考设备厂商提供的 Modbus 协议手册,如下:
参数地址 | 参数代号 | 参数说明 | 数据类型 | 数据长度Word | 读写属性 |
0000H | UcodE | 编程密码 codE | int | 1 | R |
0001H | REV. | 软件版本 | int | 1 | R/W |
0002H | CLrE | 电能清零 CLr.E | int | 1 | R/W |
0003H | RESERVED | 保留 | int | 1 | R/W |
0004H | RESERVED | 保留 | int | 1 | R/W |
0005H | ChangeProtocol | 协议切换设置 | int | 1 | R/W |
0006H | Addr | 此地址只有 Modbus-RTU 时有效 | int | 1 | R/W |
0007H | RESERVED | 保留 | int | 1 | R/W |
0008H | RESERVED | 保留 | int | 1 | R/W |
0009H | RESERVED | 保留 | int | 1 | R/W |
000AH | RESERVED | 保留 | int | 1 | R/W |
000BH | RESERVED | 保留 | int | 1 | R/W |
000CH | BAud | 波特率 | int | 1 | R/W |
000DH | RESERVED | 保留 | int | 1 | R/W |
000EH | RESERVED | 保留 | int | 1 | R/W |
000FH | RESERVED | 保留 | int | 1 | R/W |
0010H | RESERVED | 保留 | int | 1 | R/W |
2000H | U | A 相电压 | float | 2 | R/W |
2002H | I | A 相电流 | float | 2 | R/W |
2004H | P | 瞬时总有功功率 | float | 2 | R/W |
2006H | Q | 瞬时总无功功率 | float | 2 | R/W |
2008H | S | 瞬时总视在功率 | float | 2 | R/W |
200AH | PF | 总功功率因数 | float | 2 | R/W |
200CH | RESERVED | 保留 | float | 2 | R/W |
200EH | Freq | 电网频率 | float | 2 | R/W |
2010H | RESERVED | 保留 | float | 2 | R/W |
4000H | Ep | 有功总电能 | float | 2 | R/W |
以 A相电压 数值寄存器为例:
- 寄存器地址是 2000H,这是16进制的表示方式,这里需要转换成10进制。(在线16进制转10进制)
- 数据类型是 float,表示带有小数的浮点数。
- 寄存器数量是 2,表示数据长度有2个寄存器,也就是32位。
- 读写类型是 R/W,表示是保持寄存器,用 03 功能码来读取。
按照手册中的寄存器信息,我们对设备类型的 Modbus 设置如下:
不同厂家的产品,支持的 Modbus 寄存器略有不同,请您参考实际产品手册。
扩展阅读
整理好的16进制转10进制的寄存器表