行业动态

Modbus RTU 与 Modbus TCP 简易指南

2026-05-22

一、物理层与电气特性

Modbus RTU

  • 物理接口EIA-485(最常用)、EIA-232、EIA-422

  • RS-485 特性

    • 差分信号(A/B 线),抗共模干扰能力强

    • 半双工(同一时刻只能发或收)

    • 点对多点:理论 32 个单元负载(使用 1/4 负载芯片可达 128 个)

    • 最大传输距离:1200 米(9600bps 时)

    • 终端电阻:首尾两端需加 120Ω 匹配电阻,防止信号反射

  • RS-232 特性

    • 单端信号,干扰敏感

    • 点对点(一发一收)

    • 最大距离:15 米

  • 线缆与连接器

    • 屏蔽双绞线(STP)推荐

    • 常用 9 针 D-sub(DB9)或接线端子

    • 信号定义:A(Data+)/ B(Data-)/ GND(参考地)

Modbus TCP

  • 物理接口:以太网(10Base-T、100Base-TX、1000Base-T)

  • 连接器:RJ45(8P8C)

  • 线缆:Cat5e / Cat6 非屏蔽或屏蔽双绞线

  • 拓扑结构:星型(通过以太网交换机)

  • 传输距离:单段 100 米(铜缆),通过光纤或交换机级联可无限扩展

  • 网络特性

    • 全双工(可同时收发)

    • 支持 VLAN、QoS、链路聚合

    • 支持无线(Wi-Fi、4G/5G)和长距离光纤


二、数据链路层与帧格式详解

Modbus RTU 帧结构(二进制,十六进制表示)

字段
长度
说明
起始
≥3.5 字符静默时间
帧分隔符,非显式字节
地址域
1 字节
0 = 广播,1-247 = 从站地址
功能码
1 字节
1-127 为公共功能码,128-255 为错误响应
数据域
N 字节
随功能码变化(寄存器地址、数量、写入值等)
CRC 校验
2 字节
循环冗余校验,低字节在前(小端)
结束
≥3.5 字符静默时间
帧结束标志

示例:读取 1 号从站,从 0x0000 开始读 2 个保持寄存器







01 03 00 00 00 02 C4 0B│  │  │     │    └─────┘ CRC: 0x0BC4│  │  │     └── 数量: 2 (0x0002)│  │  └── 起始地址: 0x0000│  └── 功能码: 03 (读保持寄存器)└── 地址: 1

CRC 计算(16位,多项式 0x8005,初始值 0xFFFF)

  • 对地址 + 功能码 + 全部数据域逐字节计算。

  • 接收方重新计算,与收到的 CRC 比较,不一致则丢弃帧。

Modbus TCP 帧结构(封装在 TCP/IP 中)

字段
长度
说明
事务标识符
2 字节
客户端生成,用于匹配请求与响应(一对)
协议标识符
2 字节
0 = Modbus 协议,非 0 为其他
长度
2 字节
后续字节数(单元 ID + 功能码 + 数据域的长度)
单元标识符
1 字节
原 RTU 地址,用于串口子设备路由(在 TCP 网关后)
功能码
1 字节
同 RTU
数据域
N 字节
同 RTU
无 CRC
TCP/IP 协议栈提供 32 位校验和

示例:读取保持寄存器(同上功能)










00 01 00 00 00 06 01 03 00 00 00 02│  │  │  │  │  │  │  └──────┘ 数据(同RTU)│  │  │  │  │  │  └── 单元ID: 1│  │  │  │  │  └── 长度: 6 (后续6字节)│  │  │  │  └── 协议标识符: 0│  │  │  └── 协议标识符高位: 0│  │  └── 事务标识符低位: 1│  └── 事务标识符高位: 0└── 事务标识符(0x0001)

