主题
1.2 串口设备采集
「串口设备」页用来采集挂在设备串口上的第三方从机:Modbus 仪表、DL/T645 电表、三菱 FX PLC。采集到的数据写进指定的 PLC 寄存器,之后可以被云交互上云、被梯形图或逻辑编程读取参与控制。
怎么配
路径:上位机 → 设备详情页 → DTU 功能 → 串口设备 → 打开「启用串口设备」→「增加串口」。一路串口一张卡片。
配置是三层的:先定这路串口的通信参数,再在它下面挂从机,最后给每台从机配采集点。
串口本身的参数
| 字段 | 说明 |
|---|---|
| 串口号 | 用设备上的第几路串口 |
| 波特率 | 300 ~ 115200,要和从机一致 |
| 校验 | 无校验 / 奇 / 偶,要和从机一致 |
| 数据位 | 7bit / 8bit |
| 停止位 | 1bit / 2bit |
| 轮询时间(ms) | 轮询该路串口上所有从机的间隔时间 |
每路串口下挂子设备
| 字段 | 说明 |
|---|---|
| 设备类型 | Modbus / DL/T645 / FX PLC |
| 协议类型 | RTU / ASCII |
| 设备地址 | 从机站号 |
| 浮点解码顺序 | 字节序 AB / BA,双字序 ABCD / CDAB / BADC / DCBA |
| 接收超时(ms) | 等待应答的时间 |
再配采集点
为每个采集点配置数据区、地址、数据类型(S16 / U16 / …)、读写权限,以及采集到的值写入哪个寄存器。

配完要点 💾 写入配置 → 🔄 重启生效。
三种现场协议
| 协议 | 通道配置要点 |
|---|---|
| Modbus RTU | 从站序号、数据区(0/1 区对应 PLC 的 M,3/4 区对应 PLC 的 D)、寄存器地址、数据类型、读写方向 |
| DL/T645 电表 | 电表数据标识 + 落地的 PLC 寄存器 D |
| 三菱 FX | 源寄存器、目标寄存器、类型、读写方向 |
浮点数读出来是乱码?先换字节序
Modbus 浮点数没有统一标准,不同厂家的仪表字节序不同。
读到的值明显异常时先改字节序
表现为极大值、恒为 0、或正负乱跳。通常是双字序设置不符:把 ABCD 改成 CDAB 再试,多数国产仪表使用后者。
轮询时间和接收超时要配合
轮询时间不能短于"所有从机应答一遍的总时间"
否则请求会堆积,表现为采集变慢甚至整路串口卡死。估算方式:
轮询时间 ≥ 从机数 × 接收超时仪表数量较多时,把轮询时间放宽到 5000ms 以上更稳定。
采集进来的数据怎么用
写进寄存器之后有三条去向:
| 想做什么 | 怎么做 |
|---|---|
| 送到云端看 | 1.1 云交互数据点 绑定这个寄存器 |
| 参与控制 | 逻辑编程里用「取通信变量 Dn」块读,见 取通信变量 Dn |
| 判断从站掉线 | 逻辑编程的「从站通信状态 Dn」块,见 从站通信状态 Dn |
判断掉线很重要
从站掉线后寄存器里留的是最后一次的值。用过期的数据做控制会造成误动作,用「从站通信状态」块判断,异常时停止相关输出。
排查
| 现象 | 先查什么 |
|---|---|
| 一个数据都采不上 | 波特率 / 校验 / 站号是否与仪表一致;接线方向(485 的 A/B) |
| 采上来但数值不对 | 字节序;采集点的数据类型与仪表实际格式是否一致 |
| 采集很慢或时断时续 | 轮询时间是否短于从机数 × 接收超时 |
| 改完没生效 | 没点「重启生效」 |