modbus rtu (plc)解釋版
網(wǎng)絡上的modbus說明都是 讀保持寄存器 之類很難懂的詞匯,在這里做個簡化說明的筆記。modbus詳細功能碼及錯誤碼參考 【其他】 部分的鏈接
plc 的寄存器分類:
開關量通道,用x、y表示,寄存器序號8進制計數(shù),x0-x7,x10-x15為輸入,只讀。y0-y7,y10-y15為輸出。內存變量記為m,寄存器序號十進制,比如m19。單變量長度為1位
模擬量通道,記為sd。內存模擬量記為d,寄存器序號十進制。單變量長度為2字節(jié)
常用功能碼
詳解:
0x01 批量讀y
發(fā)送:站號1字節(jié)-0x01,功能碼1字節(jié)-0x01,起始地址2字節(jié)-0x00 0x00,數(shù)據(jù)長度2字節(jié)-0x00 0x10,crc2字節(jié)
返回:站號1字節(jié)-0x01,功能碼1字節(jié)-0x01,數(shù)據(jù)字節(jié)計數(shù)1字節(jié)-0x02,數(shù)據(jù)2字節(jié)-0x20 0x00,crc2字節(jié)
解釋:請求讀y0起16個開關量狀態(tài),響應0x20 0x00,即y7-y0狀態(tài)為0010 0000,y17-y10狀態(tài)為0000 0000,只有y5是1(根據(jù)設備大小端不同注意順序)
0x02 批量讀x
同0x01
0x03 批量讀d
發(fā)送:站號1字節(jié)-0x01,功能碼1字節(jié)-0x03,起始地址2字節(jié)-0x00 0x00,數(shù)據(jù)長度2字節(jié)-0x00 0x02,crc2字節(jié)
返回:站號1字節(jié)-0x01,功能碼1字節(jié)-0x03,數(shù)據(jù)字節(jié)計數(shù)1字節(jié)-0x04,數(shù)據(jù)4字節(jié)-0x06 0xa4 0x0a 0x8c,crc2字節(jié)
解釋:請求讀d0起2個模擬量狀態(tài),響應0x06 0xa4 0x0a 0x8c,即d1為0x06 0xa4=1700,d2為2700
0x04?讀輸入模擬量sd
同0x03
0x05 單個寫y
發(fā)送:站號1字節(jié)-0x01,功能碼1字節(jié)-0x05,起始地址2字節(jié)-0x00 0x00,數(shù)據(jù)2字節(jié)-0xff 0x00,crc2字節(jié)
返回:同發(fā)送
解釋:y0置為1.置0時,數(shù)據(jù)發(fā)送0x0000
0x06 單個寫d
發(fā)送:站號1字節(jié)-0x01,功能碼1字節(jié)-0x06,起始地址2字節(jié)-0x00 0x07,數(shù)據(jù)2字節(jié)-0x0a 0xa0,crc2字節(jié)
返回:同發(fā)送
解釋:請求寫d7模擬量狀態(tài),響應相同報文,寫入 0x0a 0xa0
0x0f 批量寫y
發(fā)送:站號1字節(jié)-0x01,功能碼1字節(jié)-0x0f,起始地址2字節(jié)-0x00 0x01,數(shù)據(jù)長度2字節(jié)-0x00 0x01,數(shù)據(jù)字節(jié)數(shù)1字節(jié)-0x01,數(shù)據(jù)1字節(jié)-0x02,
crc2字節(jié)
返回:站號1字節(jié)-0x01,功能碼1字節(jié)-0x0f,起始地址2字節(jié)-0x00 0x01,數(shù)據(jù)長度2字節(jié)-0x00 0x01,crc2字節(jié)
解釋:從y1起,寫入一字節(jié),0000 0001對應變量 y10-y1(8進制)。與功能碼0x10不同,長度單位為1字節(jié),0x10為2字節(jié),1個模擬量
0x10 批量寫d
發(fā)送:站號1字節(jié)-0x01,功能碼1字節(jié)-0x10,起始地址2字節(jié)-0x00 0x07,數(shù)據(jù)長度2字節(jié)-0x00 0x02,數(shù)據(jù)字節(jié)數(shù)1字節(jié)-0x04,數(shù)據(jù)4字節(jié)-0xab 0xcd 0x98 0x76,crc2字節(jié)
返回:站號1字節(jié)-0x01,功能碼1字節(jié)-0x10,起始地址2字節(jié)-0x00 0x07,操作數(shù)據(jù)長度2字節(jié)-0x00 0x02,crc2字節(jié)
解釋:從d7起,寫入2個數(shù)據(jù),d7為0xabcd,d8為0x9876,響應修改的變量總數(shù)2。
其他:
crc16校驗-nodejs?https://blog.csdn.net/yaojinjian1995/article/details/106301775/?