关键变化

  1. 去掉地址域 → 改为单元标识符(但功能不同)。

  2. 去掉 CRC → 依赖 TCP 校验。

  3. 增加 MBAP 头部(7 字节)→ 实现多路复用和连接管理。


三、通信模型与报文交换

Modbus RTU

  • 主从模式(Master-Slave)

    • 单主站(只能有一个 Master)

    • 从站 Passive(不主动发言)

    • 主站轮询:发送请求 → 等待响应 → 发送下一请求

  • 半双工:同一时刻只能一方发送

  • 广播:地址 0,所有从站执行但不回复

  • 超时与重试:主站需设置响应超时(通常 200-1000ms)

  • 总线仲裁:无,完全由主站控制时序

Modbus TCP

  • 客户端/服务器(Client-Server)

    • 允许多个客户端同时连接同一服务器

    • 服务器可同时处理多个请求(采用并发连接)

  • 全双工:可同时收发

  • 连接管理

    • 基于 TCP 端口 502(默认)

    • 需建立连接(三次握手)和关闭连接(四次挥手)

    • Keep-Alive 可选

  • 事务标识符:区分并发的请求-响应对,支持重叠和乱序返回

  • 无广播:但可通过单元标识符向下级串口网络广播


四、功能码与数据模型(两者相同)

Modbus 定义四种数据表(与 RTU/TCP 无关):

数据表
访问类型
功能码示例(读/写)
离散输入
只读,1 位
02(读)
线圈
读写,1 位
01(读),05(写单),15(写多)
输入寄存器
只读,16 位
04(读)
保持寄存器
读写,16 位
03(读),06(写单),16(写多)

注意

  • 寄存器地址通常用 16 位(0x0000 - 0xFFFF)

  • Modbus 标准中地址从 0 开始,但某些设备地址从 1 开始(偏移 1 问题)


五、性能与效率对比

指标
Modbus RTU
Modbus TCP
原始比特率
9600bps - 115200bps(典型 19200)
10/100/1000 Mbps
有效数据效率
约 75-80%(含地址+CRC)
约 95%+(MBAP 开销固定 7 字节)
典型一帧时间(10 个寄存器读)
约 10-30 ms(@19200bps)
<1 ms(局域网)
最大吞吐量(单连接)
~200-300 寄存器/秒
>50000 寄存器/秒
最大从站/服务器数量
247(单总线)
理论数十万(IP 网络)
网络扩展性
差(中继器/桥接器复杂)
极好(交换机+路由器)

RTU 时间计算示例(@9600bps,1 起始位+8 数据位+1 停止位 = 10 位/字节)

  • 发送 8 字节请求:8 × 10 / 9600 ≈ 8.3 ms

  • 等待响应(3.5 字符间隔 ≈ 3.6 ms)

  • 接收 25 字节响应:25 × 10 / 9600 ≈ 26 ms

  • 单次总耗时 ≈ 38 ms


六、错误处理与可靠性

Modbus RTU

  • 物理层:RS-485 差分信号 → 抗干扰

  • 链路层:CRC-16 校验 → 检出 99.998% 的错误

  • 帧同步:依赖 3.5 字符静默时间 → 易受噪声影响(可能误判帧边界)

  • 恢复机制:主站超时重试(通常 3 次)

  • 异常码:从站返回 0x80 + 功能码 + 异常码(如 01=非法功能)

Modbus TCP

  • 物理层:以太网差分+PAM 编码

  • 链路层:以太网 CRC-32 + TCP 校验和

  • 传输层:TCP 提供确认重传(ARQ)、顺序保证、流控

  • 连接性:自动检测断开并重新连接

  • 故障隔离:交换机可隔离故障端口

结论:TCP 层可靠性远高于 RTU,但 TCP 超时重传可能引入较大延迟(秒级)。


七、应用场景与选型指南

