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 シリーズのデバイス
OS互換性のある ARM64 Debian 系 Linux。テストでは Debian/Armbian を使用
ソフトウェアN3uron がインストール済みで、OpcUaClient モジュールを利用できること
ネットワーク公開 DataSim サーバーへの TCP ポート 4840 の送信接続と、ブラウザから RK デバイスの WebUI へのアクセス
クライアント PCRK デバイスに到達できるネットワーク上の、最新のブラウザを備えたコンピュータ

別の 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 を返します。デバイスの LAN IP アドレスを控えてください。N3uron サービスは active (running) と表示されるはずです。

サービスがインストール済みでも停止している場合は、次のコマンドで起動します。

bash
sudo systemctl start n3uron

N3uron が未インストールの場合は、先に N3uron のインストールを完了してください。

手順 2:N3uron WebUI を開く

クライアント PC のブラウザで次のアドレスを開きます。

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 を選択

スクリーンショットは選択を適用する前のタイプメニューです。ModbusServer のままにせず、強調表示された OpcUaClient を選択してください。モジュール名だけではタイプは決まりません。

保存したモジュールを 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 分岐の 4 つの変数を使用します。

OPC UA ノード説明
HUMIDITY相対湿度
POA_IRRADIANCE太陽光パネル面の日射強度
TEMPERATURE_2M高さ 2 m の気温
WIND_SPEED_10M高さ 10 m の風速
  1. OPC Browser で Objects → PVSIM → BLUELAKE → PVG001 → WST を展開します。
  2. HUMIDITY を Model パネルのルートフォルダ / にドラッグします。
  3. POA_IRRADIANCE、TEMPERATURE_2M、WIND_SPEED_10M にも同じ操作を行います。
  4. Model ツリーに 4 つのタグが表示されることを確認し、未保存の変更を保存します。
  5. タグのデータソース設定では、Source → Enabled が Yes で、ソースモジュールが OpcUaClient を参照していることを確認します。

N3uron Model にインポートされた 4 つの OPC UA 変数

手順 7:リアルタイム値を確認する

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

N3uron Realtime で品質 Good の 4 つのタグ

RK3576 での読み取り例は次のとおりです。

タグ値の例Quality
HUMIDITY約 71.82Good
POA_IRRADIANCE0Good
TEMPERATURE_2M13.96Good
WIND_SPEED_10M0.76Good

これらは読み取り例であり、固定の期待値ではありません。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 時間のデモセッションに制限される場合があります。

サービス状態と最近のログを確認します。

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 の値も確認してください。