Skip to content

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) |
+------------+---------------+-------------+-----------------+

字段说明

字段长度描述
Address1 字节从站地址(1–247)
Function Code1 字节指定读写操作类型
DataN 字节寄存器数据、数量、值等
CRC162 字节故障检测校验码(低位在前)

Modbus RTU 的 CRC16 采用多项式 0xA001

3. Modbus RTU 与 Modbus TCP 的区别

项目Modbus RTUModbus TCP
传输介质RS-485/RS-232以太网 / TCP
校验方式CRC16TCP 自带校验,无 CRC
时序要求有严格帧间隔无时序要求
地址1–247Unit ID,通常只用于网关场景
帧格式地址 + 功能码 + CRCMBAP + PDU
速度受波特率影响(常见 9600/19200)高速,适合大数据量场景

总结:Modbus RTU 更适合短距离、低成本、抗干扰能力要求高的串口通信场景,而 Modbus TCP 更适合高速和网络化的工业环境。

4. Modbus RTU 常用功能码(Function Codes)

Modbus RTU 的功能码与 Modbus TCP 完全一致,属于相同的应用层协议。

功能码名称描述
01Read Coils读线圈(开关输出)
02Read Discrete Inputs读离散量输入(DI)
03Read Holding Registers读保持寄存器
04Read Input Registers读输入寄存器
05Write Single Coil写单线圈
06Write Single Register写单寄存器
15Write Multiple Coils批量写线圈
16Write 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 45

5.2 写单个寄存器(06)

发送:
01 06 00 10 00 FA 98 3B

6. 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 都是最核心、最通用的通信协议之一。

📚 相关文档