Modbus RTU (串口)
Modbus RTU 是 Modbus 的 串口 (RS-485 / RS-232) 方式。变频器、电能表、环境传感器等仅具备串口接口的设备只能通过 RTU 通信。
本网关基于 TCP/IP,因此不直接操作串口,而是通过 Modbus RTU-over-TCP 网关 (RS-485 → 以太网转换器) 进行通信。
必须配备 TCP 网关
PlantPulse Edge 本身不带 RS-485 端口。要接入串口设备,需要下列之一。
- Modbus 网关 (转换器) — Moxa MGate、Advantech EKI、USR-TCP232、ICP DAS tGW 等
- PLC 的串口模块 — 由 PLC 接收 RTU 串口数据并以 Modbus TCP 重新发布
RTU 与 TCP 的差异
| 项目 | Modbus TCP | Modbus RTU |
|---|---|---|
| 物理层 | 以太网 | RS-485 / RS-232 |
| 传输单位 | TCP segment | 串口 frame |
| 从站识别 | IP + (Unit ID) | Unit ID |
| 经网关的映射 | 直接 | 1 个 TCP IP + 多个 Unit ID |
| 响应速度 | 快 | 受波特率限制 (通常 9600~115200 bps) |
→ 最常见的结构是 一条 RS-485 线路 (= 一个转换器 IP) 上挂接多个从站。请将每个从站注册为 Unit ID 不同的独立连接。
注册表单输入值
| 输入项 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | RTU-over-TCP 网关 IP | 192.168.0.55 |
| 端口 | 网关的 TCP 端口 | 502 (或 8899、4001 等,视转换器而定) |
| Unit ID (slave-id) | 串口从站地址 (1~247) | 1 |
| 响应超时 (request-timeout) | 响应等待 (ms) | 5000 (串口应比 TCP 设置更长) |
Unit ID 是关键
与 Modbus TCP 不同,RTU 是 同一 IP 后面挂接多个从站。Unit ID 填错就会读到 “其他设备的值”。请确认各从站的手册 / DIP 开关设置。
转换器侧设置检查清单
| 项目 | 推荐值 |
|---|---|
| 模式 | Transparent / Modbus TCP-RTU gateway |
| 波特率 | 与从站一致 (9600 / 19200 / 38400 等) |
| 数据位 / 停止位 / 校验位 | 与从站一致 (通常 8N1) |
| RTU response timeout | 1000~3000 ms |
| Inter-frame delay | 自动或 5~10 ms |
标签的 PLC 地址表示
标签地址格式与 Modbus TCP 相同 (参见 Modbus TCP 页面)。
| 表示 | 含义 |
|---|---|
holding-register:1 | Holding Register 1 (16-bit) |
holding-register:1:REAL | Holding Register 1~2 (32-bit float) |
coil:1 | Coil 1 (1 位) |
input-register:1 | Input Register 1 (16-bit,只读) |
5 位 / 6 位表示 (40001、400001) 也同样支持。
| 5 位 | 含义 |
|---|---|
1xxxx | Discrete Input |
0xxxx | Coil |
3xxxx | Input Register |
4xxxx | Holding Register |
数据格式匹配
请直接套用 Modbus TCP 中的表格。RTU 并不需要额外的格式。
常见问题与解决
| 现象 | 可能原因 | 解决 |
|---|---|---|
| “Read timeout” | RTU 波特率 / 校验位不匹配 | 使转换器与从站的串口参数保持一致 |
| 只有一个从站响应,其余提示 “Slave not present” | RS-485 终端电阻 / 接线 / Unit ID 冲突 | 巡检线路末端的终端电阻 (120Ω) 及 Unit ID 是否重复 |
| 所有从站均无响应 | 转换器模式不是 “TCP server” | 在转换器设置中选择 Modbus TCP-RTU gateway 模式 |
| 间歇性 timeout | 串口冲突 (multiple master) | RS-485 master 只能有一台 |
| 32-bit 浮点数错乱 | byte/word 顺序 (与 Modbus TCP 相同的问题) | 尝试 :UDINT_LSWORD_FIRST 等变体 |
后续步骤
- 直接使用 Modbus TCP 的地址 / 格式表
- 高级 — REST API 中的 Modbus 示例 (RTU 调用方式相同)