AI 驅動文件
您想了解什麼?
Node-RED 除錯
本指南提供 OV20i 攝像頭系統上 Node-RED 問題的全面故障排除流程。可用於現場檢修、排查生產問題以及對檢測流程的預防性維護。
注意
Safety First: 在對正在執行的檢測系統進行修改前,請始終通知生產並在修改流程前進行備份。
緊急快速修復程式
系統關鍵故障 - 立刻行動
| 步驟 | 操作 | 時長 | 結果 |
|---|---|---|---|
| 1 | 檢查相機電源 LED 狀態 | 30 秒 | 確認硬體正常 |
| 2 | 訪問 OV20i Node-RED:http://camera-ip/recipes/<recipe-number>/ioblock | 1 分鐘 | 編輯器可訪問性確認 |
| 3 | 查詢紅色三角形錯誤指示標誌 | 1 分鐘 | 標識出故障節點 |
| 4 | 點選 Deploy 按鈕(Full Deploy) | 30 秒 | 重置所有流程 |
| 5 | 測試基本檢測觸發 | 2 分鐘 | 驗證系統是否執行正常 |
系統恢復(如果 Editor Won't Load)
OV20i 攝像頭沒有安全模式——重啟是主要的恢復方法:
- 斷電並重新上電攝像頭(斷開電源 10 秒)
- 等待完整啟動(全部 4 個 LEDs 固定亮起 - 約 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
系統化除錯流程
第 1 步:確定問題範圍
快速評估問題
| 問題 | 若為 Yes(是) | 若為 No(否) |
|---|---|---|
| 是否可以訪問 OV20i 的 Node-RED 介面? | 進入第 2 步 | 檢查網路/相機狀態 |
| 編輯器中是否能看到流程? | 進入第 2 步 | 斷電重啟相機並重試 |
| 是否在節點上看到錯誤三角形? | 優先關注這些節點 | 檢查流程執行情況 |
| 檢測是否正在觸發? | 檢查各節點輸出 | 驗證觸發輸入 |
備註
訪問 URL: 使用配方特定的 URL 格式:http://<camera-ip>/recipes/<recipe-number>/ioblock
第 2 步:啟用除錯監控
為故障排除新增除錯節點
- 在問題流程的關鍵點放置 Debug 節點:
- 觸發輸入之後
- 邏輯節點的前後
- 最終輸出處
- 為儘可能獲取完整資訊而配置 Debug 節點:
- 輸出(Output): 完整的訊息物件
- 到(To): Debug 側邊欄
- 名稱(Name): 描述性名稱(如 “After Classification Logic”)
- 在編輯器中點選按鈕啟用所有 Debug 節點
除錯側邊欄管理
訪問除錯側邊欄:
- 在右側面板點選 Debug 選項卡(錯誤圖示)
- 使用垃圾桶圖示清除舊訊息
- 如節點數量過多,請使用篩選訊息
除錯訊息解釋:
- 時間戳(Timestamp) 顯示訊息發生時間
- 節點名稱(Node name) 顯示生成該訊息的節點
- 訊息內容(Message content) 顯示資料結構和值
第 3 步:跟蹤流程執行
跟蹤訊息路徑
- 從觸發源開始(注入、定時器、外部輸入)
- 驗證每個節點接收到了預期輸入
- 檢查每一步中的訊息轉換
- 識別流程在何處停止或產生錯誤輸出
常見流程中斷點
| 節點型別 | 常見問題 | 快速檢查 |
|---|---|---|
| 分類邏輯 | 未達到置信度閾值 | 檢查 ROI 對齊,重新訓練模型 |
| Switch 節點 | 條件邏輯錯誤 | 驗證開關規則和訊息屬性 |
| Join 節點 | 等待不完整的訊息集 | 檢查訊息部分數量 |
| Function 節點 | JavaScript 錯誤 | 檢查瀏覽器控制檯中的錯誤 |
| HTTP 請求 | 網路連線 | 手動測試端點 |
常見 Node-RED 問題與解決方案
流程執行問題
問題:流程未觸發
症狀:
- 除錯側邊欄中無訊息
- 系統看起來處於非活動狀態
- 外部觸發不起作用
診斷步驟:
- 檢查觸發源: 手動注入、定時器、外部輸入
- 驗證連線: 確保節點之間的連線
- 測試手動觸發: 使用 Inject 節點強制啟動流程
解決方案:
| 原因 | 解決方案 | 防止措施 |
|---|---|---|
| 禁用的流程 | 點選 Deploy → 完全部署 | 變更後定期部署 |
| 連線斷開 | 正確重新連線節點 | 編輯過程中的視覺化檢查 |
| 定時器配置錯誤 | 檢查 Inject 節點的定時設定 | 記錄定時要求 |
| 外部觸發失敗 | 驗證 I/O 佈線與訊號 | 定期進行 I/O 測試 |
問題:流程正在執行但結果錯誤
症狀:
- 訊息在流動但分類結果不正確
- 透過/失敗邏輯未正確工作
- 結果不一致
診斷過程:
- 在可疑節點前後新增 Debug 節點
- 比較期望與實際的訊息內容
- 檢查節點配置以確保引數正確
解決方案:
| 問題區域 | 檢查項 | 修復措施 |
|---|---|---|
| 分類邏輯 | ROI 對齊,模型訓練 | 重新訓練或調整 ROI |
| Switch 條件 | 屬性名稱和值 | 修正開關邏輯 |
| 訊息屬性 | 資料型別和格式 | 使用 Change 節點修正格式 |
| 上下文變數 | 儲存的值與作用域 | 清除/重置上下文儲存 |
效能問題
問題:流程執行緩慢
症狀:
- 觸發與輸出之間的延遲
- 檢查超時
- 系統滯後
效能診斷:
- 檢查 Debug 時間戳以識別慢節點
- 監控攝像頭系統的 CPU 使用率
- 統計活動 Debug 節點(禁用/移除未使用的節點)
最佳化措施:
| 效能問題 | 解決方案 | 預期改進 |
|---|---|---|
| 除錯節點過多 | 禁用/移除未使用的 Debug 節點 | 提升約 10-20% 的速度 |
| 複雜的 Function 節點 | 最佳化 JavaScript 程式碼 | 變數改進(視具體情況而定) |
| 高頻觸發 | 新增延時/速率限制 | 防止系統過載 |
| 大型訊息物件 | 減少訊息載荷大小 | 處理更快 |
維護程式
每日健康檢查
視覺流程檢查(5 分鐘)
- 訪問 Node-RED 編輯器
- 檢查錯誤指示符(紅色三角形)
- 驗證流程連線是否完好
- 檢視最近的 Debug 訊息以發現異常
流程執行測試(10 分鐘)
- 使用 Inject 節點進行手動觸發測試
- 在 Debug 側邊欄中驗證預期輸出
- 使用已知良品與不良品測試透過/失敗邏輯
- 確認外部通訊(PLC、資料庫)
月度維護任務
效能評估(15 分鐘)
流程最佳化清單:
| 任務 | 措施 | 說明 |
|---|---|---|
| 除錯節點清理 | 禁用未使用的除錯節點 | 僅保留必要的除錯輸出 |
| 上下文儲存審查 | 清除不必要的儲存值 | 防止記憶體堆積 |
| 錯誤日誌審查 | 檢查瀏覽器控制檯中的錯誤 | 記錄重複出現的問題 |
| 備份建立 | 匯出流程到備份檔案 | 按日期/版本資訊存檔 |
配置驗證(20 分鐘)
- 將當前流程與文件化標準進行比較
- 驗證所有關鍵路徑是否具備適當的錯誤處理
- 測試錯誤恢復場景
- 對任何變更更新文件
月度深度維護
綜合流程分析(45 分鐘)
效能指標採集:
- 流程執行時間
- 錯誤發生頻率分析
- 資源使用模式
- 通訊可靠性
流程結構回顧:
- 消除冗餘節點
- 整合重複邏輯
- 更新已棄用的配置
- 最佳化複雜的 Function 節點
備份與恢復測試(30 分鐘)
- 建立完整的流程匯出
- 在備份系統上測試匯入過程
- 驗證備份還原是否保持功能
- 記錄恢復程式
診斷工具與技術
內建 Node-RED 工具
除錯側邊欄功能
| 功能 | 使用場景 | 訪問方式 |
|---|---|---|
| 訊息過濾 | 聚焦特定節點 | 側邊欄中的篩選按鈕 |
| 訊息歷史 | 回顧最近 100 條訊息 | 在 Debug 側邊欄滾動檢視 |
| 節點定位 | 查詢 Debug 訊息來源 | 在訊息中單擊節點名稱 |
| 訊息匯出 | 儲存診斷資料 | 複製訊息內容 |
上下文資料檢視器
訪問上下文儲存:
- 開啟 OV20i Node-RED 介面(
http://<camera-ip>/recipes/<recipe-number>/ioblock) - 轉到右側邊欄的 Context Data 選項卡
- 檢視 Node/Flow/Global 上下文值
上下文除錯:
- 節點上下文: 檢查單個節點狀態
- 流程上下文: 驗證共享流程變數
- 全域性上下文: 檢視系統範圍設定
網路通訊測試
HTTP 請求驗證:
- 使用外部工具(Postman、curl)測試端點
- 驗證響應格式是否與預期資料匹配
- 測試錯誤條件(超時、無效響應)
PLC 通訊驗證:
- 使用 PLC 程式設計軟體驗證連通性
- 獨立測試資料暫存器訪問
- 驗證資料格式轉換
緊急恢復程式
流程損壞恢復
損壞症狀:
- OV20i Node-RED 介面無法載入流程
- 攝像頭重啟後,流程顯示為空
- 部署反覆失敗
恢復步驟:
- 對 OV20i 攝像頭進行電源迴圈(Power cycle):
- 斷開電源 10 秒
- 等待完成啟動(所有 4 個 LED 指示燈穩定)
- 訪問配方的 Node-RED 介面:
- 導航至
http://<camera-ip>/recipes/<recipe-number>/ioblock - 如果流程損壞,請從備份匯入
- 導航至
- 從備份恢復:
- 使用 OV20i 的配方匯入功能
- 匯入最近的備份檔案
- 驗證所有連線是否完好
- 驗證恢復結果:
- 測試所有關鍵流程
- 驗證外部通訊
- 更新任何配置變更
系統資源問題
記憶體/CPU 過載
即時措施:
- 在 OV20i Node-RED 中禁用非必需的 Debug 節點
- 移除高頻率定時器觸發
- 簡化複雜的 Function 節點
- 對攝像頭進行電源迴圈(Power cycle)以重啟所有服務
長期解決方案:
- 為 OV20i 硬體最佳化流程設計
- 實施速率限制
- 減少訊息載荷大小
- 計劃維護視窗
故障排除清單
維護前清單
- 通知生產線維護視窗
- 建立當前流程備份
- 記錄當前系統狀態
- 準備回滾過程
- 測試備份恢復過程
維護後驗證
- 所有流程成功部署
- 手動觸發測試透過
- 外部通訊已驗證
- 錯誤指示已清除
- 效能處於可接受範圍內
- 文件已更新
緊急響應清單
- 系統影響已評估
- 已通知生產線
- 已嘗試快速修復
- 如有需要,進行備份還原
- 已識別根本原因
- 已實施預防措施
文件與日誌
維護記錄
所需文件:
- 維護日期/時間
- 已識別並解決的問題
- 已進行的配置變更
- 實現的效能改進
- 未來建議
🔗 參見下文
- Node-RED Basics
- Creating Your First Recipe
- Camera Communication Architecture
- Troubleshooting Power Issues
- Node-RED Architecture in OV20i
提示
在除錯會話中記錄所有變更。此做法有助於將來排查故障併為您的團隊積累知識。