跳到主要内容
带木质立面的现代节能住宅

协议 · Modbus

Modbus RTU 与 TCP——实用集成指南

Modbus RTU 与 TCP 如何工作、如何读寄存器表,以及哪些缩放、轮询与故障细节最容易导致集成问题。

直接回答

Modbus 是基于线圈与寄存器的请求-响应协议。RTU 走串行链路,TCP 走以太网。它只传数据,不传语义,因此寄存器表、缩放、字序与写权限必须以书面确认。Modbus 适合电表、逆变器与简单设备,不适合快速联动。

01

寄存器模型,不是数据模型

Modbus 暴露线圈、离散输入、输入寄存器与保持寄存器。它不定义寄存器含义,含义由设备厂商定义。一块表可能用两个保持寄存器表示电量,另一块字序不同,第三块还要求缩放系数。所以 Modbus 项目从寄存器表开始,而不是从一根线开始。表里要写清地址、数据类型、缩放、单位、访问权限,以及设备不再应答时的行为。只写“电量”、没有单位、缩放或字序的寄存器表不是规格,而是一种希望在调试时被检验,而且往往在最不合适的时候。

  • 从厂商寄存器表开始
  • 记录每个点的缩放、单位与数据类型
  • 定义每个数值离线时的行为
02

RTU 与 TCP 是不同的链路

Modbus RTU 跑在 RS485 或 RS232 上。RS485 是共享总线:终端、偏置、线缆路由与从站地址都重要,一个主站轮流轮询从站。Modbus TCP 跑在以太网上,TCP 帧里带单元标识,常用来访问串口网关。TCP 更容易路由与诊断,但如果后面的网关慢,它并不会自动变快。按设备、距离与现有基础设施选择链路,并把中间的网关写进文档。即使网关由电表厂商提供,它的寄存器映射与固件仍应写进点位表,而不是只留在厂商手册里。

  • RS485 需要终端与分段规划
  • TCP 仍受其后网关影响
  • 记录协议转换点
03

缩放、符号与字序

多数集成故障不是协议故障,而是解释故障。数值可能是有符号或无符号、16 位或 32 位,还可能以两种字序拆在两个寄存器里。温度可能以十分之一度为单位,压力可能以百分之一巴为单位,一个状态字可能把多个告警打包成一个整数。寄存器表必须定义这些,点位表要记录换算。用已知值测试,不要被屏幕上看似合理的数字骗过。调试时把原始值与工程值并排记录;这能让以后的缩放错误一眼可见,也给下一位工程师一个参照。

  • 确认符号与位宽
  • 确认寄存器配对与字序
  • 用已知物理值测试
04

轮询、写入与故障行为

Modbus 是轮询的,每个点都要花时间和网络负载。合并读取,不要比设备应答能力更快地轮询,把超时当作数据质量事件,而不是零值。写入需要权限、范围检查与读回。如果控制器写设定值,要定义设备拒绝或离线时怎么办。安全联锁不要放在慢速轮询回路里。Modbus 是计量与机房数据的好胶水,却不是要求确定性响应顺序的好基础。慢协议也可以很可靠;错误的是让它做快速的任务,然后在顺序滞后时怪协议。

  • 合并读取并遵守轮询预算
  • 把超时当作质量标志,而不是零值
  • 安全联锁不要放在慢速回路

Modbus 数据区

6 行
数据区访问典型用途注意事项
线圈读写启停命令与状态位确认 0 还是 1 表示开启
离散输入只读运行反馈、告警与限位检查极性与防抖
输入寄存器只读测量值与计数器缩放与符号
保持寄存器读写设定值、模式与配置写权限与读回
32 位数值读写电量、流量与大计数字序与寄存器配对
设备状态只读通信与故障标志区分离线与零值

项目图景

3 张图片
Modbus 扩展模块
Modbus 接口
Loxone Nano 继电器控制器
开关控制
平板上的楼宇自控界面
统一运营视图

常见问题

01选 RTU 还是 TCP?

RTU 适合串行现场设备与较长线缆;TCP 适合以太网与网关。很多现场两者并用,由网关连接。

02一条 RS485 段可以接多少设备?

取决于驱动器、线缆、波特率与轮询预算。分段方案应计算得出,而不是套用一个通用数字。

03Modbus 安全吗?

本身不安全。它没有认证或加密。应把它当现场总线,通过网络分区与网关保护。

04为什么数值大了十倍?

缩放问题。寄存器可能以十分之一或百分之一为单位,或者 32 位值的字序拼错了。

05Modbus 可以无线传输吗?

可以,通过无线串口桥或网关。用于控制前要确认延迟、重试与故障状态。

下一步

把建筑交给我们。

告诉我们建筑类型、纳入范围的系统,以及你需要的结果。我们会给出通往可用系统的最短路径。