跳到主要内容

Node-RED 调试

本指南为 OV80i 摄像机系统中的 Node-RED 问题提供全面的故障排除流程。可用于现场检修、调试生产问题,以及对检测流程的预防性维护。

注意

安全第一: 在修改活动检测系统前,请始终通知生产并在修改流程前创建备份。

紧急快速修复流程

关键系统宕机 - 立即行动

步骤操作时长结果
1检查摄像头电源 LED 状态30 秒确认硬件正常
2访问 OV80i Node-RED: http://camera-ip/recipes/<recipe-number>/ioblock1 分钟确认编辑器可访问
3查找红色三角形错误指示1 分钟确认故障节点
4点击 Deploy 按钮(Full Deploy)30 秒重置所有流程
5测试基本检测触发2 分钟验证系统是否正常运行

系统恢复(若编辑器无法加载)

OV80i 摄像机没有安全模式——重启是首要的恢复方法:

  1. 对摄像头进行电源循环(断电 10 秒后再通电)
  2. 等待完整启动(所有 4 个 LED 指示灯稳定,大约 2–3 分钟)
  3. 通过配方特定的 URL 访问活动配方的 Node-RED
  4. 验证流程完整性,并进行必要的修复
  5. 部署更改 以恢复正常运行
备注

URL 格式: http://<camera-ip>/recipes/<recipe-number>/ioblock

示例:

  • http://192.168.0.101/recipes/20/ioblock
  • http://192.168.0.105/recipes/1/ioblock

系统化调试流程

步骤 1:确定问题范围

快速评估问题

问题若为是若为否
是否能访问 OV80i Node-RED 界面?继续执行步骤 2检查网络/摄像头状态
在编辑器中能看到流程吗?继续执行步骤 2对摄像头断电并重试
节点上是否有错误三角形?先关注这些节点检查流程执行
检测是否已触发?检查各节点输出验证触发输入
备注

访问 URL: 使用配方特定的 URL 格式:http://<camera-ip>/recipes/<recipe-number>/ioblock

步骤 2:启用调试监控

添加调试节点以进行故障排除

  1. 在问题流程的关键点放置 Debug 节点:
    • 触发输入之后
    • 逻辑节点之前和之后
    • 最终输出处
  2. 为获得最大信息量配置 Debug 节点:
    • 输出(Output): 完整的消息对象
    • 目标(To): 调试侧边栏
    • 名称(Name): 描述性名称(如 "After Classification Logic")
  3. 通过在编辑器中单击按钮启用所有 Debug 节点

调试侧边栏管理

访问调试侧边栏:

  • 点击右侧面板中的 Debug 选项卡(小虫图标)
  • 使用垃圾桶图标 清除旧消息
  • 如果活动节点过多,筛选消息

调试消息解释:

  • 时间戳(Timestamp) 显示消息发生的时间
  • 节点名称(Node name) 显示生成消息的节点
  • 消息内容(Message content) 显示数据结构和值

步骤 3:追踪流程执行

跟踪消息路径

  1. 从触发源开始(注入、定时器、外部输入)
  2. 验证每个节点接收预期输入
  3. 检查每一步的消息转换
  4. 确定流程在哪一步停止或产生错误输出

常见流程中断点

节点类型常见问题快速检查
分类逻辑未达到置信阈值检查 ROI 对齐,重新训练模型
Switch 节点错误的条件逻辑验证开关规则和消息属性
Join 节点等待不完整的消息集检查消息部分数量
Function 节点JavaScript 错误在浏览器控制台中检查错误
HTTP 请求网络连接性手动测试端点

Node-RED 常见问题与解决方案

流执行问题

问题:流程未触发

症状:

  • 调试侧边栏中没有消息
  • 系统似乎处于待机状态
  • 外部触发不起作用

诊断步骤:

  1. 检查触发源: 手动注入、定时器、外部输入
  2. 验证连线: 确保节点之间的连接正确
  3. 测试手动触发: 使用 Inject 节点强制启动流程

解决方案:

原因解决方案预防措施
禁用的流程点击 Deploy → 完整部署改动后定期部署
连接断开正确重新连线节点编辑时进行可视检查
定时配置错误检查 Inject 节点的定时设置记录定时要求
外部触发失败验证 I/O 线缆和信号定期进行 I/O 测试

问题:流程在运行但结果错误

症状:

  • 消息传递但分类不正确
  • 通过/失败逻辑不能正确工作
  • 结果不一致

诊断过程:

  1. 在可疑节点前后添加 Debug 节点
  2. 比较期望与实际的消息内容
  3. 检查节点配置是否正确参数

解决方案:

问题领域检查点修复
分类逻辑ROI 对齐、模型训练重新训练或调整 ROI
Switch 条件属性名称和值纠正开关逻辑
消息属性数据类型和格式使用 Change 节点修复格式
上下文变量存储的值与作用域清除/重置上下文存储

性能问题

问题:流执行缓慢

症状:

  • 触发与输出之间的延迟
  • 检查超时
  • 系统滞后

性能诊断:

  1. 检查 Debug 时间戳 以识别慢节点
  2. 监控摄像系统的 CPU 使用率
  3. 统计活动 Debug 节点数量(禁用未使用的节点)

优化措施:

