Appearance
Modbus RTU 协议(Modbus RTU Protocol)
Modbus RTU 是工业自动化领域最经典、最常用的串口通信协议之一,广泛应用于 PLC、仪表、变频器、能源计量设备以及物联网网关的数据采集场景。Modbus RTU 基于 RS-485/RS-232 串口进行通信,结构简单、稳定可靠,是目前工业设备最常见的默认通信协议。
1. Modbus RTU 是什么?
Modbus RTU(Remote Terminal Unit)是 Modbus 协议族中最常用的串行版本。它通过 RS-485/RS-232 串口传输数据,采用严格的帧结构和 CRC 校验保证可靠性。
Modbus RTU 的主要特点:
- 使用 RS-485/RS-232 串口通信
- 主从结构(Master-Slave)
- 每个从站地址范围 1–247
- 采用 CRC16 校验
- 帧间必须保持 3.5 个字符时间的间隔
- 体积小、开销低,适合嵌入式设备
因此,Modbus RTU 成为工业控制、楼宇自控、能源监控与 IoT 接入方案的标准协议之一。
2. Modbus RTU 报文结构(Frame Format)
Modbus RTU 报文由 地址 + 功能码 + 数据 + CRC 校验 组成。
+------------+---------------+-------------+-----------------+
| Address(1) | Function(1) | Data(N) | CRC16(2 bytes) |
+------------+---------------+-------------+-----------------+字段说明
| 字段 | 长度 | 描述 |
|---|---|---|
| Address | 1 字节 | 从站地址(1–247) |
| Function Code | 1 字节 | 指定读写操作类型 |
| Data | N 字节 | 寄存器数据、数量、值等 |
| CRC16 | 2 字节 | 故障检测校验码(低位在前) |
Modbus RTU 的 CRC16 采用多项式 0xA001。
3. Modbus RTU 与 Modbus TCP 的区别
| 项目 | Modbus RTU | Modbus TCP |
|---|---|---|
| 传输介质 | RS-485/RS-232 | 以太网 / TCP |
| 校验方式 | CRC16 | TCP 自带校验,无 CRC |
| 时序要求 | 有严格帧间隔 | 无时序要求 |
| 地址 | 1–247 | Unit ID,通常只用于网关场景 |
| 帧格式 | 地址 + 功能码 + CRC | MBAP + PDU |
| 速度 | 受波特率影响(常见 9600/19200) | 高速,适合大数据量场景 |
总结:Modbus RTU 更适合短距离、低成本、抗干扰能力要求高的串口通信场景,而 Modbus TCP 更适合高速和网络化的工业环境。
4. Modbus RTU 常用功能码(Function Codes)
Modbus RTU 的功能码与 Modbus TCP 完全一致,属于相同的应用层协议。
| 功能码 | 名称 | 描述 |
|---|---|---|
| 01 | Read Coils | 读线圈(开关输出) |
| 02 | Read Discrete Inputs | 读离散量输入(DI) |
| 03 | Read Holding Registers | 读保持寄存器 |
| 04 | Read Input Registers | 读输入寄存器 |
| 05 | Write Single Coil | 写单线圈 |
| 06 | Write Single Register | 写单寄存器 |
| 15 | Write Multiple Coils | 批量写线圈 |
| 16 | Write Multiple Registers | 批量写寄存器 |
5. Modbus RTU 典型读写示例
5.1 读取保持寄存器(03)
读取地址 40001(偏移 0)数量 2:
发送:
01 03 00 00 00 02 C4 0B
返回:
01 03 04 00 0A 00 14 B8 455.2 写单个寄存器(06)
发送:
01 06 00 10 00 FA 98 3B6. Modbus RTU 通信拓扑结构
Modbus RTU 一般采用 半双工 RS-485 总线拓扑,支持多达 32 个从站,距离可超过 1000 米。 典型结构如下:
- 一个主站(PLC / 网关 / 工控机)
- 多个从站(仪表、传感器、控制器)
- 半双工通信(所有设备共享两根信号线)
该结构具有成本低、布线简单、抗干扰能力强的特性。 
7. Modbus RTU 调试与工程常见问题(FAQ)
7.1 为什么设备读不到数据?
- 地址基准不同(0-based/1-based)
- 寄存器类型错误(如 01 和 03 混淆)
- 波特率校验位参数不一致
7.2 CRC 错误怎么办?
- 总线过长、电磁干扰强
- 设备接地不正确
- 485 A/B 线接反
- 终端电阻未正确配置
7.3 Modbus RTU 支持广播吗?
支持地址 0 广播写操作(但读操作不支持)。
7.4 可以多主机吗?
协议上不推荐多主机,否则会导致冲突;若有需求,可使用 Modbus TCP 或 RTU → TCP 网关。
8. 总结
Modbus RTU 是工业自动化和 IoT 设备接入的基础协议,凭借稳定性、低成本与广泛兼容性,在工业场景中仍占据绝对主流位置。掌握 Modbus RTU 的帧结构、寄存器模型、功能码及其与 Modbus TCP 的区别,有助于快速构建稳定可靠的工业通信系统。无论是能源监测、楼宇设备管理还是边缘计算网关接入,Modbus RTU 都是最核心、最通用的通信协议之一。

