RS-485、Modbus 和边缘网关是三个层级:RS-485 规定电气传输,Modbus 规定怎样读写设备数据,边缘网关负责采集、转换、本地处理和上云。
1 | RS-485:数据怎样沿总线传输 |
典型架构
1 | 温度传感器 ─┐ |
多台设备可以挂在同一条总线上,通过不同站号区分。接线还要考虑拓扑、终端电阻、接地、波特率、校验位和现场干扰,不能只配置软件地址。
Modbus 寄存器
| 数据区 | 含义 | 常见用途 |
|---|---|---|
| Coil | 可读写单比特 | 启停开关 |
| Discrete Input | 只读单比特 | 报警和输入状态 |
| Input Register | 通常只读 16 位 | 温度、电压 |
| Holding Register | 可读写 16 位 | 参数和控制值 |
寄存器含义由设备厂商的地址表定义,不是 Modbus 统一规定。接入设备时至少要确认站号、串口参数、功能码、地址基准、数据类型、字节序和倍率。
一次采集流程
假设温度在 Holding Register 中,原始值 253,倍率为 0.1:
1 | 网关打开串口 |
1 | { |
网关不只是协议翻译
边缘网关还应承担:
- 轮询调度与串口互斥。
- 数据校验、单位换算和异常过滤。
- 断网缓存与恢复后限速补传。
- 本地阈值和安全联锁。
- 设备配置、日志、远程升级和证书管理。
下行命令必须有回执
1 | 云端创建命令 -> MQTT 发送 -> 网关接收 |
“MQTT 发布成功”只证明消息到达某个协议节点,不证明电机真的启动。命令应有唯一 ID、超时、权限、目标状态、执行状态和最终设备状态。
Modbus RTU 与 Modbus TCP
Modbus RTU 常运行在串行链路上并使用 CRC;Modbus TCP 运行在 TCP/IP 上,通过网络地址访问。RS-485 也可以承载厂商自定义协议,所以“RS-485 等于 Modbus”是不准确的。