跳到主要内容

使用 OPC-UA 节点查看器 (/ui/opcua)

网关自身内置了 OPC-UA 服务器,可将采集到的标签值原样暴露给外部 OPC-UA 客户端(SCADA、HMI)。本页面即该内置服务器的查看器,可在同一画面中查看 连接信息节点树(标签列表 + 实时值 + 时序)

内置 OPC-UA 服务器规格
  • 实现: Eclipse Milo 0.6.16 (Apache 2.0)
  • OPC UA 规范: 1.04 (IEC 62541:2020)
  • Transport: opc.tcp:// (default port 12000) / opc.tcp+TLS (12443)
  • Security policies: None / Basic128Rsa15 / Basic256 / Basic256Sha256 / Aes128_Sha256_RsaOaep / Aes256_Sha256_RsaPss
  • User token: Anonymous (opc.ua.server.anonymous=yes default) / UserName+Password / X.509
  • Encoding: UA Binary
  • Profile: Standard 2017 Server
  • PubSub MQTT (1.05): 不支持 — 需要发布时请使用 Sparkplug B

点击左侧菜单 OPC-UA 查看器,或直接访问 http://<gateway>/ui/opcua


1. 画面构成

区域内容
顶部 端点面板外部客户端接入所用的 TCP / TLS Endpoint URL、Application Name、Namespace Index、认证信息(Username / 是否允许 Anonymous / Password 切换)
左侧 节点树사이트 → OPC → 태그 三级树。以内联方式显示各 OPC 的 连接状态(CONNECTED/DISCONNECTED/UNKNOWN)、标签数量以及各标签的 最新值
右侧 节点详情树中所选节点的元数据 + 实时值 +(若为数值/布尔标签)时序图表

点击顶部 端点 URL 旁的 复制 图标可一次性复制;点击 Password 栏(在已认证会话下)可显示明文。


2. NodeId 约定

各标签以如下 OPC-UA NodeId 暴露。

ns=2;s=<SITE_ID>.<OPC_ID>.<TAG_ID>

例:ns=2;s=SITE_00001.OPC_00303.TAG_TEST_00042

外部客户端(UaExpert、KEPServerEX、Ignition 等)可直接使用该 NodeId 订阅。详情面板中 NodeId 右侧带有 复制 按钮,便于复制到剪贴板。


3. 节点树 — 搜索 / 刷新

  • 在树顶部搜索框输入文本,可按树、OPC、标签名称进行 实时部分匹配 过滤。若匹配项位于子孙节点,父节点(OPC、站点)也会自动展开显示。
  • 搜索框右侧的刷新(↻)图标 — 重新获取缓存的树/端点信息。平时会自动刷新,几乎无需点击。
  • 通过各行的 ◂/▾ 开关可折叠/展开子树。搜索处于激活状态时会自动展开以显示匹配项,清空搜索后会恢复到此前的折叠状态。
  • 长值自动省略 (ellipsis) — 树节点的 当前值 超出列宽时会以 text-overflow: ellipsis 进行 处理。鼠标悬停时通过 tooltip 显示完整明文 — 这是防止 JSON / 长 STRING 值破坏树布局的保护措施。
值刷新周期

树中显示的值以 2 秒周期 自动刷新(/ui/opcua/tree)。树结构、展开状态、右侧详情及图表均保持不变。


4. 节点详情 + 时序图表

点击标签行后,右侧会显示以下内容。

  • NodeId(可复制)
  • Tag ID / DataType / PLC Address / Alias / Description
  • Value(当前值 + 最后刷新时刻,精确到 ms)
  • StatusOK / ERROR (메시지)

图表类型会根据值类型自动切换。

4.1 数值 / 布尔(ECharts 折线图)

若值为 数值型(Integer/Long/Float/Double 等)布尔型,则绘制 ECharts 时序折线图

图表功能说明
范围选择通过图表右上角下拉框选择 1분/5분/10분/30분/1시간(default)/3시간/12시간/24시간 — 立即从 Cassandra(tm_tag_point)取回历史数据并重绘
dataZoom 滑块图表下方灰色调(浅灰)拖动条 — 横向 zoom / pan
自动追加2 秒周期轮询会将新值追加到图表
Tooltip鼠标悬停时显示 ms 级时刻 + 值
布尔step end 形式(阶梯型)可视化 0/1 切换
采样最多保留 5,000 点,超出后从最旧的点开始移除(lttb 降采样)

4.2 STRING(vis-timeline 箱型图)

若值为 STRING,则不绘制 ECharts 折线图,而绘制 vis-timeline 的 range box 图表 — 将相同值连续的区间合并为一个箱体,从而在视觉上强调 状态变化时点

项目说明
箱体 = 相同值的连续区间例:"RUNNING" 在 12:00~12:35 期间保持不变,则该区间为一个箱体
箱体颜色基于值哈希自动生成 — 相同文本始终为同一颜色
箱体标签值的明文(过长时悬停显示全文)
时间轴 zoom/panvis 默认交互(mouse wheel / drag)
刷新轮询时将 history 按 ASC 排序并整体重建数据集(几乎无变动时不会闪烁)
切换节点时通过 disposeStringTimeline() 销毁实例并重新生成新节点的图表

STRING 图表适合一览 状态机 日志(READY → RUNNING → ERROR → IDLE)等非数值时序数据。同样的风格也适用于 查看标签值趋势 (tag-view)


5. EDGE 系统标签

EDGE_<...> 开头的一个虚拟 OPC 会自动显示在树中。这是将网关自身状态以 OPC-UA 节点形式暴露的系统标签集合。

代表性标签:

标签名称(Description)含义
THREAD_COUNTJava 线程数
TAG_COUNT已注册标签总数
SERVER_STARTED_TIMESTAMP服务器启动时刻(epoch ms)
OPC_CONNECTED_COUNT连接正常的 OPC 数量
HEAP_USED_MBJVM 堆使用量(MB)

EDGE 系统 OPC 的 连接状态 始终显示为 CONNECTED(因为是自身,不存在连接概念)。


6. 与外部客户端配合使用 — 流程

  1. 在本画面复制 TCP Endpoint(例:opc.tcp://<gateway>:12000)。
  2. 在 UaExpert / KEPServerEX 等 OPC-UA 客户端中添加新服务器 → 输入上述 URL。
  3. 认证模式:
    • 若已启用 Anonymous(顶部面板显示 允许 Anonymous),可直接接入。
    • 否则使用 Username / Password(Password 可在顶部面板点击后临时以明文查看)。
  4. 接入后即可直接订阅 NodeId 为 ns=2;s=... 格式的标签。

7. 故障排查

现象巡检要点
树中看不到 OPC确认 자주 하는 작업 → 새 PLC 연결 추가 是否已完成,以及网关是否已开启该 OPC 的 自动开始采集 选项
标签旁的值显示为 -该标签从未刷新过。请检查采集是否启动、OPC 连接、Quality
树中可见但外部客户端找不到 NodeId存在拼写错误或 OPC-UA 服务器未启用。请确认 app.propertiesopc.ua.server.tcp.enable=true
图表为空该标签在 Cassandra 中尚无 history(刚注册的标签)— 稍等片刻即会追加数据点
图表显示参差不齐将范围扩大到 24 小时 后会启用自动降采样,曲线更平滑
라이센스/CN 인증서 警告(TLS 端点)网关的自签名证书 — 请在客户端进行 "Trust" 处理。如需应用企业证书请咨询运维人员

8. 了解更多

  • Node-RED/ui/flow)— 通过流程对同一标签值进行加工/外发。参见 자주 하는 작업 → Node-RED 로 자동화 / IIoT 플로우
  • REST API — 可通过 HTTP 直接获取相同数据。参见 고급 / 통합 파트너용 → REST API
  • 驱动技术参考 → OPC-UA — 说明网关的 OPC-UA 客户端 侧(接入外部 OPC-UA 服务器获取数据的路径)。