目录
Modbus RTU (Remote Terminal Unit)
Modbus RTU (Remote Terminal Unit)
Modbus RTU (Remote Terminal Unit) 和 Modbus ASCII
一、Modbus消息帧格式
1.Modbus RTU
- 起始位:至少3.5个字符时间的空闲线状态。
- 设备地址:1字节。
- 功能码:1字节,指示要执行的操作类型。
- 数据域:可变长度,包含实际的数据。
- CRC校验:2字节,循环冗余校验。
- 结束位:至少3.5个字符时间的空闲线状态。
2.Modbus ASCII
- 起始字符:冒号 ':'。
- 设备地址:2字节,十六进制。
- 功能码:2字节,十六进制。
- 数据域:可变长度,每字节用两个十六进制数表示。
- LRC校验:2字节,纵向冗余校验。
- 结束字符:回车换行符 '\r\n'。
3.Modbus功能码
- 读取线圈状态 (0x01):读取一个或多个线圈的状态。
- 读取离散输入状态 (0x02):读取一个或多个离散输入的状态。
- 读取保持寄存器 (0x03):读取一个或多个保持寄存器的内容。
- 读取输入寄存器 (0x04):读取一个或多个输入寄存器的内容。
- 写单个线圈 (0x05):写入一个线圈的状态。
- 写单个保持寄存器 (0x06):写入一个保持寄存器的内容。
- 写多个线圈 (0x0F):写入多个线圈的状态。
- 写多个保持寄存器 (0x10):写入多个保持寄存器的内容。
4.Modbus/TCP
- 基于TCP/IP:Modbus/TCP是在Modbus RTU的基础上扩展而成的,使用TCP/IP作为底层通信协议。
- 报文格式:Modbus/TCP报文包含一个标准的TCP/IP头部,后面跟着Modbus应用数据单元(ADU)。
- 连接管理:Modbus/TCP简化了连接管理,不需要明确的请求和响应。