Modbus协议存在用于串口、以太网、专用网络的版本。各版本的Modbus通信协议在数据模型和功能调用上都是相同的,只有封装方式和一些细节有所不同的。本文对Modbus RTU报文协议进行分析。
Modbus数据帧格式如下:
1)从站地址:地址范围1-247,响应报文中的从站地址保持与请求报文的从站地址一致。
2)功能代码:表示不同的功能。正常响应报文中的功能代码保持与请求报文的功能代码一致,异常响应报文的功能代码=请求报文的功能代码 80H。常见功能代码如下:
3)数据:请求报文中的数据格式根据功能代码而定,响应报文中的数据为返回的数据或错误码。
4)校验码:2个字节,用于校验数据,RTU采用CRC校验码。
下文采用Modbus Poll、Modbus Slave软件(登录网信智汇wangxinzhihui.com下载)对常见功能的报文进行分析。
1) 功能码01H:读读线圈(01寄存器)。
ModbusPoll读取01从站地址为00的线圈开始10个线圈状态。
报文分析如下: