使用 N3uron 采集 OPC UA 数据

最近更新:

介绍

本教程接续安装 N3uron,使用 reComputer RK 系列设备上的 OpcUaClient 模块连接 N3uron 公共 DataSim 服务器,将模拟光伏站点的变量导入为标签(Tag),并在 WebUI 中查看数据,无需额外连接 PLC 或传感器。

text
N3uron DataSim OPC UA Server
opc.tcp://datasim.n3uron.com:4840
             |
             | OPC UA over TCP
             v
reComputer RK Series (N3uron)
     OpcUaClient / DataSim
             |
             v
       N3uron Tags
             |
             v
     Data -> Realtime

准备工作

项目要求
硬件一台 reComputer RK 系列设备
操作系统兼容的 ARM64 Debian 系 Linux,测试使用 Debian/Armbian
软件已安装 N3uron,并可使用 OpcUaClient 模块
网络可通过 TCP 4840 端口访问公共 DataSim 服务器,浏览器可访问 RK 设备 WebUI
客户端电脑运行现代浏览器,并与 RK 设备网络互通

其他 RK 型号请先按照安装教程确认 Linux 架构与 N3uron 的系统要求。

步骤 1:检查设备与 N3uron 服务

在 RK 设备的终端或 SSH 会话中执行:

bash
cat /etc/os-release
uname -m
hostname -I
sudo systemctl status n3uron --no-pager

ARM64 Linux 的 uname -m 通常输出 aarch64。记录设备的局域网 IP 地址,N3uron 服务应显示 active (running)。

如果服务已安装但尚未运行,执行:

bash
sudo systemctl start n3uron

如果还没有安装 N3uron,请先完成安装 N3uron。

步骤 2:打开 N3uron WebUI

在客户端电脑的浏览器中打开:

text
http://<RK_DEVICE_IP>:8003

将 <RK_DEVICE_IP> 替换为 RK 设备的实际 IP 地址。配置 HTTPS 后,默认 HTTPS 端口为 8443。

使用安装时配置的管理员账户登录。左侧导航栏包含 Data、System 和 User。

步骤 3:创建 OPC UA Client 模块

  1. 进入 System → Config → Modules。
  2. 打开 Modules 菜单,选择 New Module。
  3. 将名称设为 OpcUaClient。
  4. 将 Module type 设为 OpcUaClient,然后点击 Save。

将模块类型选择为 OpcUaClient

截图显示的是应用选择前的类型菜单,请选择红框中的 OpcUaClient,不要保留为 ModbusServer。仅修改模块名称不会改变模块类型。

保存后,在 Explorer 中展开模块,应能看到 Certificates、OPC Browser 和 Logger。

步骤 4:配置 DataSim 客户端

选择 OpcUaClient,打开 Model 面板菜单,点击 New Client,将客户端命名为 DataSim。

新建 OPC UA 客户端

按下表配置连接。公共服务器地址和演示账户也可参考 Seeed N3uron 示例。

配置项值
Client nameDataSim
Enable data collectionYes
Endpoint URLopc.tcp://datasim.n3uron.com:4840
Discovery URL,如需配置opc.tcp://datasim.n3uron.com:4840
Security modeNone
Security policyNone / None (Insecure)
Authentication → EnabledYes
Authentication → Usersunn3rgy
Authentication → Passwordn3uron

DataSim 地址、安全模式与认证参数

点击 Save,等待模块建立连接。如果服务器的 Discovery URL 与 Endpoint URL 相同,可在两个字段中填写相同地址,详见 N3uron 客户端配置文档。

步骤 5:浏览 OPC UA 节点

展开 System → Config → Modules → OpcUaClient,点击 OPC Browser,在 Client 下拉列表中选择 DataSim。

在 OPC Browser 中选择 DataSim

如有需要,点击 Rebrowse。浏览成功后,界面会显示服务器的顶层节点。

OPC Browser 中的 DataSim 地址空间

依次展开以下路径:

text
Objects
└── PVSIM
    └── BLUELAKE
        └── PVG001
            └── WST
                ├── HEIGHT_SUN
                ├── HUMIDITY
                ├── POA_IRRADIANCE
                ├── PRESSURE
                ├── TEMPERATURE_2M
                └── WIND_SPEED_10M

服务器还可能提供预测变量和其他分支。账户名 sunn3rgy 不一定对应一个文件夹,请以当前浏览到的节点树为准。

步骤 6:将变量导入为标签

本例使用 WST 分支下的四个变量:

OPC UA 节点含义
HUMIDITY相对湿度
POA_IRRADIANCE光伏阵列平面太阳辐照度
TEMPERATURE_2M2 m 高度的环境温度
WIND_SPEED_10M10 m 高度的风速
  1. 在 OPC Browser 中展开 Objects → PVSIM → BLUELAKE → PVG001 → WST。
  2. 将 HUMIDITY 拖入 Model 面板的根目录 /。
  3. 同样导入 POA_IRRADIANCE、TEMPERATURE_2M 和 WIND_SPEED_10M。
  4. 确认 Model 树中出现四个标签;如有待保存的更改,点击保存。
  5. 查看标签的数据源设置时,Source → Enabled 应为 Yes,数据源模块应指向 OpcUaClient。

四个 OPC UA 变量已导入 N3uron Model

步骤 7:查看实时数据

在左侧导航栏进入 Data → Realtime,部分版本显示为 Real Time。在 Tag groups 中选择 /,即可查看四个标签的 Value、Quality 和 Timestamp。

N3uron Realtime 中四个标签的数据质量均为 Good

RK3576 上的示例读数如下:

标签示例数值Quality
HUMIDITY约 71.82Good
POA_IRRADIANCE0Good
TEMPERATURE_2M13.96Good
WIND_SPEED_10M0.76Good

这些是示例读数,并非固定预期值。Good 表示所示时间对应的读数可用。可连续观察会变化的变量及其时间戳,确认数据更新。单个数值为 0 并不代表连接异常。

至此,四个标签已可在 N3uron 中用于后续数据处理、MQTT 发布或 WebVision 仪表盘。

常见问题

现象检查方法
看不到 OPC Browser在 Explorer 中展开 OpcUaClient,确认 Module type 为 OpcUaClient。
配置界面显示 Channel、Modbus TCP 或端口 502模块类型可能选错,应创建 OpcUaClient,而非 ModbusServer。
DataSim 无法连接检查服务器地址、演示账户、DNS、互联网连接及 TCP 4840 出站访问。
节点树中没有 SUNN3RGY 文件夹展开 PVSIM → BLUELAKE → PVG001 → WST,节点结构可能与旧版示例不同。
标签没有数值检查 Source Enabled、OPC UA Node ID、客户端诊断及 Quality。
数值没有变化检查 Timestamp 和模拟服务器的更新行为。
采集运行一段时间后停止检查模块许可证状态;未授权模块可能受到两小时演示会话限制。

查看服务状态和近期日志:

bash
sudo systemctl status n3uron --no-pager
sudo journalctl -u n3uron -n 80 --no-pager

检查 TCP 连通性:

bash
python3 - <<'PY'
import socket
host, port = 'datasim.n3uron.com', 4840
try:
    with socket.create_connection((host, port), timeout=8):
        print('TCP 4840 reachable')
except Exception as exc:
    print('Connection failed:', exc)
PY

TCP 连接成功不等于 OPC UA 身份认证成功,还需要结合客户端诊断与 Data → Realtime 中的数值确认。