差异在承载而非语义
RTU 与 TCP 承载的是同一套请求应答语义,差别在物理承载与帧格式:RTU 走串行链路,靠帧间静默间隔界定边界并带 CRC 校验,同一时刻通常只能有一个主站发起请求;TCP 走以太网,报文带 MBAP 头且没有 CRC,多客户端并发能力取决于设备实现。选型关键不在协议本身,而在现场条件:设备接口、链路距离、实时性要求与既有网络设施。
差异对照
| 物理承载 | RTU 使用串行链路,常见 RS-485 或 RS-232;TCP 使用以太网 |
|---|---|
| 帧结构 | RTU 为地址加数据加 CRC;TCP 为 MBAP 头加 PDU |
| 主站数量 | 串行链路通常单主站;TCP 侧可多客户端,受设备实现限制 |
| 完整性校验 | RTU 使用 CRC;TCP 依赖以太网校验与重传 |
| 时延特性 | RTU 按波特率串行发送,时延可预测;TCP 受网络抖动影响 |
| 端口 | Modbus TCP 常用 502,以设备手册为准 |
选型考虑
| 场景 | 倾向选择 | 原因 |
|---|---|---|
| 现场仪表分散且距离远 | RS-485 串行链路 | 布线成本低,抗干扰能力较好 |
| 设备仅支持串口 | 串口加网关或串口服务器 | 由设备能力决定,无替代方案 |
| 上位机与控制器同机房 | 直接使用 Modbus TCP | 结构简单,组态与调试方便 |
| 需经交换机与防火墙跨区 | TCP 加受控通道 | 便于用标准网络设备做访问控制 |
| 需要多系统同时采集 | 核实设备连接数上限 | TCP 侧并发能力因实现而异 |
选型时要核实的事
- 设备支持的接口类型与协议变体:串口、TCP 或两者兼有
- 串行链路的波特率、数据位、停止位与校验方式必须与设备一致
- TCP 侧设备的并发连接数上限,多采集系统接入前需确认
- 是否需要经网关转换,以及网关对单元标识的映射方式
- 跨区访问是否符合既有的分区与管道控制要求
「RTU over TCP」是常见做法:把串行帧原样通过 TCP 传输,保留 CRC 与静默间隔语义,需要串口服务器工作于透传模式。它与标准 Modbus TCP 不同,两者混用会导致报文无法解析,配置前必须确认设备与网关的工作模式。
把串行链路通过串口服务器直接映射到以太网,等于让原本物理受限的串口设备暴露在网络中。使用时应限制可访问来源,并明确设备本身不具备访问控制能力。