请教问题如题目。
MODBUS RTU通讯协议1
一、协议内容
8Bytes
Address 1Byte | Value=0x03 1Byte | Value=0x00 1Byte | CMD 1Byte | Value=0x00 1Byte | Value=0x02 1Byte | CRC Low 1Byte | CRC High 1Byte |
| | | 0x01:请求回送累积流量低位 | ||||
| | | 0x | ||||
| | | 0x10:请求回送瞬时流量 | ||||
| | | 0x20:请求回送压力 | ||||
| | | 0x30:请求回送温度 |
9Bytes
Address 1Byte | Value=0x03 1Byte | Value=0x04 1Byte | Data 4Bytes | CRC Low 1Byte | CRC High 1Byte |
二、实例
说明:流量计通讯地址为01
⑴返回流量计累积流量低位
上位机发送:0x 01 03 00 01 00 02 95 CB 流量计回送:0x 01 03 04 01 31 2D 9E
⑵返回流量计累积流量高位
上位机发送:0x 01 03 00
⑶返回流量计瞬时流量
上位机发送:0x 01 03 00 10 00
⑷返回流量计压力
上位机发送:0x 01 03 00 20 00
⑸返回流量计温度
上位机发送:0x 01 03 00 30 00
流量计累积流量低位=0x 01 31 2D 9E=200000158
流量计累积流量高位=0x 00 00 00 01=1
即流量计累积流量为:1200000158 Nm3 (无小数位)
流量计瞬时流量=0x 00 00
流量计压力=0x 00 00 27 10=10000 即流量计压力为: 100.00 kPa (2位小数)
流量计温度=0x 00 00 27 92=10130 即流量计温度为:
MODBUS RTU通讯协议2
一、协议内容
8Bytes
Address 1Byte | Value=0x03 1Byte | 1Byte | Value=0x00 1Byte | Value=0x00 1Byte | Value=0x 1Byte | CRC Low 1Byte | CRC High 1Byte |
9Bytes
Address 1Byte | Value=0x03 1Byte | Value=0x18 1Byte | Data 24Bytes | CRC Low 1Byte | CRC High 1Byte |
二、实例
说明:流量计通讯地址为01
⑴返回流量计累积流量低位
上位机发送:0x 01 03 00 00 00
流量计回送:0x 01 03 18 00
累计量低位 累计量高位 标况瞬时流量 压力 温度符号 温度 CRC校验
流量计累积流量低位=0x 00
流量计累积流量高位=0x 00 00 00 01=1
即流量计累积流量为:1*100000000+1008937=101008937 Nm3 (无小数位)
流量计瞬时流量=0x 00 00 00 00=
流量计压力=0x 00 00 27 92=101.30 kPa (2位小数)
温度符号=00 00 00 01=1 (1为正 0为负)
流量计温度=0x 00 00 07 D0=
引协议为本公司私有协议
RS485协议
上位机发送: 0x 21 3X 3X (X为仪表地址,如:向地址为46的仪表发送,则帧为:0x 21 34 36)
仪表回送53字节(ASCII码)
前导符 (2 Bytes) Value=”【!” | 仪表地址 (2Bytes) | 电池报警 (2Bytes) | 总量 (10Bytes) | 分隔符 (1Byte) Value=”>” | 瞬时量 (9Bytes) | 分隔符 (1Byte) Value=”>” | 当前压力 (7ytes) | 分隔符 (1Byte) Value=”>” | 当前温度 (7Bytes) | 分隔符 (1Byte) Value=”>” | 标准温度 (7Bytes) | 结束符 (3Bytes) Value=”>1】” |
电池报警:XX=00电池正常;XX不为00,电池报警
总量:XXXXXXXXXX 无小数位。
瞬时量:XXXXXXXXX 最后2位为小数位
当前压力:20XXXXX 最后1位为小数
当前温度:1+XXXXX 或 1-XXXXX,1+当前正温度,1-代表负温度;最后1位为小数位。
标准温度:为常值”1+