跳到主要内容

主页

这是网关 Web UI 的主页面。它以卡片形式在单一画面中展示网关的 所有 运行状态。各卡片每 1 秒周期 从后端 (/monitor/bean) 重新获取值并更新,仅 Sparkplug B 卡片 独立按 5 秒周期 (/api/v1/transfer) 更新。

Edge 主页 — 网关信息 · 网络 · 资源 · 采集 · 服务器卡片集中在一屏

点击左上角的 PlantPulse 标志 或直接通过 http://<gateway>/ui/main 访问。

2026.05+ 容器模式卡片
  • MQTT / Sparkplug B / OPC UA 服务器 卡片:直接查找 app.properties 的 *.enable / host / port / user 键。由于 install.sh 为每个设备生成随机密码,用户项可能为空或在不同设备间显示不一致。
  • Docker 卡片:需要挂载 /var/run/docker.sock。plantpulse-edge 自身执行 self-exclude — 不显示在列表中(防止误操作 start/stop/delete)。
  • 网络 卡片 (LAN1/LAN2/WiFi/GSM/VPN/管理):映射为 edge.net.<role>.iface 值。若像 dev 设备一样使用 enp1s0 / enp2s0 / tailscale0 等 systemd predictable 名称,则在 app.properties 中直接配置(可通过 install.sh 的 NET1_IFACE=... 环境变量自动反映)。
  • 组件健康单行确认:curl http://localhost/api/v1/system/health (无需认证,8 组件状态映射 + 503 分支)。

卡片概览 (共 ~30 个)​

采用横向 6 列网格。卡片分为 3 种类型:

类型颜色含义
action_box (白底, 大图标)灰色边框点击后跳转至相应菜单
black_box (黑底)灰色文字不变的网关信息
gray_box (白底, 灰色页眉)浅灰色实时监控 — 值每秒更新

1. 顶部操作 / 信息 (第 1 行)​

1.1 엣지 정보 (black_box)​

显示内容:该网关的 固定 标识信息。仅在启动时测量一次并固定在画面中。

字段含义来源
主机名OS 的 hostname (例如: pe-edge-01)EdgeContext.hostname
O/SOS 名称 + 架构 (例如: Linux (amd64))os.name + os.arch
内核内核版本 (例如: 5.14.0-...)os.version
版本网关 SW 版本 (例如: V2026.05.08)app.properties
构建日期产出物构建日期 (例如: 2026-05-08)BUILD_DATE

⚠ 主机名、O/S 信息仅在网关重启后 OS 发生变更时才会改变。

1.2 프로토콜 연결 하기 (action_box)​

→ 点击跳转至 /ui/connect/connect。用于添加新 PLC / OPC-UA / MQTT / 模拟器连接的画面。

1.3 연결된 목록 (N) (action_box)​

→ 点击跳转至 /ui/connect/list。括号中的 N 为当前注册的 OPC(连接) 数量 (monitor.opc_count)。

1.4 애플리케이션 (action_box)​

→ /ui/apps。启动/停止/管理基于 Docker 的用户应用程序。

1.5 노-코드 플로우 (action_box)​

→ /ui/flow (Node-RED 嵌入)。 详细用法:流 (Node-RED)

1.6 환경 설정 (action_box)​

→ /ui/system/config。直接编辑 app.properties + 系统重启 / 重新启动 / 备份 / 清理临时文件等。


2. 网关识别 (3 cards)​

2.1 엣지 시작 시간 (gray_box)​

显示内容:网关 (Tomcat) 最后一次启动的精确时间 — yyyy년 MM월 dd일 [a] HH시 mm분 ss초 (KST)。 若怀疑重启时间点,请通过此值确认“最后重启时间”。

2.2 엣지 ID (gray_box)​

显示内容:该网关的唯一 ID (例如: EDGE_00303)。它是 Sparkplug, REST API, OPC-UA 节点树等 所有识别 的基准。来源于 app.properties 的 edge.id。

2.3 배포 사이트 ID (gray_box)​

显示内容:该 Edge 布署在哪个站点(工厂 / 线) (例如: SITE_00001)。用于决定外部 SCADA / Sparkplug 的 Group ID。来源于 app.properties 的 site.id。


3. 网络状态 (6 cards)​

每个卡片显示 链路状态图标 + IP 或 DISCONNECTED(灰色)。

3.1 인터넷 (gray_box)​

网关是否能 ping 通外部互联网。图标颜色:

  • 绿色地球:连接正常
  • 红色地球:连接失败

ping 对象为 app.properties 的 monitor.ping.targets (例如: 8.8.8.8)。

3.2 이더넷 (gray_box) — 分为两栏​

  • 左:1 WAN (外部网 NIC, net_1_ip)
  • 右:2 PLC (PLC 网 NIC, net_2_ip)