选择 Modbus RTU 的理由(适合条件)

  1. 长距离:>100 米且不宜布光纤/网桥

  2. 恶劣电磁环境:工厂、变电站(RS-485 共模抑制强)

  3. 低速率足够:数据变化慢(温度、水位、状态量)

  4. 简易系统:单主站、少量从站(<32)

  5. 成本敏感:RS-485 芯片比以太网 PHY 便宜

  6. 老旧设备:大量存量串口设备

选择 Modbus TCP 的理由(适合条件)

  1. 高速/大数据:采集频率 >10Hz,每次上百个寄存器

  2. 多客户端:同时让 PLC、SCADA、云端访问

  3. 集成 IT 系统:MES、ERP、数据库、云平台

  4. 灵活拓扑:设备分散在不同区域/楼层/建筑

  5. 长距离组网:通过光纤/4G 连接远处站点

  6. 故障诊断:利用 ping、Wireshark、网络管理工具

  7. 安全要求:IP 过滤、VPN、TLS(需网关或 Modbus Secure)


八、互操作与转换策略

串口服务器(Serial to Ethernet Converter)

  • 作用:将 Modbus RTU 转换为 Modbus TCP,双向透明传输。

  • 内部原理

    • TCP 接收数据 → 提取单元标识符 → 封装成 RTU 帧 → 发送到串口

    • 从串口收到 RTU 帧 → 解析地址 → 映射为单元标识符 → 加上 MBAP 头 → 通过 TCP 连接发送

  • 地址映射:单元标识符对应 RTU 从站地址(通常 1-247)

  • 多从站共享:一个串口服务器可挂多个 RTU 设备(通过单元标识符区分)

Modbus TCP 转 RTU 网关

  • 工业网关或 PLC 通常内置功能:

    • 作为 Modbus TCP 服务器接受客户端请求

    • 根据单元标识符将请求路由到某条 RS-485 总线上的 RTU 从站

    • 聚合响应并返回

  • 典型案例:SCADA 通过以太网 → 网关 → 4 条 RS-485 总线,每条 32 个 RTU 设备。


九、安全性比较

方面
Modbus RTU
Modbus TCP
物理访问
需接触串口线缆
距离不限(连网即可)
嗅探
需要物理接触
任何网络可达位置均可抓包
伪造/重放
较难(需串口接入)
容易(无需物理接触)
加密
无,需外部加密器
无原生,需 Modbus Secure(TLS)或 IPsec/VPN
认证
无(依赖网络层)
建议措施
物理隔离
防火墙、访问控制列表(ACL)、VLAN、VPN、TLS(推荐 802.1X+Modbus TLS)

重要:原生 Modbus TCP 没有任何安全措施,绝不能直接暴露在互联网上!


十、扩展与未来趋势

  1. Modbus Plus:专有高速令牌环网络(淘汰边缘)

  2. Modbus over UDP:降低延迟但牺牲可靠性(极少用)

  3. Modbus/TCP Security(IEC 62443):基于 TLS 的 Modbus TCP,端口 802

  4. OPC UA 与 MQTT:越来越多系统在边缘端将 Modbus 转换为 OPC UA 或 MQTT 上云

  5. TSN(时间敏感网络):实时以太网可能取代部分现场总线(包括 RTU)


总结表:RTU vs TCP 全维度对比

维度
Modbus RTU
Modbus TCP
物理层
RS232/RS485 串口
以太网
拓扑
菊花链/点对点
星型
最大距离
1200m (RS485)
100m (铜缆)
通信模式
主从(单主)
客户端/服务器(多客户端)
帧格式
地址+数据+CRC
MBAP头+数据
校验
CRC-16
TCP 校验和
最大节点
247
理论 2^32
实时性
较好(确定性)
可预测(网络负载影响)
数据速率
<115.2 kbps
10-1000 Mbps
安全
物理隔离依赖
需外置安全措施
适用场景
长距离、少节点、低速
联网、高速、多客户端


在线客服

关闭

微信

客户服务热线

19557160376

在线客服