客戶端發送:19 B2 00 00 00 06 06 03 00 27 00 02
上面是modbus客戶端發出的報文內容,為modbus tcp/ip協議格式,其前面的六個字節為頭字節( header handle);
“19 B2 00 00 00 06”
19 B2 兩個字節是Client發出的檢驗信息,Sever端只是需要將這兩個字節的內容copy以后再放到response的報文的相應位子就可以了,可以自己定義;
00 00 兩個字節是表示tcp/ip 的協議的modbus的協議;
00 06 兩個字節表示的是header handle后面還有多長的字節,即表示的是該字節以后的字節長度(lengch),可以看到在00 06后面還有 “06 03 00 27 00 02”六個字節,所以這兩個字節表示的就是6;
“06 03 00 27 00 02”
06 一個字節表示slave address;
03 為Fuction code ;
00 27 表示Client request的寄存器地址;
00 02 表示request 寄存器的長度;(寄存器個數)
服務端返回數據:19 B2 00 00 00 07 06 03 04 00 00 00 00
報頭 : “ 19 B2 00 00 00 07”
19 B2 為Server返回的檢驗碼,copy from Client request;
其它的表示與客戶端的表示相同
報文:“ 06 03 04 00 00 00 00”
06 是Slave address,從地址數;
03是Function code ;
04表示了回復給Client request的需要讀的寄存器的值的個數,這里因為主地址向從地址讀了2個寄存器即2個16位的寄存器(2個字)所以這里為4個字節,因為2個字為4個字節,而04這個字節表示的就是從地址要回復給主地址的寄存器字節長度,
00 00 00 00 表示了4個字節的值
寫多個寄存器
發送
響應