フロー (Node-RED) を始める
/ui/flow メニューを通じて、ゲートウェイに内蔵された Node-RED 環境に接続できます。
Node-RED はブロック(ノード)をドラッグ&ドロップで接続してデータフローを作成するローコードツールです。ゲートウェイのタグ値を読み書きし、MQTT/HTTP で外部システムと連携し、アラーム・ロギング・計算などの自動化を構築できます。
Node-RED 4.1.10 + Node.js 20 (すべてimage内にグローバルインストール)。コンテナの初回起動時に userDir.seed
(node_modules + PlantPulse Edge / node-red-contrib-opcua ノード) が
/data1/pp-data/node-userdir/ に自動コピーされます (2回目以降の起動からユーザーフローを保存)。
image upgrade 後もユーザーフローは維持されます。フロータブは空になっています — 例題フローはイメージに入れず、ドキュメントから読み込みます(インポート用例題フロー)。
PlantPulse 専用ノード (pp-tag-value-read / pp-tag-value-write / pp-opc-* / pp-tag-list)
は image の node/conf/plantpulse-edge-nodes/ を絶対パスの symlink で接続 — entrypoint が毎起動時に保証 (相対パスだった旧 native の symlink がコンテナで壊れる問題を事前に遮断)。
자주 하는 작업 → 새 PLC 연결 추가 / 태그 등록 まで完了し、1つ以上のタグがリアルタイムで収集されている状態で始めてください。Node-RED はそのタグ値を入力として使用します。
1. 接続
ブラウザでゲートウェイに接続した後、左側メニューの フロー (Node-RED) または直接 http://<gateway>/ui/flow へ移動します。
2. 画面構成

