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 硬體最佳化流程設計
- 實施速率限制
- 減小訊息負載大小
- 安排維護視窗
故障排除檢查清單
維護前檢查清單
- 通知生產部門 維護視窗
- 建立當前流程備份
- 記錄當前系統狀態
- 準備回滾程式
- 測試備份恢復過程
維護後驗證
- 所有流程成功部署
- 手動觸發測試透過
- 外部通訊已驗證
- 錯誤指示已清除
- 效能在可接受範圍內
- 文件已更新
應急響應檢查清單
- 已評估系統影響
- 已通知生產部門
- 已嘗試快速修復
- 必要時進行備份恢復
- 已確定根本原因
- 已實施預防措施
文件與日誌記錄
維護記錄
所需文件:
- 維護的日期/時間
- 已識別並解決的問題
- 所做的配置更改
- 已實現的效能改進
- 未來建議
🔗 另請參閱
提示
記錄除錯過程中所做的所有更改。這有助於未來的故障排除,併為您的團隊積累機構知識。