跳到主要内容

从采集到显示的端到端流程

本文将一次性概述传感器数值如何从 PLC 到达画面。每个步骤的«具体操作方法»请参阅相关链接文档,本页旨在解释 为什么要这样分层。

PLC · 센서
│ ① 읽는다 — 프로토콜 40여 종
▼
PlantPulse Edge (현장 게이트웨이)
│ ② 올린다 — 플랫폼 API (server.host / server.api_key)
▼
PlantPulse Platform (수집 · 모델 · 규칙)
│ ③ 저장한다
▼
DataLake (Aster TSDB · PostgreSQL · Kafka · RustFS)
│ ④ 읽는다
▼
화면 · 알람 · 분석 · AI

① 读取 — Edge 与 PLC 通信​

不同 PLC 使用的语言各异,例如 Modbus · S7 · MELSEC · EtherNet/IP · OPC-UA … Edge 负责学习这些语言 — 这里提供了 40 多种协议的驱动。

Edge 采用 周期性读取(轮询)模式。定义「读取哪个地址、周期是多少」的配置即为 标签。

为什么 Platform 不直接连接 PLC

现场网络通常是隔离网络,且 PLC 支持的并发连接数有限。由网关部署在现场,仅对 PLC 询问一次并将数据汇总上传,比服务器直接连接每个 PLC 更安全、更轻量。

→ 各 PLC 类型指南 · 添加新 PLC 连接

② 上传 — Edge 将数据发送至 Platform​

Edge 将读取的数值通过 Platform API 上传。关于地址和认证请参阅 app.properties 中的 server.host · server.port · server.api_key。

若通信中断,Edge 会将数据 缓存在本地,并在恢复后统一上传。因此,即使现场线路短暂中断,数值也不会丢失 — 但此时会出现 延迟数据 集中上传的情况。这就是存储层对其进行单独处理的原因(④)。

支持通过 Sparkplug B 发送

对于需要基于标准 MQTT IIoT 协议的现场,请开启 sparkplug.enable。该功能默认关闭,默认使用 Platform API 路径。

→ 端到端连接一台 PLC · app.properties 参考

③ 存储 — Platform 确定位置​

上传的数值绑定到 标签,标签绑定到 设备,设备则进一步绑定到 生产线 · 区域 · 站点 · 企业。这个树形结构就是«工厂模型»。

기업 ─ 사이트 ─ 구역 ─ 라인 ─ 설비 ─ 태그 ─ 값

🔴 模型优先。 无论数值如何输入,如果没有可绑定的位置,就无法在画面上显示。由于报警 · 指标 · 画布全部挂载在这棵树上,因此必须首先建立此模型。

→ 工厂管理 · 设备

④ 堆叠 — Data Lake 分类处理​

不同性质的数据由 不同的存储介质 承担。如果全部混在一起,必然会导致某一方面性能下降。

存储内容存储位置原因
标签值(时序)Aster TSDB无限累积,仅按「单个标签的特定时间段»读取
设备 · 用户 · 配置PostgreSQL需要关系维护和约束
现场实时流Kafka · MQTT应对瞬间高峰,需保证实时流转
文件 · 图像 · 归档RustFS体积大,读取频率低

时序数据会 随时间增加而压缩,超过保留周期后将整体删除。在保持查询能力不变的同时,降低存储占用。

→ Data Lake 概述 · 时序数据库

⑤ 使用 — 画面 · 报警 · 分析​

同一数值会以多种形式呈现。

应用场景查看位置
查看当前值仪表盘 · 数据点
异常时接收通知报警 · CEP
自定义绘制画布
大规模分析Spark SQL
智能问答PlantPulse AI

故障排查建议​

沿着此流程 逆向 追溯通常能快速定位问题。

症状首选检查项
画面无数值③ 标签是否绑定至设备 → 数据点
Platform 中看不到标签② Edge 是否正在上传 → 连接列表
Edge 中也无数值① 是否在读取 PLC → 实时值监控
仅历史数据缺失④ 是否超过保留周期 → pd retention

相关阅读​