AI 驱动文档
您想了解什么?
调试 Node-RED
本指南为 OV10i 相机系统的 Node-RED 问题提供全面的故障排除步骤。适用于现场维修、生产问题调试以及检查流程的预防性维护。
注意
安全第一: 在对正在运行的检查系统进行更改前,请务必通知生产部门。修改流程前请先创建备份。
紧急快速修复步骤
关键系统宕机 - 立即采取的措施
| 步骤 | 操作 | 时间 | 结果 |
|---|---|---|---|
| 1 | 检查相机电源 LED 状态 | 30 秒 | 验证硬件正常 |
| 2 | 访问 OV10i Node-RED:http://camera-ip/recipes/<recipe-number>/ioblock | 1 分钟 | 确认编辑器可访问 |
| 3 | 查找红色三角形错误指示 | 1 分钟 | 识别故障节点 |
| 4 | 点击 Deploy 按钮(完整部署) | 30 秒 | 重置所有流程 |
| 5 | 测试基本检查触发 | 2 分钟 | 验证系统正常运行 |
系统恢复(如果编辑器无法加载)
OV10i 相机没有安全模式 - 重启是主要的恢复方法:
- 重启相机电源(拔掉电源线 10 秒)
- 等待完全启动(所有 4 个 LED 稳定 - 需 2-3 分钟)
- 通过程序专用 URL 访问活动程序的 Node-RED
- 验证流程完整性并进行必要的修复
- 部署更改以恢复正常运行
备注
URL 格式: http://<camera-ip>/recipes/<recipe-number>/ioblock
示例:
http://192.168.0.101/recipes/20/ioblockhttp://192.168.0.105/recipes/1/ioblock
系统化调试流程
第一步:确定问题范围
快速评估问题
| 问题 | 如果是 | 如果否 |
|---|---|---|
| 是否可以访问 OV10i Node-RED 界面? | 继续第二步 | 检查网络/相机状态 |
| 编辑器中是否可见流程? | 继续第二步 | 重启相机电源并重试 |
| 节点上是否出现错误三角形? | 优先处理这些节点 | 检查流程执行情况 |
| 检查是否正在触发? | 检查各节点输出 | 验证触发输入 |
备注
访问 URL: 使用程序专用 URL 格式:http://<camera-ip>/recipes/<recipe-number>/ioblock
第二步:启用调试监控
添加 Debug 节点以进行故障排除
- 在有问题的流程的关键位置放置 Debug 节点:
- 在触发输入之后
- 在逻辑节点之前和之后
- 在最终输出处
- 配置 Debug 节点以获取最大信息量:
- Output: 完整消息对象
- To: Debug 侧边栏
- Name: 描述性名称(例如:"After Classification Logic")
- 启用所有 Debug 节点,方法是在编辑器中点击其按钮
Debug 侧边栏管理
访问 Debug 侧边栏:
- 点击右侧面板中的 Debug 标签页(bug 图标)
- 使用垃圾桶图标清除旧消息
- 如果活动节点过多,请过滤消息
Debug 消息解读:
- 时间戳显示消息发生的时间
- 节点名称显示生成消息的节点
- 消息内容显示数据结构和值
第三步:追踪流程执行
跟随消息路径
- 从触发源开始(注入、定时器、外部输入)
- 验证每个节点是否接收到预期输入
- 检查每一步的消息转换
- 确定流程停止或产生错误输出的位置
常见流程中断点
| 节点类型 | 常见问题 | 快速检查 |
|---|---|---|
| 分类逻辑 | 未达到置信度阈值 | 检查 ROI 对齐,重新训练模型 |
| Switch 节点 | 条件逻辑错误 | 验证 switch 规则和消息属性 |
| Join 节点 | 等待不完整的消息集 | 检查消息分部数量 |
| Function 节点 | JavaScript 错误 | 检查浏览器控制台中的错误 |
| HTTP Request | 网络连接 | 手动测试端点 |
常见 Node-RED 问题与解决方案
流程执行问题
问题:流程未触发
症状:
- Debug 侧边栏中没有消息
- 系统似乎处于非活动状态
- 外部触发器不工作
诊断步骤:
- 检查触发源: 手动注入、定时器、外部输入
- 验证接线: 确保节点之间的连接
- 测试手动触发: 使用 Inject 节点强制启动流程
解决方案:
| 原因 | 解决方案 | 预防措施 |
|---|---|---|
| 流程被禁用 | 点击 Deploy → Full Deploy | 更改后定期部署 |
| 连接断开 | 正确地重新连接节点 | 编辑时进行可视化检查 |
| 定时器配置错误 | 检查 inject 节点的时间设置 | 记录时间要求 |
| 外部触发失败 | 验证 I/O 接线和信号 | 定期进行 I/O 测试 |
问题:流程运行但结果错误
症状:
- 消息正在流转但分类错误
- 通过/失败逻辑工作不正确
- 结果不一致
诊断过程:
- 在可疑节点前后添加 Debug 节点
- 比较预期与实际的消息内容
- 检查节点配置的参数是否正确
解决方案:
| 问题区域 | 检查 | 修复 |
|---|---|---|
| 分类逻辑 | ROI 对齐、模型训练 | 重新训练或调整 ROI |
| Switch 条件 | 属性名称和值 | 更正 switch 逻辑 |
| 消息属性 | 数据类型和格式 | 使用 Change 节点修正格式 |
| 上下文变量 | 存储的值和作用域 | 清除/重置上下文存储 |
性能问题
问题:流程执行缓慢
症状:
- 触发与输出之间存在延迟
- 检查超时
- 系统滞后
性能诊断:
- 检查 Debug 时间戳以识别缓慢的节点
- 监控相机系统的 CPU 使用率
- 统计活动的 Debug 节点数量(禁用未使用的节点)
优化措施:
| 性能问题 | 解决方案 | 预期改进 |
|---|---|---|
| Debug 节点过多 | 禁用/删除未使用的 Debug 节点 | 速度提升 10-20% |
| 复杂的 Function 节点 | 优化 JavaScript 代码 | 改进幅度不一 |
| 高频触发 | 添加延迟/速率限制 | 防止系统过载 |
| 大型消息对象 | 减小消息负载大小 | 更快的处理速度 |
维护程序
日常健康检查
可视化流程检查(5 分钟)
- 访问 Node-RED 编辑器
- 检查错误指示器(红色三角形)
- 验证流程连接是否完好
- 查看近期调试消息中的异常情况
流程执行测试(10 分钟)
- 使用 Inject 节点进行手动触发测试
- 在 Debug 侧边栏中验证预期输出
- 使用已知的合格/不合格部件测试 pass/fail 逻辑
- 确认外部通信(PLC、数据库)
每月维护任务
性能审查(15 分钟)
流程优化检查清单:
| 任务 | 操作 | 备注 |
|---|---|---|
| Debug 节点清理 | 禁用未使用的 Debug 节点 | 仅保留必要的调试项 |
| 上下文存储审查 | 清除不必要的存储值 | 防止内存累积 |
| 错误日志审查 | 检查浏览器控制台中的错误 | 记录反复出现的问题 |
| 备份创建 | 将流程导出到备份文件 | 连同日期/版本信息一起存储 |
配置验证(20 分钟)
- 将当前流程与已记录的标准进行比较
- 验证所有关键路径均具备适当的错误处理
- 测试错误恢复场景
- 针对任何变更更新文档
每月深度维护
全面流程分析(45 分钟)
性能指标收集:
- 流程执行时间
- 错误频率分析
- 资源使用模式
- 通信可靠性
流程结构审查:
- 消除冗余节点
- 整合重复逻辑
- 更新已弃用的配置
- 优化复杂的 Function 节点
备份与恢复测试(30 分钟)
- 创建完整的流程导出
- 在备份系统上测试导入程序
- 验证备份恢复后功能正常
- 记录恢复程序
诊断工具与技术
Node-RED 内置工具
Debug 侧边栏功能
| 功能 | 使用场景 | 访问方式 |
|---|---|---|
| 消息过滤 | 聚焦于特定节点 | 侧边栏中的过滤按钮 |
| 消息历史 | 查看过去 100 条消息 | 在 Debug 侧边栏中滚动 |
| 节点定位 | 查找 Debug 消息的源节点 | 点击消息中的节点名称 |
| 消息导出 | 保存诊断数据 | 复制消息内容 |
上下文数据浏览器
访问上下文存储:
- 打开 OV10i Node-RED 界面 (
http://<camera-ip>/recipes/<recipe-number>/ioblock) - 转到 Context Data 标签页(右侧边栏)
- 查看 Node/Flow/Global 上下文值
上下文调试:
- Node Context: 检查单个节点状态
- Flow Context: 验证共享流程变量
- Global Context: 查看系统全局设置
网络通信测试
HTTP 请求验证:
- 使用外部工具(Postman、curl)测试端点
- 验证响应格式是否符合预期数据
- 测试错误条件(超时、无效响应)
PLC 通信验证:
- 使用 PLC 编程软件验证连接性
- 独立测试数据寄存器访问
- 验证数据格式转换
紧急恢复程序
流程损坏恢复
损坏症状:
- OV10i Node-RED 界面无法加载流程
- 相机重启后流程显示为空
- 部署反复失败
恢复步骤:
- 对 OV10i 相机进行电源重启:
- 拔下电源 10 秒
- 等待完全启动(所有 4 个 LED 稳定)
- 访问程序的 Node-RED 界面:
- 导航至
http://<camera-ip>/recipes/<recipe-number>/ioblock - 如果流程已损坏,从备份导入
- 导航至
- 从备份恢复:
- 使用 OV10i 程序导入功能
- 导入最新的备份文件
- 验证所有连接完整
- 验证恢复:
- 测试所有关键流程
- 验证外部通信
- 更新所有配置更改
系统资源问题
内存/CPU 过载
立即采取的措施:
- 在 OV10i Node-RED 中禁用非必要的 Debug 节点
- 移除高频定时器触发器
- 简化复杂的 Function 节点
- 对相机进行电源重启 以重新启动所有服务
长期解决方案:
- 针对 OV10i 硬件优化流程设计
- 实施速率限制
- 减小消息负载大小
- 安排维护窗口
故障排除检查清单
维护前检查清单
- 通知生产部门 维护窗口
- 创建当前流程备份
- 记录当前系统状态
- 准备回滚程序
- 测试备份恢复过程
维护后验证
- 所有流程成功部署
- 手动触发测试通过
- 外部通信已验证
- 错误指示已清除
- 性能在可接受范围内
- 文档已更新
应急响应检查清单
- 已评估系统影响
- 已通知生产部门
- 已尝试快速修复
- 必要时进行备份恢复
- 已确定根本原因
- 已实施预防措施
文档与日志记录
维护记录
所需文档:
- 维护的日期/时间
- 已识别并解决的问题
- 所做的配置更改
- 已实现的性能改进
- 未来建议
🔗 另请参阅
提示
记录调试过程中所做的所有更改。这有助于未来的故障排除,并为您的团队积累机构知识。