メインコンテンツまでスキップ

フロー問題の解決

症状原因 / 解決
Deploy 後も変化なしノードの赤い点が残る = 保存されていない。再度 Deploy。またはキャッシュされた inject 結果を見ている — 新しい inject トリガーをクリック
タグ値の読み取りが常に nullタグ ID の誤記 / そのタグがゲートウェイに登録されていない / OPC 接続が切断。자주 하는 작업 → 실시간 값 보기 でまず確認
速すぎる inject でゲートウェイに負荷1秒未満のポーリングは推奨しない。本当に高速な更新が必要なら Sparkplug または MQTT 直接購読 を検討
Fresh オプションを有効にしたまま多数のタグを同時ポーリングPLC 同時 read が急増。通常はキャッシュ (default) で十分。診断時のみ fresh
Node-RED が突然停止無限ループ (ノード出力 → 同じノード入力) を疑う。Catch ノードを置くとデバッグが容易
外部インターネット呼び出しが失敗ゲートウェイのファイアウォール / DNS を点検。社内ネットワーク環境なら プロキシ 設定が必要
"Maximum call stack size exceeded"function ノードの無限再帰。return msg が自身を再度トリガーする構造を確認
Deploy 後にフローが全て消える/data1/pp-data/node-red/flows.json が破損。バックアップから復元が必要。node/bin/start.sh は master conf と自動同期するが 一度破損がディスクに定着すると 復旧が必要
MQTT メッセージが一度も届かないトピックのワイルドカード (#/+) の誤記。MQTT Explorer などの別ツールでトピックツリーを確認
OPC-UA BadIdentityTokenInvalidユーザー / パスワードまたは証明書が信頼されていない。サーバーコンソールでクライアント証明書を Trust 処理
OPC-UA BadTypeMismatchOpcUa-Item の DataType が実際のノードタイプと異なる

デバッグのヒント​

  1. debug ノードを 全 msg オブジェクト として設定し、どのフィールドが流れているか確認。
  2. Catch ノードを片側に置き、すべてのエラーを捕捉して debug へ送る — どのノードで停止したか即座に把握。
  3. Status ノード で mqtt/opcua ノードの 接続済み / 切断 の変化を捉えると、外部通信の問題診断が容易。
  4. inject の Inject once after deploy で "Deploy 時に一度実行" を作り、結果を debug で確認。
  5. function 内の node.warn(...) または node.error(...) で自由にサイドバーへ出力。

次のステップ​