Modbus是一种串行通信协议,是Modicon公司(现施耐德电气)于1979年发表的。
目前Modbus已经成为工业领域通信协议的业界标准,并且是工业电子设备之间常用的连接方式。
Modbus协议的通信机制是主从模式,在一条链路上可以挂载多个设备,其中有且只有一个主设备,其余设备均为从设备。
在通信过程中,所有命令均由主设备发起,从机设备只能被动接收并响应主设备发起的命令。
Modbus协议的数据帧格式有两种类型:
一种是ASCII类型,数据类型使用字符串输出。
一种是RTU类型,数据类型使用二进制输出。
目前常用的是RTU类型,二进制方式通信数据量更小,更紧凑。
Modbus协议并没有对链路层提出要求,它可以是RS485,也可以是RS232甚至是TCP/IP。
目前Zui常用的是RS485,因为RS485通信距离远,抗干扰能力强,成本低。
本文以下内容针对RS485-MODBUS-RTU做一些
RTU数据帧格式:
子地址 | 功能码 | 数据包 | 校验字 |
1字节 | 1字节 | N字节 | 2字节 |
子地址:0x00表示广播地址,0x01-0xF7表示从机地址,0xF8-0xFF用户自定义。
功能码:表示此次通信需要使用从机的哪些功能,具体含义因设备而异。