ModbusRTU协议:Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
当前文章记录了 所有功能码的实现报文以及响应报文。
Modbus学习工具:
Modbus Poll(客户端) +VSPD+Modbus Slave(服务器主站)
功能码:
功能码 | 备注 |
0x01 | 读输出线圈 |
0x02 | 读输入线圈 |
0x03 | 读保持寄存器 |
0x04 | 读输入寄存器 |
0x05 | 写单个线圈 |
0x06 | 写单个寄存器 |
0x0f | 写多个线圈你 |
0x10 | 写多个寄存器 |
主站询问报文格式如下:
从站应答报文格式如下:
1、询问应答报文格式:
2、写操作应答报文:
ModbusRTU格式如下:地址码+功能码+地址+值+CRC码
详细例程如下:
一、读输出线圈:0x01
主站询问报文:
从站应答报文
二、读输入线圈:0x02
主站询问报文:
三、读保持寄存器:0x03
主站询问报文:
从站应答报文:
四、读输入寄存器:0x04
主站询问报文:
从站应答报文:
五、 写单个线圈:0x05
主站询问报文:
从站应答报文:
六、写单个寄存器:0x06
主站询问报文:
从站应答报文:
七、写多个线圈:0x0f
主站写多个线圈:
从站地址:功能码:地址高:地址低:数据长度高:数据长度低:字节长度:值:CRC
从站应答报文:
八、写多个寄存器:0x10
主站写多个寄存器报文:
基于C语言实现了ModbusTCP代码,可以直接移植到stm处理器连接esp或者wifi模块使用。
下载资源地址:https://download.csdn.net/download/wanxiweilai/87685364