RS-485、Modbus 和边缘网关是三个层级:RS-485 规定电气传输,Modbus 规定怎样读写设备数据,边缘网关负责采集、转换、本地处理和上云。

1
2
3
RS-485:数据怎样沿总线传输
Modbus:字节怎样表达站号、操作和寄存器
边缘网关:把现场协议接入 IP 网络和云平台

典型架构

1
2
3
4
温度传感器 ─┐
电表 ─┼─ RS-485 / Modbus RTU -> 边缘网关
变频器 ─┘ -> MQTT over TLS
-> Broker -> Worker -> 时序数据库

多台设备可以挂在同一条总线上,通过不同站号区分。接线还要考虑拓扑、终端电阻、接地、波特率、校验位和现场干扰,不能只配置软件地址。

Modbus 寄存器

数据区 含义 常见用途
Coil 可读写单比特 启停开关
Discrete Input 只读单比特 报警和输入状态
Input Register 通常只读 16 位 温度、电压
Holding Register 可读写 16 位 参数和控制值

寄存器含义由设备厂商的地址表定义,不是 Modbus 统一规定。接入设备时至少要确认站号、串口参数、功能码、地址基准、数据类型、字节序和倍率。

一次采集流程

假设温度在 Holding Register 中,原始值 253,倍率为 0.1:

1
2
3
4
5
6
7
8
网关打开串口
-> 向站号 1 发送读取请求
-> 设备返回寄存器字节
-> 校验 CRC
-> 按字节序解析为 253
-> 乘以 0.1 得到 25.3 摄氏度
-> 增加设备 ID 和采集时间
-> 转换为 JSON 并发布 MQTT
1
2
3
4
5
{
"deviceId": "temperature-001",
"temperature": 25.3,
"collectedAt": "2025-06-01T14:20:00+08:00"
}

网关不只是协议翻译

边缘网关还应承担:

  • 轮询调度与串口互斥。
  • 数据校验、单位换算和异常过滤。
  • 断网缓存与恢复后限速补传。
  • 本地阈值和安全联锁。
  • 设备配置、日志、远程升级和证书管理。

下行命令必须有回执

1
2
3
云端创建命令 -> MQTT 发送 -> 网关接收
-> 转换为 Modbus 写请求 -> 设备响应
-> 网关重新读取真实状态 -> 返回执行结果

“MQTT 发布成功”只证明消息到达某个协议节点,不证明电机真的启动。命令应有唯一 ID、超时、权限、目标状态、执行状态和最终设备状态。

Modbus RTU 与 Modbus TCP

Modbus RTU 常运行在串行链路上并使用 CRC;Modbus TCP 运行在 TCP/IP 上,通过网络地址访问。RS-485 也可以承载厂商自定义协议,所以“RS-485 等于 Modbus”是不准确的。

延伸阅读

站内搜索

没有找到内容!