AI 驅動文件
您想了解什麼?
Node-RED 除錯
本指南為 OV80i 攝像機系統中的 Node-RED 問題提供全面的故障排除流程。可用於現場檢修、除錯生產問題,以及對檢測流程的預防性維護。
注意
安全第一: 在修改活動檢測系統前,請始終通知生產並在修改流程前建立備份。
緊急快速修復流程
關鍵系統宕機 - 立即行動
| 步驟 | 操作 | 時長 | 結果 |
|---|---|---|---|
| 1 | 檢查攝像頭電源 LED 狀態 | 30 秒 | 確認硬體正常 |
| 2 | 訪問 OV80i Node-RED: http://camera-ip/recipes/<recipe-number>/ioblock | 1 分鐘 | 確認編輯器可訪問 |
| 3 | 查詢紅色三角形錯誤指示 | 1 分鐘 | 確認故障節點 |
| 4 | 點選 Deploy 按鈕(Full Deploy) | 30 秒 | 重置所有流程 |
| 5 | 測試基本檢測觸發 | 2 分鐘 | 驗證系統是否正常執行 |
系統恢復(若編輯器無法載入)
OV80i 攝像機沒有安全模式——重啟是首要的恢復方法:
- 對攝像頭進行電源迴圈(斷電 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
系統化除錯流程
步驟 1:確定問題範圍
快速評估問題
| 問題 | 若為是 | 若為否 |
|---|---|---|
| 是否能訪問 OV80i Node-RED 介面? | 繼續執行步驟 2 | 檢查網路/攝像頭狀態 |
| 在編輯器中能看到流程嗎? | 繼續執行步驟 2 | 對攝像頭斷電並重試 |
| 節點上是否有錯誤三角形? | 先關注這些節點 | 檢查流程執行 |
| 檢測是否已觸發? | 檢查各節點輸出 | 驗證觸發輸入 |
備註
訪問 URL: 使用配方特定的 URL 格式:http://<camera-ip>/recipes/<recipe-number>/ioblock
步驟 2:啟用除錯監控
新增除錯節點以進行故障排除
- 在問題流程的關鍵點放置 Debug 節點:
- 觸發輸入之後
- 邏輯節點之前和之後
- 最終輸出處
- 為獲得最大資訊量配置 Debug 節點:
- 輸出(Output): 完整的訊息物件
- 目標(To): 除錯側邊欄
- 名稱(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 節點 | 禁用/刪除未使用的 Debug 節點 | 提升 10-20% 的速度 |
| 複雜的 Function 節點 | 最佳化 JavaScript 程式碼 | 改進幅度可變 |
| 高頻觸發 | 新增延遲/速率限制 | 防止系統過載 |
| 大型訊息物件 | 減小訊息有效負載大小 | 處理速度更快 |
維護程式
每日健康檢查
視覺化流程檢查(5 分鐘)
- 訪問 Node-RED 編輯器
- 檢查錯誤指示標誌(紅色三角形)
- 驗證 flow 連線是否完好
- 檢視最近的 Debug 資訊以發現異常
Flow 執行測試(10 分鐘)
- 使用 Inject 節點進行手動觸發測試
- 在 Debug 側邊欄中驗證預期輸出
- 用已知良品/不良品測試透過/失敗邏輯
- 確認外部通訊(PLC、資料庫)
每月維護任務
效能評估(15 分鐘)
流程最佳化清單:
| 任務 | 操作 | 備註 |
|---|---|---|
| 除錯節點清理 | 禁用未使用的 Debug 節點 | 僅保留必要的除錯 |
| 上下文儲存審查 | 清除不必要的儲存值 | 防止記憶體積累 |
| 錯誤日誌檢查 | 檢查瀏覽器控制檯中的錯誤 | 記錄經常性問題 |
| 備份建立 | 將 flows 匯出為備份檔案 | 以日期/版本資訊存放 |
配置驗證(20 分鐘)
- 將當前 flows 與文件標準進行比較
- 驗證所有關鍵路徑是否具備適當的錯誤處理
- 測試錯誤恢復情景
- 更新變更的文件
每月深度維護
全面流程分析(45 分鐘)
效能指標收集:
- 流程執行時間
- 錯誤頻率分析
- 資源使用模式
- 通訊可靠性
流程結構審查:
- 消除冗餘節點
- 合併重複邏輯
- 更新棄用的配置
- 最佳化複雜的 Function 節點
備份與恢復測試(30 分鐘)
- 建立完整的流程匯出
- 在備份系統上測試匯入過程
- 驗證備份恢復是否保持功能
- 記錄恢復步驟
診斷工具與技術
內建 Node-RED 工具
除錯側邊欄功能
| 功能 | 使用場景 | 訪問方式 |
|---|---|---|
| 訊息過濾 | 專注於特定節點 | 側邊欄中的篩選按鈕 |
| 訊息歷史 | 檢視最近 100 條訊息 | 在 Debug 側邊欄滾動 |
| 節點定位 | 查詢除錯訊息的來源 | 在訊息中單擊節點名稱 |
| 訊息匯出 | 儲存診斷資料 | 複製訊息內容 |
上下文資料瀏覽器
訪問上下文儲存:
- 開啟 OV80i Node-RED 介面 (
http://<camera-ip>/recipes/<recipe-number>/ioblock) - 轉到右側邊欄的 Context Data 標籤
- 檢視節點/流程/全域性上下文值
上下文除錯:
- 節點上下文: 檢查單個節點狀態
- 流程上下文: 驗證共享流程變數
- 全域性上下文: 檢視系統範圍設定
網路通訊測試
HTTP 請求校驗:
- 使用外部工具(Postman、curl)測試端點
- 驗證響應格式是否與預期資料匹配
- 測試錯誤條件(超時、無效響應)
PLC 通訊驗證:
- 使用 PLC 程式設計軟體驗證連通性
- 獨立測試資料暫存器訪問
- 校驗資料格式轉換
緊急恢復程式
流程損壞恢復
損壞症狀:
- OV80i Node-RED 介面無法載入流程
- 攝像頭重啟後流程顯示為空
- 部署持續失敗
恢復步驟:
- 對 OV80i 攝像頭進行斷電再通電(電源迴圈):
- 斷開電源 10 秒
- 等待完全啟動(所有 4 個 LED 指示燈穩定)
- 訪問配方的 Node-RED 介面:
- 前往
http://<camera-ip>/recipes/<recipe-number>/ioblock - 如果流程損壞,請從備份匯入
- 前往
- 從備份進行還原:
- 使用 OV80i 的 recipe 匯入功能
- 匯入最近的備份檔案
- 驗證所有連線是否完好
- 驗證還原結果:
- 測試所有關鍵流程
- 驗證外部通訊
- 更新任何配置變更
系統資源問題
記憶體/CPU 資源超載
即時措施:
- 在 OV80i Node-RED 中禁用非必要的 Debug 節點
- 移除高頻率定時觸發器
- 簡化複雜的 Function 節點
- 對 OV80i 攝像頭進行斷電再通電以重新啟動所有服務
長期解決方案:
- 針對 OV80i 硬體最佳化流程設計
- 實現速率限制
- 減少訊息有效載荷大小
- 安排維護視窗
故障排除清單
維護前清單
- 通知生產線關於維護視窗
- 建立當前流程備份
- 記錄當前系統狀態
- 準備回滾程式
- 測試備份恢復過程
維護後驗證
- 所有流程均已成功部署
- 手動觸發測試透過
- 外部通訊已驗證
- 錯誤指示已清除
- 效能在可接受範圍內
- 文件已更新
緊急響應清單
- 系統影響已評估
- 生產部門已通知
- 已嘗試快速修復
- 如有需要,執行備份恢復
- 已定位根本原因
- 已實施預防措施
文件與日誌
維護記錄
所需文件:
- 維護日期/時間
- 已識別並解決的問題
- 所做的配置變更
- 實現的效能改進
- 未來建議
🔗 參見下列內容
- Node-RED Basics
- Creating Your First Recipe
- Camera Communication Architecture
- Troubleshooting Power Issues
- Node-RED Architecture in OV80i
提示
請在除錯會話期間記錄所做的所有更改。這有助於將來排查問題,併為團隊建立知識庫。