KGJ16B瓦斯传感器Modbus-RTU通信协议
KGJ16B瓦斯传感器实现Modbus通信协议时,遵循Modbust通信过程,采用了MODBUS-RTU协议的命令子集,使用读寄存器命令(03),03命令用于主机读取传感器数据和传感器响应主机的读数据命令
①数据传输方式:
异步11位——1位起始位,8位数据位,1位停止位,偶校验位。
②数据传输速率:
1200bps,不可修改,用户希望使用其他波特率时,请在定货时声明。
③地址:
0~255,用户可通过传感器上的遥控器随时进行设置。
④主机请求数据报文格式:
主机发送 |
字节数 |
发送的信息 |
备 注 |
从机地址 |
1 |
01~FF |
向地址为XX的从机要数据 |
功能码 |
1 |
03
|
读取寄存器 |
起始地址 |
2 |
0000
|
起始地址为0000 |
数据长度 |
2 |
0001
|
读取XX个数据(共2XX字节,高字节在前) |
CRC码 |
2 |
|
CRC16校验码(低字节在前,高字节在后) |
例如:读地址号为01的主机命令为:0x01
0x03 0x00 0x00 0x00 0x01 0x84 0x
⑤传感器响应要数命令报文格式:
从机响应 |
字节数 |
返回的信息 |
备 注 |
从机地址 |
1 |
XX
|
来自地址为XX的从机 |
功能码 |
1 |
03
|
读取寄存器 |
数据长度 |
1 |
02 |
XX字节(2倍数据个数) |
寄存器数据1 |
2 |
XXXX |
传感器浓度, 高字节在前,低字节在后 |
CRC码 |
2 |
XXXX
|
CRC16校验码(低字节在前) |
注:瓦斯浓度传输的数据为0――400,其对应浓度为0-4%CH4
例如传感器响应主机数据为:
0x01 0x03
0x02 0x00 0x32 0x39 0x91
0x01:传感器地址号为1
0x03:读传感器寄存器命令(功能码)
0x02:数据字节数(瓦斯浓度值共两个字节)
0x00:瓦斯浓度值高字节
0x32:瓦斯浓度值低字节(此处对应瓦斯浓度值为:0.5%)
0x39:CRC校验低字节
0x91:CRC校验高字节