N3uron で OPC UA データを収集する
最終更新:
はじめに
本チュートリアルは N3uron のインストールの続編です。reComputer RK シリーズのデバイス上の OpcUaClient モジュールを使って N3uron の公開 DataSim サーバーに接続し、模擬太陽光発電所の変数をタグ(Tag)としてインポートして WebUI で値を確認します。追加の PLC やセンサは不要です。
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 シリーズのデバイス |
| OS | 互換性のある ARM64 Debian 系 Linux。テストでは Debian/Armbian を使用 |
| ソフトウェア | N3uron がインストール済みで、OpcUaClient モジュールを利用できること |
| ネットワーク | 公開 DataSim サーバーへの TCP ポート 4840 の送信接続と、ブラウザから RK デバイスの WebUI へのアクセス |
| クライアント PC | RK デバイスに到達できるネットワーク上の、最新のブラウザを備えたコンピュータ |
別の RK モデルを使用する場合は、インストールチュートリアルに従って Linux のアーキテクチャと N3uron の要件を確認してから進めてください。
手順 1:デバイスと N3uron サービスを確認する
RK デバイスのターミナルまたは SSH セッションで次のコマンドを実行します。
cat /etc/os-release
uname -m
hostname -I
sudo systemctl status n3uron --no-pagerARM64 Linux では、通常 uname -m が aarch64 を返します。デバイスの LAN IP アドレスを控えてください。N3uron サービスは active (running) と表示されるはずです。
サービスがインストール済みでも停止している場合は、次のコマンドで起動します。
sudo systemctl start n3uronN3uron が未インストールの場合は、先に N3uron のインストールを完了してください。
手順 2:N3uron WebUI を開く
クライアント PC のブラウザで次のアドレスを開きます。
http://<RK_DEVICE_IP>:8003<RK_DEVICE_IP> を RK デバイスの IP アドレスに置き換えます。HTTPS を設定した場合、既定の HTTPS ポートは 8443 です。
インストール時に設定した管理者アカウントでログインします。ナビゲーションパネルには Data、System、User があります。
手順 3:OPC UA Client モジュールを作成する
- System → Config → Modules に移動します。
- Modules メニューを開き、New Module を選択します。
- 名前を
OpcUaClientに設定します。 - Module type を
OpcUaClientに設定し、Save をクリックします。

スクリーンショットは選択を適用する前のタイプメニューです。ModbusServer のままにせず、強調表示された OpcUaClient を選択してください。モジュール名だけではタイプは決まりません。
保存したモジュールを Explorer で展開します。Certificates、OPC Browser、Logger が表示されるはずです。
手順 4:DataSim クライアントを設定する
OpcUaClient を選択し、Model パネルのメニューを開いて New Client を選びます。クライアント名を DataSim にします。

次の接続設定を行います。公開エンドポイントとデモアカウントは Seeed の N3uron の例にも記載されています。
| 設定項目 | 値 |
|---|---|
| Client name | DataSim |
| Enable data collection | Yes |
| Endpoint URL | opc.tcp://datasim.n3uron.com:4840 |
| Discovery URL(設定する場合) | opc.tcp://datasim.n3uron.com:4840 |
| Security mode | None |
| Security policy | None / None (Insecure) |
| Authentication → Enabled | Yes |
| Authentication → User | sunn3rgy |
| Authentication → Password | n3uron |

Save をクリックし、モジュールが接続するのを待ちます。サーバーの Discovery URL と Endpoint URL が同じ場合は、両方の欄に同じエンドポイントアドレスを入力します。N3uron のクライアント設定ドキュメントを参照してください。
手順 5:OPC UA ノードを参照する
System → Config → Modules → OpcUaClient を展開し、OPC Browser を選択します。Client ドロップダウンリストで DataSim を選びます。

必要に応じて Rebrowse をクリックします。参照に成功すると、サーバーの最上位ノードが表示されます。

次のパスを展開します。
Objects
└── PVSIM
└── BLUELAKE
└── PVG001
└── WST
├── HEIGHT_SUN
├── HUMIDITY
├── POA_IRRADIANCE
├── PRESSURE
├── TEMPERATURE_2M
└── WIND_SPEED_10Mサーバーには予測変数や別の分岐も表示されることがあります。アカウント名 sunn3rgy がフォルダ名になっているとは限りません。現在表示されているノードツリーに従ってください。
手順 6:変数をタグとしてインポートする
WST 分岐の 4 つの変数を使用します。
| OPC UA ノード | 説明 |
|---|---|
HUMIDITY | 相対湿度 |
POA_IRRADIANCE | 太陽光パネル面の日射強度 |
TEMPERATURE_2M | 高さ 2 m の気温 |
WIND_SPEED_10M | 高さ 10 m の風速 |
- OPC Browser で
Objects → PVSIM → BLUELAKE → PVG001 → WSTを展開します。 HUMIDITYを Model パネルのルートフォルダ/にドラッグします。POA_IRRADIANCE、TEMPERATURE_2M、WIND_SPEED_10Mにも同じ操作を行います。- Model ツリーに 4 つのタグが表示されることを確認し、未保存の変更を保存します。
- タグのデータソース設定では、Source → Enabled が
Yesで、ソースモジュールがOpcUaClientを参照していることを確認します。

手順 7:リアルタイム値を確認する
ナビゲーションパネルで Data → Realtime に移動します。一部のバージョンでは Real Time と表示されます。Tag groups で / を選択すると、4 つのタグの Value、Quality、Timestamp などを確認できます。

RK3576 での読み取り例は次のとおりです。
| タグ | 値の例 | Quality |
|---|---|---|
HUMIDITY | 約 71.82 | Good |
POA_IRRADIANCE | 0 | Good |
TEMPERATURE_2M | 13.96 | Good |
WIND_SPEED_10M | 0.76 | Good |
これらは読み取り例であり、固定の期待値ではありません。Good は表示時刻の読み取り値が使用可能であることを示します。変化する変数の値とタイムスタンプを複数回の更新にわたって観察し、更新を確認してください。値が 0 であることだけでは接続の問題とは判断できません。
これで 4 つのタグを N3uron での追加処理、MQTT 配信、WebVision ダッシュボードに利用できます。
トラブルシューティング
| 症状 | 確認事項 |
|---|---|
OPC Browser が表示されない | Explorer で OpcUaClient を展開し、Module type が OpcUaClient であることを確認します。 |
Channel、Modbus TCP、ポート 502 が表示される | モジュールタイプが誤っている可能性があります。ModbusServer ではなく OpcUaClient モジュールを作成してください。 |
| DataSim に接続できない | エンドポイント、デモ認証情報、DNS、インターネット接続、TCP ポート 4840 の送信接続を確認します。 |
SUNN3RGY フォルダがない | PVSIM → BLUELAKE → PVG001 → WST を参照してください。ノードツリーは古い例と異なる場合があります。 |
| タグにデータが表示されない | Source Enabled、OPC UA Node ID、クライアント診断、Quality を確認します。 |
| 値が変化しない | Timestamp とシミュレータの更新動作を確認します。 |
| しばらくすると収集が停止する | モジュールのライセンス状態を確認します。未ライセンスのモジュールは 2 時間のデモセッションに制限される場合があります。 |
サービス状態と最近のログを確認します。
sudo systemctl status n3uron --no-pager
sudo journalctl -u n3uron -n 80 --no-pagerTCP 接続を確認するには、次を実行します。
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)
PYTCP 接続の成功だけでは OPC UA 認証の成功は確認できません。クライアント診断と Data → Realtime の値も確認してください。