KGJ16B瓦斯傳感器Modbus-RTU通信協(xié)議
KGJ16B瓦斯傳感器實(shí)現(xiàn)Modbus通信協(xié)議時(shí),遵循Modbust通信過程,采用了MODBUS-RTU協(xié)議的命令子集,使用讀寄存器命令(03),03命令用于主機(jī)讀取傳感器數(shù)據(jù)和傳感器響應(yīng)主機(jī)的讀數(shù)據(jù)命令
①數(shù)據(jù)傳輸方式:
異步11位——1位起始位,8位數(shù)據(jù)位,1位停止位,偶校驗(yàn)位。
②數(shù)據(jù)傳輸速率:
1200bps,不可修改,用戶希望使用其他波特率時(shí),請?jiān)诙ㄘ洉r(shí)聲明。
③地址:
0~255,用戶可通過傳感器上的遙控器隨時(shí)進(jìn)行設(shè)置。
④主機(jī)請求數(shù)據(jù)報(bào)文格式:
主機(jī)發(fā)送 |
字節(jié)數(shù) |
發(fā)送的信息 |
備 注 |
從機(jī)地址 |
1 |
01~FF |
向地址為XX的從機(jī)要數(shù)據(jù) |
功能碼 |
1 |
03
|
讀取寄存器 |
起始地址 |
2 |
0000
|
起始地址為0000 |
數(shù)據(jù)長度 |
2 |
0001
|
讀取XX個(gè)數(shù)據(jù)(共2XX字節(jié),高字節(jié)在前) |
CRC碼 |
2 |
|
CRC16校驗(yàn)碼(低字節(jié)在前,高字節(jié)在后) |
例如:讀地址號為01的主機(jī)命令為:0x01
0x03 0x00 0x00 0x00 0x01 0x84 0x
⑤傳感器響應(yīng)要數(shù)命令報(bào)文格式:
從機(jī)響應(yīng) |
字節(jié)數(shù) |
返回的信息 |
備 注 |
從機(jī)地址 |
1 |
XX
|
來自地址為XX的從機(jī) |
功能碼 |
1 |
03
|
讀取寄存器 |
數(shù)據(jù)長度 |
1 |
02 |
XX字節(jié)(2倍數(shù)據(jù)個(gè)數(shù)) |
寄存器數(shù)據(jù)1 |
2 |
XXXX |
傳感器濃度, 高字節(jié)在前,低字節(jié)在后 |
CRC碼 |
2 |
XXXX
|
CRC16校驗(yàn)碼(低字節(jié)在前) |
注:瓦斯?jié)舛葌鬏數(shù)臄?shù)據(jù)為0――400,其對應(yīng)濃度為0-4%CH4
例如傳感器響應(yīng)主機(jī)數(shù)據(jù)為:
0x01 0x03
0x02 0x00 0x32 0x39 0x91
0x01:傳感器地址號為1
0x03:讀傳感器寄存器命令(功能碼)
0x02:數(shù)據(jù)字節(jié)數(shù)(瓦斯?jié)舛戎倒矁蓚(gè)字節(jié))
0x00:瓦斯?jié)舛戎蹈咦止?jié)
0x32:瓦斯?jié)舛戎档妥止?jié)(此處對應(yīng)瓦斯?jié)舛戎禐椋?span lang="EN-US">0.5%)
0x39:CRC校驗(yàn)低字節(jié)
0x91:CRC校驗(yàn)高字節(jié)