常用的数据还有16位/32位整形,分别占用1个/2个寄存器,解析出来是整数,通常需要乘以系数;寄存器数据是0x5613,解析出来时22035,乘以系数0.01就得到电压220.35V。
二、几种常见报文解析
以CET中电技术电表报文为例解析。
(1)读遥测
[发送]6C(电表地址,108)03(功能码)00 00(起始寄存器地址)00 10(读16个寄存器)4C BB(CRC校验)
网关发送的报文含义:对地址108的电表,用03功能码,从地址0x0000开始,读16个寄存器
[接收]6C(电表地址,108)03(功能码)20(数据报文长度,32个字节)43 5B 35 A4 43 5B 2A 1F 43 5B 62 71 43 5B 40 BC 43 BD D5 E1 43 BD CB E7 43 BD FC AD 43 BD DF 7D(数据)44 0E(CRC校验)
网关接收的报文含义:地址108的电表用03功能码回复数据,数据有32个字节(16个寄存器的值)
由于测点数据格式是浮点数,所以一个点位占用4个字节,数据帧解析如下:
43 5B 35 A4 浮点数解析为219.2095336V——A相电压
43 5B 2A 1F 浮点数解析为219.1645355V——B相电压
43 5B 62 71 浮点数解析为219.3845367V——C相电压
43 5B 40 BC 浮点数解析为219.2528686V——平均相电压
43 BD D5 E1 浮点数解析为379.6709289V——AB线电压
43 BD CB E7 浮点数解析为379.5929870V——BC线电压
43 BD FC AD 浮点数解析为379.9740295V——CA线电压
43 BD DF 7D 浮点数解析为379.7460021V——平均线电压
工具使用示例
(2)读遥信
编辑
【注1】DI状态寄存器,bit 0~2分别表示DI1~3的状态,0:断开,1:闭合。
[发送] 6C(电表地址,108)03(功能码)00 60(起始寄存器地址)00 01(读1个寄存器) 8C A9 (CRC校验)
网关发送的报文含义:对地址108的电表,用03功能码,从地址0x0060(96)开始,读1个寄存器
[接收] 6C(电表地址,108)03(功能码)02(数据报文长度,2个字节)00 01(数据帧)D4 4D (CRC校验)
网关接收的报文含义:地址108的电表用03功能码回复数据,数据有2个字节(1个寄存器的值)
测点数据格式为unit16无符号整形,占用一个字节,0x0001,遥信按位解析为:0000 0000 0000 0001
从左到右对应位:bit15 bit14 bit 13 …… ……bit2 bit1 bit0
Bit0的值为1——DI1闭合 bit1的值为0——DI2断开 bit2的值为0——DI3断开
(3)读电能
[发送] 6C(电表地址,108)03(功能码)01 F4(起始寄存器地址)00 04(读4个寄存器) 0C BA (CRC校验)
网关发送的报文含义:对地址108的电表,用03功能码,从地址0x01F4(500)开始,读4个寄存器
[接收] 6C(电表地址,108)03(功能码) 08(数据报文长度,8个字节) 00 23 99 D9 00 00 71 8D (数据帧)A6 97(CRC校验)
网关接收的报文含义:地址108的电表用03功能码回复数据,数据帧有8个字节,数据为int32,长整形,解析为00 23 99 D9 整形解析为-2333145*0.01kWh=23331.45kWh
00 00 71 8D 整形解析为- 29069*0.01kWh= 290.69 kWh
计算机解析示例
(4)遥控指令-控制开关
给寄存器9100(0x238C)写入0XFF00,继电器DO1闭合
[发送] 6C(电表地址,108)05(功能码)23 8C(要执行的寄存器地址) FF 00(写入寄存器的数值) 4E E8(CRC校验)
[接收]6C 05 23 8C FF 00 4E E8(执行成功后,电表返回原报文)
(5)遥调指令-设置参数
[发送] 6C(电表地址,108) 10(功能码) 17 84(要写参数的寄存器起始地址) 00 01(要写参数的寄存器的数量) 02 (字节数量)00 04 (写入的数据)2E 44 (CRC校验)
网关发送的报文含义:对地址108的电表,使用功能码0x10功能码,从0x1784(6020)寄存器开始,给1个寄存器写数据,数据有2个字节,写入的数据是0x0004;
[接收] 6C(电表地址,108) 10(功能码)17 84(要写参数的寄存器起始地址) 00 01(要写参数的寄存器的数量) 4C E9(CRC校验)
网关接收的报文含义:地址108的电表用0x10功能码回复,从0x1784(6020)寄存器开始,给1个寄存器写数据。
只要读懂了Modbus报文,就基本会使用我司(CET中电技术)iSmartGate智能网关和PMC系列通信网关机的采集驱动制作了。iSmartGate系列智能网关(物联网关)和PMC系列通信网关机全面支持规约可配置平台,接入第三方RS485设备,工程师只需要根据设备通信协议制作采集驱动,无需找厂家付费开发接口程序,极大降低项目费用,节省人力成本。返回搜狐,查看更多