一、Modbus通信协议
定义:一个Bus,总线协议。Modbus 是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。
分类:Modbus-RTU、Modbus-ASCII、Modbus-TCP。前2个是基于串行通信的协议,而后一个是基于以太网的协议。一个设备只会有一种协议,一般来说大部分的设备都是Modbus- RTU协议。下面用 Modbus-RTU协议进行分析。
通信方式:单主机多个从机。不能同步进行通信,总线上每次只有一个数据进行传输,即主机发送,从机应答,主机不发送,总线上就没有数据通信。(对应的串口和波形一问一答)。
二、Modbus-RTU协议
1、帧结构
一帧数据 = 地址(1字节)+功能码(1字节)+数据(4字节)+校验(2字节)
地址:0-255;其中1-247有效。
功能码:03查数据;06修改一个数据;10修改多个连续数据。
数据:不同功能数据不一样,下面介绍。
校验:循环冗余,modbus校验公式。前面的数据进行计算看数据是否一致,如果一致,就说明这帧数据是正确的,再回复;如果不一样,说明你这个数据在传输的时候出了问题,数据不对的,不回复。
2、发送一帧数据+debug
发送数据解析:01 03 00 00 00 01 84 0A
回复数据解