| 番号 | 領域 | 説明 |
|---|---|---|
| ① | 左側 パレット | 使用可能なノード一覧。カテゴリ別にまとめられており、PlantPulse Edge カテゴリにゲートウェイ専用ノード(pp-tag-value-read · pp-tag-value-write · pp-opc-* · pp-tag-list)が含まれています |
| ② | フロータブ | フローを複数枚に分けて管理します。+ で新しいタブを作成します |
| ③ | 中央 ワークスペース | ノードを配置し、ワイヤーで接続します |
| ④ | 右側 サイドバー | info は選択したノードのヘルプ、debug は debug ノードの出力ログを表示します |
| ⑤ | 右上 Deploy | クリックすることでゲートウェイに変更が反映されます |
3. 基本操作 — 覚えておくと便利なショートカット
| 動作 | 方法 |
|---|---|
| ノード追加 | パレットからワークスペースへドラッグ |
| ノード設定 | ノードをダブルクリック → 右側パネルで編集 → Done |
| ノード接続(ワイヤー) | ノードの出力点(右側) をドラッグして他のノードの入力点(左側) に置く |
| ワイヤー切断 | ワイヤーをクリックして選択後 Delete |
| 多重選択 | Shift ドラッグで領域選択、または Ctrl/Cmd + 클릭 で追加選択 |
| コピー / 貼り付け | Ctrl/Cmd + C / Ctrl/Cmd + V |
| 検索 | Ctrl/Cmd + F — パレットでノード名を検索 |
| フローインポート | メニュー → インポート → JSONを貼り付け (インポート用例題フロー をそのままインポート可能) |
ノードを追加/削除/修正しても、Deploy を押すまでゲートウェイはその変更を認識しません。赤い点 (●) が表示されているノードは「保存されていない変更がある」ことを意味します。
4. メッセージ(msg) の基本構造
ノード間を流れるデータは常に msg という JavaScript オブジェクトです。最も頻繁に使用されるフィールドは以下の通りです。
| フィールド | 意味 |
|---|---|
msg.payload | ボディ(主要データ)。数値/文字列/オブジェクト/バッファすべて可能 |
msg.topic | トピック(分類ラベル)。MQTT/Switch/Join などで頻繁に使用 |
msg.timestamp | タイムスタンプ (必要に応じて直接設定) |
msg._msgid | Node-RED が自動的に付与する固有ID — 追跡用 |
ほとんどのノードは msg.payload のみを使用して動作します。
5. エッジノード — 概要 (ゲートウェイ専用)
パレット左側の PlantPulse Edge カテゴリにある、ゲートウェイが独自に登録したノード(全7種)のうち、入出力の中心となる2つを先に確認します。ほぼすべての IIoT フローの 入力/出力 となります。
| アイコン | ノード | 英語名 | 動作 | 呼び出す REST |
|---|---|---|---|---|
| ⬇ | タグ値読み取り (pp-tag-read) | read tag value | タグの 現在値 を取得 (キャッシュまたは PLC 直接読み取り) | GET /api/v1/tag/{tagId}/value |
| ⬆ | タグ値書き込み (pp-tag-write) | write tag value | タグに 値を書き込む (PLC に即時反映) | POST /api/v1/tag/{tagId}/value |
inject (1s) ──▶ 태그값 읽기 ──▶ 처리 (function/switch/...) ──▶ 태그값 쓰기 / mqtt out / debug / file ...
ノードの探し方 — パレット検索窓に read tag または PlantPulse と入力 → 該当ノードのみをフィルタリング。淡いパステルブルーの色をしています。
| ノード設定で空欄にすることが多い項目 | 動的に設定する方法 |
|---|---|
| Tag ID | フローの中で msg.tag_id = 'TAG_...' により動的に指定 (1つのノードを複数のタグで再利用) |
| Value (書き込みノード) | msg.value または msg.payload によりフローの中で設定 |
実設備に直接書き込みを適用する前に、外部シミュレーターまたは テストタグ で十分な検証を行ってください。書き込み権限は運用チームと合意したタグのみに制限してください。
詳細なフィールド / 入出力 / 全プロトコル対応表 → エッジカテゴリ (タグ読み取り/書き込み)
6. 最初のフロー — Hello World
目標: 5秒ごとに1つのタグを読み取って Debug サイドバーに出力する。
- パレットから
injectノードをドラッグ → ダブルクリック →Repeat: intervalevery 5 seconds→ Done - PlantPulse Edge → タグ値読み取り ノードをドラッグ → Tag ID に実際のタグ (例:
TAG_TEST_00042) を入力 → Done - パレットから
debugノードをドラッグ - 3つのノードを
inject → 태그값 읽기 → debugの順にワイヤーで接続 - 右上の Deploy をクリック
- 右側サイドバーの debug タブを開き、5秒ごとに値が表示されるか確認
このパターン(周期トリガー → 読み取り → 処理) が、すべての IIoT フローの基本形式です。
7. 次のステップ
左側メニューの順に確認してください。
- 基本ノード使用法 — IIoT でよく使う14個のノード機能
- エッジノード (タグ読み取り/書き込み) — ゲートウェイ専用ノード (上記5節の概要の詳説版)
- MQTT ノード詳細 — Broker 設定 / Pub / Sub / LWT / Birth
- OPC-UA ノード詳細 — Endpoint / Item / Client / Subscribe / Browse
- Sparkplug B ノード詳細 — Group / Edge / Birth-Death / 送受信
- IIoT 例題集 — 現場でよく構築する12種類のパターン
- インポート用例題フロー — 貼り付けてすぐに動作する完成済みフロー 6種
- フロー問題解決 — よく陥る罠と解決策
8. さらに詳しく
- OPC UA サーバー (
/ui/opcua) で、現在のゲートウェイが保持しているすべてのタグ/値/ノードID を一括確認できます。 → OPC UA サーバーを使用する - REST API 自体は
고급 / 통합 파트너용 → REST API챕터で説明しています。Node-RED のpp-tag-read/pp-tag-writeは、その API の薄いラッパーです。 - Node-RED 公式マニュアル:
<https://nodered.org/docs/>