Edge カテゴリ — ゲートウェイ専用ノード
パレットの 엣지 カテゴリで以下のノードを使用できます。
node-red-contrib-plantpulse-edge は image 内の node/conf/plantpulse-edge-nodes/ に配置され、
entrypoint が起動ごとに node_modules/node-red-contrib-plantpulse-edge へ絶対パスの symlink を作成します。
提供ノード: pp-tag-value-read / pp-tag-value-write / pp-tag-values-read / pp-tag-list /
pp-opc-get / pp-opc-start / pp-opc-stop (計7個)。image upgrade 時に自動更新されます。
1. タグ値の読み取り (pp-tag-read)
ゲートウェイの1つのタグ値を取得します。内部的には GET /api/v1/tag/{tagId}/value を呼び出します。
| フィールド | 説明 |
|---|---|
| 名前 | (任意) ノード名 |
| Tag ID | 読み取るタグ (例: TAG_TEST_00042)。空欄の場合は msg.tagId で動的に指定 |
| Fresh | チェック時は PLC から直接 read (キャッシュ回避)。?fresh=true と同じ。通常はオフにしてください (PLC 負荷) |
| Host / Port | ゲートウェイのアドレス (デフォルト 127.0.0.1:80 — 同一マシンならそのまま) |
入力 (任意):
msg.tagId— ノード設定の Tag ID を動的に上書き (1つのノードを複数のタグに再利用)msg.fresh— boolean、キャッシュ回避を動的に指定
出力:
msg.payload = {
tag_id: "TAG_TEST_00042",
value: "1234",
value_time: "2026-05-08 03:01:19.001",
value_read_status: "OK",
...
}
msg.statusCode = 200
msg.tagId = "TAG_TEST_00042" // 실제 사용된 ID
ノード設定の Tag ID は 空欄にしておき、change ノードで msg.tagId = "TAG_..." を設定する方式が最も柔軟です。同じ 読み取り ノードを複数のタグに再利用できます。
2. タグ値の書き込み (pp-tag-write)
ゲートウェイの1つのタグに値を書き込みます。内部的には POST /api/v1/tag/{tagId}/value。
| フィールド | 説明 |
|---|---|
| 名前 | (任意) |
| Tag ID | 書き込むタグ。msg.tagId で動的に指定可能 |
| Value | 固定値 (任意)。msg.value → msg.payload → ノードの Value の順で優先適用 |
| Host / Port | ゲートウェイのアドレス |
出力:
msg.payload = {
result: "SUCCESS", // 또는 "ERROR"
opc_id: "OPC_LS_TEST",
plc_address: "D1000",
value: "9999", // 사용자가 보낸 값
actual_read: "9999", // 드라이버가 write 후 즉시 read 한 결과
msg: ""
}
msg.statusCode = 200
対応プロトコル: HTTP / OPC-UA / Modbus TCP / MELSEC / S7 / LS XGT(XGI/XBC/XBM) / AB EtherNet/IP すべて可能。EIP は PLC のファームウェア/パッチによって一部データ型の write が拒否される場合があるため、シミュレータで検証してから実設備に適用してください。
実際の PLC に値を書き込むと設備が動作する可能性があります。テスト用タグ または シミュレータ OPC で十分に検証したうえで実設備のタグに適用してください。write 権限は運用チームと合意されたタグにのみ使用します。
3. 次のステップ
- MQTT ノードの詳細 — 外部 SCADA / クラウド IoT 連携
- IIoT サンプル集 — read/write を組み合わせた実践パターン