Modbus RTU 协议核心架构、报文解析与现场调试指南
核心架构:主从式结构 (Client/Server)
Modbus 的设计逻辑很清晰,采用的是典型的主从式通信模型。
- 主站 (Master/Client):唯一的指令发起方。同一网络内同一时刻仅存在一台主站,负责主动查询从站数据或下发控制指令。
- 从站 (Slave/Server):指令被动响应方。每台从站配备唯一站号(ID),仅在被主站点名调用时反馈数据或执行指令,无主动发送数据的权限。
这里有个关键点:从站不会主动发送数据,只有在被主站'点名'后才会做出应答。
常见传输模式:RTU 与 TCP
虽然 Modbus 的应用层逻辑一致,但物理层传输方式主要分为以下两种:
| 对比维度 | Modbus RTU | Modbus TCP |
|---|---|---|
| 通信架构 | 主从式半双工(一主多从,同一时间仅一台设备发数据) | 客户端/服务器式全双工(支持多客户端并发访问) |
| 传输速率 | 600~115200 bps | 10/100/1000 Mbps |
| 地址标识 | (1~247)区分设备 | IP 地址 + 端口号(默认 502)区分设备 |
| 传输距离 | RS-485 总线最长 1200 米(可加中继延长) | 以太网有线传输最长 100 米(交换机/光纤可拓展) |
| 抗干扰性 | RS-485 差分传输,抗电磁干扰能力强 | 需做好以太网防雷、防静电措施 |
数据模型:四类存储寄存器
Modbus 将数据抽象为四个基本的表。理解这四张表,就理解了数据该如何读写:

常用功能码 (Function Codes)
主站通过'功能码'告诉从站要做什么。最常用的功能码如下:
- 01 (Read Coils):读线圈状态
- 02 (Read Discrete Inputs):读离散输入状态
- 03 (Read Holding Registers):读保持寄存器
- 04 (Read Input Registers):读输入寄存器
- 05 (Write Single Coil):写单个线圈
- 06 (Write Single Register):预置单个寄存器
- 15 (Write Multiple Coils):写多个线圈
- 16 (Write Multiple Registers):预置多个寄存器



