今天主要自己对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的报文大概就这么个意思,欢迎大家指正。