跳到主要内容

边缘设备读取与上传数值的原理

网关要做的核心事情就三件——读取 · 存储 · 上传。理解了这三者如何配合,就能确定从何处入手排查“数值不见了”的问题。

PLC ──① 읽는다──▶ 엣지 ──② 담는다──▶ 로컬 Cassandra (PE)
│
└──③ 올린다──▶ 상위 플랫폼
(전송 큐 → 막히면 디스크 큐)

连接 · 标签 — 决定读取内容的两层​

是什么示例
连接连接到哪个设备,使用什么协议OPC_LS_XGI_0001 — LS, <PLC-IP>:2004
标签读取该设备的“哪个地址”、“多久一次”D0800, 1000ms

一个连接下可以挂多个标签。知道地址是成功的一半,不同协议的地址表示方式不同 → PLC 地址输入参考。

① 读取 — 周期性询问​

边缘设备会按照采集周期向 PLC 发起询问(轮询)。默认是 1000ms,对于变化快的数值,适合用 500;变化慢的数值,用 5000 比较合适。

缩短周期并非没有代价

周期是施加在 PLC 上的负载。设为 100ms 就相当于每秒询问十次,如果标签有数百个,PLC 会先撑不住。请先确认数值是否真的以这种速度在变化——如果某个值每秒才变一次,用 100ms 去读,只是在多收到九次相同的值而已。

② 存储 — 网关内部自带存储​

边缘设备将读取到的值存入本地 Cassandra(127.0.0.1:9042,键空间 PE)。 这与上层平台的 Cassandra(pp)是不同的。

🔴 正因为有了这个本地存储,即使与上层断开,采集也不会中断。 即使现场线路中断,网关也能继续独立读取并存储,待恢复后上传积压的数据。

→ 数据库模型

③ 上传 — 传输队列反映状态​

待上传的值会先进入传输队列,再发送出去。首页上的 대기 큐(queue_size)就是该队列的大小。

队列状态含义
0 ~ 数十正常。数据立即发送
持续增长外部传输受阻 — 请检查上层通信
溢出到磁盘队列(queue_disk_size)内存队列已满。表示断连时间较长
排查“数值未上传”的第一检查点

如果待处理队列接近 0,但平台上仍看不到数值,说明传输正常,问题出在平台侧。 如果队列在持续增长,则表示边缘设备到上层的链路被阻塞了。

→ 首页 · 实时数值查看

排查阻塞位置时​

症状查看顺序
标签值完全没有① 是否能连通 PLC — Test connection, ping
数值停留在旧值不变① 地址是否正确 · 是否出现读取错误
边缘设备上有,但平台上没有③ 待处理队列是否在增长
几天前的数据一次性上传②③ 断连后恢复所致。属于正常现象

相关文档​