性能问题解决方案预期改进
过多的 Debug 节点禁用/删除未使用的 Debug 节点提升 10-20% 的速度
复杂的 Function 节点优化 JavaScript 代码改进幅度可变
高频触发添加延迟/速率限制防止系统过载
大型消息对象减小消息有效负载大小处理速度更快

维护程序

每日健康检查

可视化流程检查(5 分钟)

  1. 访问 Node-RED 编辑器
  2. 检查错误指示标志(红色三角形)
  3. 验证 flow 连接是否完好
  4. 查看最近的 Debug 信息以发现异常

Flow 执行测试(10 分钟)

  1. 使用 Inject 节点进行手动触发测试
  2. 在 Debug 侧边栏中验证预期输出
  3. 用已知良品/不良品测试通过/失败逻辑
  4. 确认外部通信(PLC、数据库)

每月维护任务

性能评估(15 分钟)

流程优化清单:

任务操作备注
调试节点清理禁用未使用的 Debug 节点仅保留必要的调试
上下文存储审查清除不必要的存储值防止内存积累
错误日志检查检查浏览器控制台中的错误记录经常性问题
备份创建将 flows 导出为备份文件以日期/版本信息存放

配置验证(20 分钟)

  1. 将当前 flows 与文档标准进行比较
  2. 验证所有关键路径是否具备适当的错误处理
  3. 测试错误恢复情景
  4. 更新变更的文档

每月深度维护

全面流程分析(45 分钟)

性能指标收集:

  • 流程执行时间
  • 错误频率分析
  • 资源使用模式
  • 通信可靠性

流程结构审查:

  • 消除冗余节点
  • 合并重复逻辑
  • 更新弃用的配置
  • 优化复杂的 Function 节点

备份与恢复测试(30 分钟)

  1. 创建完整的流程导出
  2. 在备份系统上测试导入过程
  3. 验证备份恢复是否保持功能
  4. 记录恢复步骤

诊断工具与技术

内置 Node-RED 工具

调试侧边栏功能

功能使用场景访问方式
消息过滤专注于特定节点侧边栏中的筛选按钮
消息历史查看最近 100 条消息在 Debug 侧边栏滚动
节点定位查找调试消息的来源在消息中单击节点名称
消息导出保存诊断数据复制消息内容

上下文数据浏览器

访问上下文存储:

  • 打开 OV80i Node-RED 界面 (http://<camera-ip>/recipes/<recipe-number>/ioblock)
  • 转到右侧边栏的 Context Data 标签
  • 查看节点/流程/全局上下文值

上下文调试:

  • 节点上下文: 检查单个节点状态
  • 流程上下文: 验证共享流程变量
  • 全局上下文: 查看系统范围设置

网络通信测试

HTTP 请求校验:

  1. 使用外部工具(Postman、curl)测试端点
  2. 验证响应格式是否与预期数据匹配
  3. 测试错误条件(超时、无效响应)

PLC 通信验证:

  1. 使用 PLC 编程软件验证连通性
  2. 独立测试数据寄存器访问
  3. 校验数据格式转换

紧急恢复程序

流程损坏恢复

损坏症状:

  • OV80i Node-RED 界面无法加载流程
  • 摄像头重启后流程显示为空
  • 部署持续失败

恢复步骤:

  1. 对 OV80i 摄像头进行断电再通电(电源循环):
    • 断开电源 10 秒
    • 等待完全启动(所有 4 个 LED 指示灯稳定)
  2. 访问配方的 Node-RED 界面:
    • 前往 http://<camera-ip>/recipes/<recipe-number>/ioblock
    • 如果流程损坏,请从备份导入
  3. 从备份进行还原:
    • 使用 OV80i 的 recipe 导入功能
    • 导入最近的备份文件
    • 验证所有连接是否完好
  4. 验证还原结果:
    • 测试所有关键流程
    • 验证外部通信
    • 更新任何配置变更

系统资源问题

内存/CPU 资源超载

即时措施:

  1. 在 OV80i Node-RED 中禁用非必要的 Debug 节点
  2. 移除高频率定时触发器
  3. 简化复杂的 Function 节点
  4. 对 OV80i 摄像头进行断电再通电以重新启动所有服务

长期解决方案:

  • 针对 OV80i 硬件优化流程设计
  • 实现速率限制
  • 减少消息有效载荷大小
  • 安排维护窗口

故障排除清单

维护前清单

  • 通知生产线关于维护窗口
  • 创建当前流程备份
  • 记录当前系统状态
  • 准备回滚程序
  • 测试备份恢复过程

维护后验证

  • 所有流程均已成功部署
  • 手动触发测试通过
  • 外部通信已验证
  • 错误指示已清除
  • 性能在可接受范围内
  • 文档已更新

紧急响应清单

  • 系统影响已评估
  • 生产部门已通知
  • 已尝试快速修复
  • 如有需要,执行备份恢复
  • 已定位根本原因
  • 已实施预防措施

文档与日志

维护记录

所需文档:

  • 维护日期/时间
  • 已识别并解决的问题
  • 所做的配置变更
  • 实现的性能改进
  • 未来建议

🔗 参见下列内容


提示

请在调试会话期间记录所做的所有更改。这有助于将来排查问题,并为团队建立知识库。