上一篇分析了使用串口通讯时的传输数据格式。下面分析通过网络TCP传输的数据格式。查询报文由【modbus poll】发出,回复报文由python建立socket服务,监听502端口。收到查询报文时,回复数据。
同样以功能03(读取保持寄存器值)为例,主机发送查询报文、从机回复报文如下。
查询格式:06 75-计数器,每发送一条指令,增加1,回复报文中复制该数值,构成一对。00 00-保留,00 06-数据字节数,01-设备ID,03-功能代码,00 0A-查询数量。该命令查询1号设备00-09号数据。
回复报文格式:06 75-计数器,00 00-保留,00 17-剩余数据字节数。01-设备ID,03-功能代码,14-数据字节数(10个数据,共20字节)。最后为数据,两个字节为一个数据(有符号整型)。
相对串口通讯,TCP模式不需要CRC校验,使用TCP方式较串口部署会方便些。使用python模拟从机发送数据示例:
领取专属 10元无门槛券
私享最新 技术干货