每栏颜色随 互联网 ping 结果 同步变化 (简化显示)。

3.3 WIFI (gray_box)​

wifi-1 图标 + IP,或 wifi-slash 灰色 (DISCONNECTED)。

3.4 3G/4G/5G (gray_box)​

GSM 调制解调器的 IP 或 DISCONNECTED。SIM 卡图标。

3.5 VPN (gray_box)​

shield-check 图标。VPN 连接时显示 IP,断开时显示灰色 + DISCONNECTED。

3.6 관리 포트 (gray_box)​

wrench 图标。USB / 独立管理 NIC 的 IP。通常为与站点网络隔离的诊断通道。


4. 系统资源 (5 cards)​

4.1 온도 (gray_box)​

CPU 温度。90°C 以上为红色 + temperature-high 图标 (危险),否则为绿色 + temperature-low。在工业环境中,这是 风扇堵塞 / 高温报警 的首要信号。

4.2 CPU (gray_box)​

仪表盘(0–100%) + 总核心数。JustGage 库。1 秒更新。

若持续超过 90%,需要检查 PLC 轮询周期 / 标签数量。

4.3 물리 메모리 (gray_box)​

仪表盘 + 사용 / 전체 (KB/MB/GB 自动单位)。独立于 swap 的 RSS 内存使用量。

4.4 가상 메모리 (gray_box)​

交换分区(swap)使用量。仪表盘 + 사용 / 전체。平时 0–10% 为正常,持续超过 30% 可能存在 RAM 不足。

4.5 디스크 (gray_box)​

/data1 (或网关主目录) 的使用率。仪表盘 + 사용 / 전체。

超过 90% 时,立即执行 整理 / 清理 (clean.sh / node-cleanup.sh) 步骤。


5. 网络流量 (1 card)​

5.1 네트워크 사용량 (gray_box)​

  • 下载 (RX) — 累计接收字节
  • 上传 (TX) — 累计发送字节

KB/MB/GB 自动单位。启动后的累计值。


6. 采集 / 处理 (4 cards)​

6.1 연결 | 태그 건수 (gray_box)​

  • 上方大数字:连接 (OPC) 数 (opc_count)
  • 下方大数字:标签数 (tag_count)

网关所知的 OPC/标签 总 计数。包含系统标签 (EDGE_*)。

6.2 PLC 연결 및 수집 상태 (gray_box) — 2x4 矩阵​

左侧 (连接)含义
🟢 连接TCP/UDP 连接 OK 的 OPC 数量 (plc_con_connected_count)
🔴 断开连接失败的 OPC 数量 (plc_con_disconnected_count)
右侧 (采集)含义
🟢 正常采集开始 + 读取成功中 (plc_scan_start_count)
🟧 异常采集开始但一定时间内读取失败 (plc_scan_not_collect_count)
⬜ 停止用户点击停止的 OPC (plc_scan_stop_count)

连接与采集不同:即使 TCP 存活 (连接 ✅),若由于某种原因无法获取 read 数据,则被归类为 采集异常。

6.3 PLC 읽기/쓰기 결과 (gray_box)​

采集器/REST API 累计的 read/write 计数器。以 K/M/B 为单位压缩显示。

成功失败
读取 (R)plc_value_read_success_countplc_value_read_error_count
写入 (W)plc_value_write_success_countplc_value_write_error_count

点击右上角 ↻ 刷新图标 → 调用 /connect/reset-read-error → 仅失败计数器归零。用于在报警清理后从下一周期起重新计数。

6.4 MPS (gray_box)​

Messages Per Second — 每秒处理的数据点数量 (monitor.mps)。 下方为 sparkline (近期趋势微型图)。一目了然地观察负载变化。

若平时站点的 mps 为 100 但突然掉至 0 → PLC 连接或采集异常。


7. 传输 / 存储 (5 cards)​

7.1 대기 큐 (gray_box)​

等待传输的数据点队列大小 (queue_size)。

平时为 0–数十个。外部传输受阻 (如 Sparkplug 断开) 会快速增加 → 溢出至 磁盘队列 (queue_disk_size)。若此卡片数值持续增长,需检查外部通信。

7.2 포인트 전송 건수 (gray_box)​

启动后 成功向外部传输 的累计数据点数量 (sended_point_count)。

7.3 포인트 전송량 (gray_box)​

启动后累计发送字节数 (sended_point_bytes)。自动单位。参考用于 数据流量结算。

7.4 데이터 저장량 (gray_box)​

Cassandra 的 keyspace pe 中存储的时序数据总大小 (输入 MBytes → 自动单位转换)。请结合磁盘剩余空间查看。

7.5 데이터 저장 기간 (gray_box)​

tm_tag_point 的 TTL (Time-To-Live) 天数 (system_db_ttl, 默认 30 天)。超过此天数后自动过期。在 app.properties 中修改。


