modbus tcp數據報文結構

 

modbus tcp數據報文結構網絡

請求:00 00 00 00 00 06 09 03 00 00 00 01tcp

響應:00 00 00 00 00 05 09 03 02 12 343d

  一次modbus tcp讀取保持寄存器的通訊分析(省略了ip/tcp頭):從左向右分析該數據報文:索引

請求:事務

00 00爲這次通訊事務處理標識符,通常每次通訊以後將被要求加1以區別不一樣的通訊數據報文;ip

00 00表示協議標識符,00 00爲modbus協議;請求

00 06爲數據長度,用來指示接下來數據的長度,單位字節;float

09爲設備地址,用以標識鏈接在串行線或者網絡上的遠程服務端的地址。以上七個字節也被稱爲modbus報文頭;im

03爲功能碼,此時代碼03爲讀取保持寄存器數據;通信

00 00爲起始地址; (word數量)。

00 01爲寄存器數量,(word數量)。

 

//modscan32 裏面的 (address-1)*2=點位裏面設置的地址
//modscan32 下面顯示 的地址 是以字爲單位,不是字節

響應:

00 00爲這次通訊事務處理標識符,應答報文要求與先前對應的請求保持一致;

00 00爲協議標識符,與先前對應的請求保持一致;

00 05爲數據長度,用來指示接下來數據的長度,單位字節;

09爲設備地址,應答報文要求與先前對應的請求保持一致;

03爲功能碼,正常狀況下應答報文要求與先前對應的請求保持一致,若是出錯則返回80h+先前的功能碼;

02指示接下來數據的字節長度;

12 34爲被讀取的保持寄存器中的數據值,即要求被讀取的地址爲00 00的保持寄存器中的數值爲1234h。

 

 

>>4c 00 00 00 00 06 01 03 0000 0006

4c 請求迴應 計數,
00 00 00 00 固定頭
06 包長度 6個字節內容
01 03 00 00 00 0a
01 device id 01
03 功能碼
0000 addreess:0001
0006 length 6


<<4c 00 00 00 00 0f 01 03 0c 3f 80 00 00 40 00 00 00 40 40 00 00

4c 請求迴應 計數,
00 00 00 00 固定頭
0f 包長度 15個字節內容
01 deviceid 01
03 功能碼
0c 長度 3*4=12==0x0c


3d000000000608030015000a
>>3d 00000000 06 08 03 0015 000a

3d 自增長索引
00000000 固定
06 長度
08 deviceid
03 功能碼
0015 addreess
000a 長度 10

7a0000000017080314405333334053333340533333
<<3d 00000000 17 08 03 14 3f 8c cc cd 40 0c cc cd 40 53 33 33 40 8c cc cd 40 b0 00 00

3d 自增長索引
00000000 固定
17 長度 5個點的數據*4=20==0x14 5個點的數據*4+3個字節標識=23==0x17
08 deviceid
03 功能碼
14 後面的長度

全發float 40533333 -> 3.30 408ccccd -> 4.40

相關文章
相關標籤/搜索