今天主要自己對Modbus TCP的主從站的報文的理解。
下圖是通訊的設置
下面解析一下報文主要是什么意思
1,首先主站請求報文
38 A2 00 00 00 06 01 03 00 00 00 05
38 A2 00 00 00 06,這個是報文頭,共6個字節
38 A2是校驗信息,主站發送什么,從站返回什么。
00 00是指modbustcp協議
00 06 為后面的數據長度,單位是字節,共6個字節(01 03 00 00 00 05)
再說說后面的6個字節
01是從站地址,即Modbus Poll 中的 Slave ID
03是功能嗎,即function,03是讀取保持性寄存器
00 00 是起始地址,表示你想要從那個地址開始讀,從。
00 05是要讀取寄存器的個數,即5個寄存器,在此注意,保持性寄存器是16位的,占兩個字節。
2,從站的響應報文
38 A2 00 00 00 0D 01 03 0A 00 0B 00 0A 00 00 00 00 00 00
前6個字節(38 A2 00 00 00 0D)與主站報文類似,不再贅述,
01 03 0A 00 0B 00 0A 00 00 00 00 00 00
01從站地址,03功能碼,跟主站一致。0
0A,表示返回的字節數,0A代表10個,即主站請求5個寄存器,從站則返回5個寄存器的內容,共10個自己
00 0B 00 0A 00 00 00 00 00 00,這10個字節就是從站返回的內容,
分別是 11 10 0 0 0。
先說到這里,Modbus TCP的報文大概就這么個意思,歡迎大家指正。