8. 系统错误 (1 card)​

8.1 시스템 오류 (오늘) (gray_box)​

今日(00:00–现在) 发生的 ERROR 级系统日志条数 (system_error_count)。红色大数字。 点击数字 → 跳转至 /system/log/list,确认实际日志正文。


9. 外部服务 / 集成 (5 cards)​

每个卡片由 状态条 (绿色/红色/灰色) + 连接信息表组成。

9.1 플랫폼 API 서버 (gray_box)​

与上层 PlantPulse 平台 API 的连接状态。点击右上角外部链接图标将在新窗口访问该服务器。

行含义
状态条🟢 连接成功 / 🔴 连接失败 (monitor.api)
HOST/IPserver.host
PORTserver.port
USERserver.username

9.2 OPC-UA 서버 (gray_box)​

网关 内置 OPC-UA 服务器信息。外部 SCADA 连接此处以订阅标签。

行含义
状态条🟢 已激活 (服务器始终运行)
HOST/IPopc.ua.server.host
PORTopc.ua.server.tcp.port (默认 12000)
USERopc.ua.server.user

详细节点树 / 时序图表:OPC UA 服务器使用

9.3 MQTT 서버 (gray_box)​

网关 内置 HiveMQ 信息 + 发布 Sparkplug 等内容的 Topic。

行含义
状态条🟢 已激活 / ⬜ 已停用 (mqtt.enable)
HOST/IPmqtt.server.host
PORTmqtt.server.port (默认 1883)
USERmqtt.server.user
TOPICmqtt.server.topic (Sparkplug spBv1.0/... 或用户 Topic)

9.4 Sparkplug B (gray_box)​

Sparkplug 发布组件的实时状态 (5 秒更新, /api/v1/transfer 的 Sparkplug 项)。

行含义
状态条🟢 已激活 (已连接) / 🔴 连接断开 (激活但 broker 连接中断) / ⬜ 已停用 (sparkplug.enable=false)
GROUPSparkplug Group ID (例如: Plant1)
NODEEdge Node ID (例如: EDGE_00303)
会话 #bdSeq (设备 birth/death 序列 — 重连次数)
消息 #seq (当前发布消息编号 — 0–255 循环)

若消息 # 停止变化,则表示发送中断。若会话 # 频繁增加,则表示 broker 连接不稳定。

9.5 도커 (gray_box)​

Docker 守护进程状态 + 用户应用程序容器统计。

行含义
状态条🟢 运行中 / 🔴 已停止 (monitor.docker_on)
计数[ 살아있는 / 전체 ] 容器数 (docker_container_up_count / docker_container_total_count)

快速确认在 /ui/apps 中注册的应用程序是否全部存活。


10. 页脚 (所有页面通用)​

画面底部显示以下内容:

  • PlantPulse Edge 文本 + 许可证
  • ☁ 软件升级 图标 — 点击后调用 upgrade.sh (通过确认对话框)
    • 图标旁徽标:
      • 红色 "可升级!" → 下载服务器有新版本
      • 灰色 "下载服务器连接失败" → 外部网 / product.kopens.io 访问失败
      • (无徽标) → 当前版本为最新
  • 外部端口快捷方式 — 在新窗口打开其他外部服务 (例如: Grafana 3000)

内部通过 /config/upgrade/check 以 server-to-server 方式获取 https://product.kopens.io/.../VERSION.JSON 进行比较 → 无 CORS 错误地清晰显示徽标。


11. 更新周期 / 数据来源汇总​

区域更新周期端点
仪表盘 / 资源 / 网络 / 计数器 / 队列 / 存储量 / 错误1 秒GET /monitor/bean
Sparkplug B 卡片5 秒GET /api/v1/transfer
升级徽标页面加载时 1 次GET /config/upgrade/check
黑色信息卡片 (主机名/OS/版本等)不更新 (页面加载时时刻值)EdgeContext (服务器启动时决定)

12. 常见识别模式​

画面信号怀疑点 / 采取行动
温度 红色 (90°C↑)风扇堵塞 / 环境温度 — 立即巡检
CPU 持续 90%+轮询周期过快 / 标签数量过多
磁盘 90%+整理与清理 — clean.sh + node-cleanup.sh
PLC 断开 计数突增PLC 网缆 / 交换机 / PLC 电源
采集异常 > 0连接 OK 但 read 失败 — 巡检地址格式 / PLC 固件
MPS 掉至 0所有 PLC 读取失败或采集器停止
等待队列 持续增加外部传输 (Sparkplug / MQTT) 受阻 — 确认 9.3/9.4 卡片
系统错误 红色数字点击 → 在 /system/log/list 确认正文
Sparkplug 消息 # 不变发送中断 — 巡检 app.properties 的 sparkplug.*
Docker 红色在 systemctl status docker 确认守护进程状态

13. 进一步了解​