跳到主要内容

流程问题排查

症状原因/解决方法
Deploy 后仍无变化节点上的红点残留 = 未保存。重新部署。或正在查看缓存的 inject 结果——请点击新的 inject 触发器
标签值读取始终为 null标签 ID 拼写错误 / 该标签未在网关中注册 / OPC 连接断开。请先在 자주 하는 작업 → 실시간 값 보기 中确认
inject 过于频繁导致网关负载过高不建议使用低于 1 秒的轮询。如果确实需要快速刷新,请考虑 Sparkplug 或 MQTT 直接订阅
在 Fresh 选项开启的情况下同时轮询多个标签PLC 并发读取过多。通常使用缓存(默认)即可。仅在诊断时使用 fresh
Node-RED 突然停止怀疑存在死循环(节点输出 → 同一节点输入)。放置 Catch 节点可简化调试
外部互联网调用失败检查网关防火墙/DNS。内网环境下需设置 代理
“Maximum call stack size exceeded”function 节点发生无限递归。检查 return msg 是否触发了自身
部署后流程全部消失/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 的 部署后仅注入一次 实现“部署时执行一次”,并通过 debug 查看结果。
  5. 使用 function 中的 node.warn(...) 或 node.error(...) 自由地输出到侧边栏。

下一步​