AI-POWERED DOCS
What do you want to know?
Debug Node-RED
Hướng dẫn này cung cấp các quy trình khắc phục sự cố toàn diện cho các vấn đề Node-RED trên hệ thống camera OV20i. Sử dụng tài liệu này để sửa chữa tại hiện trường, debug các vấn đề sản xuất và bảo trì phòng ngừa cho các inspection flow.
An Toàn Trên Hết: Luôn thông báo cho bộ phận sản xuất trước khi thực hiện thay đổi trên các hệ thống kiểm tra đang hoạt động. Tạo bản sao lưu trước khi sửa đổi các flow.
Quy Trình Khắc Phục Nhanh Khẩn Cấp
Hệ Thống Ngừng Hoạt Động - Hành Động Ngay Lập Tức
| Bước | Hành Động | Thời Gian | Kết Quả |
|---|---|---|---|
| 1 | Kiểm tra trạng thái LED nguồn của camera | 30 giây | Xác minh phần cứng OK |
| 2 | Truy cập Node-RED của OV20i: http://camera-ip/recipes/<recipe-number>/ioblock | 1 phút | Xác nhận editor có thể truy cập |
| 3 | Tìm các biểu tượng tam giác đỏ báo lỗi | 1 phút | Xác định các node bị lỗi |
| 4 | Nhấn nút Deploy (Full Deploy) | 30 giây | Reset tất cả các flow |
| 5 | Kiểm tra trigger kiểm tra cơ bản | 2 phút | Xác minh hệ thống vận hành |
Khôi Phục Hệ Thống (Nếu Editor Không Tải Được)
Camera OV20i không có safe mode - khởi động lại là phương pháp khôi phục chính:
- Khởi động lại nguồn camera (rút nguồn trong 10 giây)
- Chờ khởi động hoàn tất (cả 4 LED ổn định - 2-3 phút)
- Truy cập Node-RED của recipe đang hoạt động thông qua URL đặc thù của recipe
- Xác minh tính toàn vẹn của flow và thực hiện các sửa chữa cần thiết
- Deploy các thay đổi để khôi phục hoạt động bình thường
Định Dạng URL: http://<camera-ip>/recipes/<recipe-number>/ioblock
Ví Dụ:
http://192.168.0.101/recipes/20/ioblockhttp://192.168.0.105/recipes/1/ioblock
Quy Trình Debug Có Hệ Thống
Bước 1: Xác Định Phạm Vi Vấn Đề
Câu Hỏi Đánh Giá Nhanh
| Câu Hỏi | Nếu CÓ | Nếu KHÔNG |
|---|---|---|
| Bạn có thể truy cập giao diện Node-RED của OV20i không? | Tiếp tục sang Bước 2 | Kiểm tra trạng thái mạng/camera |
| Các flow có hiển thị trong editor không? | Tiếp tục sang Bước 2 | Khởi động lại camera và thử lại |
| Bạn có thấy các tam giác báo lỗi trên các node không? | Tập trung vào các node đó trước | Kiểm tra việc thực thi flow |
| Việc kiểm tra có được trigger không? | Kiểm tra output của từng node riêng lẻ | Xác minh đầu vào trigger |
URL Truy Cập: Sử dụng định dạng URL đặc thù của recipe: http://<camera-ip>/recipes/<recipe-number>/ioblock
Bước 2: Kích Hoạt Giám Sát Debug
Thêm Các Node Debug Để Khắc Phục Sự Cố
- Đặt các node Debug tại các điểm quan trọng trong các flow có vấn đề:
- Sau các đầu vào trigger
- Trước và sau các node logic
- Tại các đầu ra cuối cùng
- Cấu hình các node Debug để có thông tin tối đa:
- Output: Toàn bộ message object
- To: Debug sidebar
- Name: Tên mô tả (ví dụ: "After Classification Logic")
- Kích hoạt tất cả các node Debug bằng cách nhấn các nút của chúng trong editor
Quản Lý Debug Sidebar
Truy Cập Debug Sidebar:
- Nhấn Debug tab (biểu tượng con bọ) trong bảng bên phải
- Xóa các tin nhắn cũ bằng biểu tượng thùng rác
- Lọc tin nhắn nếu có quá nhiều node đang hoạt động
Diễn Giải Thông Điệp Debug:
- Timestamp hiển thị thời điểm tin nhắn xảy ra
- Tên node hiển thị node nào đã tạo ra tin nhắn
- Nội dung tin nhắn hiển thị cấu trúc dữ liệu và giá trị
Bước 3: Theo Dõi Quá Trình Thực Thi Flow
Theo Dõi Đường Đi Của Message
- Bắt đầu từ nguồn kích hoạt (inject, timer, input bên ngoài)
- Xác minh mỗi node nhận được input mong đợi
- Kiểm tra các biến đổi message tại mỗi bước
- Xác định nơi flow dừng lại hoặc tạo ra output sai
Các Điểm Gián Đoạn Flow Thường Gặp
| Loại Node | Vấn Đề Thường Gặp | Kiểm Tra Nhanh |
|---|---|---|
| Classification Logic | Không đạt ngưỡng confidence | Kiểm tra căn chỉnh ROI, huấn luyện lại model |
| Switch Node | Logic điều kiện sai | Xác minh các quy tắc switch và thuộc tính message |
| Join Node | Đang chờ tập message chưa hoàn chỉnh | Kiểm tra số lượng phần của message |
| Function Node | Lỗi JavaScript | Kiểm tra console của trình duyệt để tìm lỗi |
| HTTP Request | Kết nối mạng | Kiểm tra endpoint thủ công |
Các Vấn Đề Thường Gặp Với Node-RED & Giải Pháp
Vấn Đề Về Thực Thi Flow
Vấn Đề: Flow Không Được Kích Hoạt
Triệu Chứng:
- Không có message nào trong thanh bên Debug
- Hệ thống có vẻ không hoạt động
- Trigger bên ngoài không hoạt động
Các Bước Chẩn Đoán:
- Kiểm tra nguồn trigger: Manual inject, timer, input bên ngoài
- Xác minh kết nối dây: Đảm bảo kết nối giữa các node
- Kiểm tra trigger thủ công: Sử dụng node Inject để buộc flow bắt đầu
Giải Pháp:
| Nguyên Nhân | Giải Pháp | Phòng Ngừa |
|---|---|---|
| Flow bị vô hiệu hóa | Nhấn Deploy → Full Deploy | Deploy thường xuyên sau khi thay đổi |
| Kết nối bị hỏng | Nối lại dây các node đúng cách | Kiểm tra trực quan trong khi chỉnh sửa |
| Cấu hình timer sai | Kiểm tra cài đặt thời gian của node inject | Ghi lại các yêu cầu về thời gian |
| Lỗi trigger bên ngoài | Xác minh dây I/O và tín hiệu | Kiểm tra I/O thường xuyên |
Vấn Đề: Flow Chạy Nhưng Kết Quả Sai
Triệu Chứng:
- Message vẫn chạy nhưng phân loại không chính xác
- Logic Pass/Fail không hoạt động đúng
- Kết quả không nhất quán
Quy Trình Chẩn Đoán:
- Thêm các node Debug trước và sau các node nghi ngờ
- So sánh nội dung message mong đợi và thực tế
- Kiểm tra cấu hình node để đảm bảo các tham số đúng
Giải Pháp:
| Khu Vực Vấn Đề | Kiểm Tra | Khắc Phục |
|---|---|---|
| Classification Logic | Căn chỉnh ROI, huấn luyện model | Huấn luyện lại hoặc điều chỉnh ROI |
| Điều Kiện Switch | Tên và giá trị thuộc tính | Sửa logic switch |
| Thuộc Tính Message | Kiểu dữ liệu và định dạng | Sử dụng node Change để sửa định dạng |
| Biến Context | Giá trị lưu trữ và phạm vi | Xóa/đặt lại bộ nhớ context |
Vấn Đề Về Hiệu Năng
Vấn Đề: Flow Thực Thi Chậm
Triệu Chứng:
- Độ trễ giữa trigger và output
- Timeout khi kiểm tra
- Hệ thống bị lag
Chẩn Đoán Hiệu Năng:
- Kiểm tra timestamp Debug để xác định các node chậm
- Theo dõi mức sử dụng CPU trên hệ thống camera
- Đếm số node Debug đang hoạt động (vô hiệu hóa các node không sử dụng)
Hành Động Tối Ưu:
| Vấn Đề Hiệu Năng | Giải Pháp | Cải Thiện Dự Kiến |
|---|---|---|
| Quá nhiều node Debug | Vô hiệu hóa/xóa các node Debug không sử dụng | Tăng tốc 10-20% |
| Node Function phức tạp | Tối ưu mã JavaScript | Cải thiện tùy trường hợp |
| Trigger tần suất cao | Thêm giới hạn delay/tốc độ | Ngăn quá tải hệ thống |
| Đối tượng message lớn | Giảm kích thước payload của message | Xử lý nhanh hơn |
Quy Trình Bảo Trì
Kiểm Tra Tình Trạng Hàng Ngày
Kiểm Tra Trực Quan Flow (5 phút)
- Truy cập trình chỉnh sửa Node-RED
- Kiểm tra các chỉ báo lỗi (tam giác đỏ)
- Xác minh các kết nối flow còn nguyên vẹn
- Xem xét các thông báo Debug gần đây để phát hiện bất thường
Kiểm Tra Thực Thi Flow (10 phút)
- Kiểm tra trigger thủ công sử dụng Inject node
- Xác minh các đầu ra mong đợi trong sidebar Debug
- Kiểm tra logic pass/fail với các sản phẩm tốt/xấu đã biết
- Xác nhận truyền thông bên ngoài (PLC, cơ sở dữ liệu)
Tác Vụ Bảo Trì Hàng Tháng
Đánh Giá Hiệu Suất (15 phút)
Danh Sách Kiểm Tra Tối Ưu Hóa Flow:
| Tác Vụ | Hành Động | Ghi Chú |
|---|---|---|
| Dọn Dẹp Debug Node | Vô hiệu hóa các Debug node không sử dụng | Chỉ giữ lại các debug thiết yếu |
| Xem Xét Context Storage | Xóa các giá trị lưu trữ không cần thiết | Ngăn chặn tích tụ bộ nhớ |
| Xem Xét Nhật Ký Lỗi | Kiểm tra console của trình duyệt để phát hiện lỗi | Ghi lại các vấn đề tái diễn |
| Tạo Bản Sao Lưu | Xuất flow ra file sao lưu | Lưu kèm thông tin ngày/phiên bản |
Xác Thực Cấu Hình (20 phút)
- So sánh các flow hiện tại với tiêu chuẩn đã tài liệu hóa
- Xác minh tất cả đường dẫn quan trọng có xử lý lỗi phù hợp
- Kiểm tra các kịch bản khôi phục lỗi
- Cập nhật tài liệu cho bất kỳ thay đổi nào
Bảo Trì Chuyên Sâu Hàng Tháng
Phân Tích Flow Toàn Diện (45 phút)
Thu Thập Chỉ Số Hiệu Suất:
- Thời gian thực thi flow
- Phân tích tần suất lỗi
- Mẫu sử dụng tài nguyên
- Độ tin cậy truyền thông
Xem Xét Cấu Trúc Flow:
- Loại bỏ các node dư thừa
- Hợp nhất logic trùng lặp
- Cập nhật các cấu hình đã lỗi thời
- Tối ưu hóa các Function node phức tạp
Kiểm Tra Sao Lưu và Khôi Phục (30 phút)
- Tạo bản xuất flow hoàn chỉnh
- Kiểm tra quy trình import trên hệ thống sao lưu
- Xác minh việc khôi phục bản sao lưu vẫn duy trì chức năng
- Tài liệu hóa quy trình khôi phục
Công Cụ và Kỹ Thuật Chẩn Đoán
Công Cụ Tích Hợp Sẵn Trong Node-RED
Tính Năng Debug Sidebar
| Tính Năng | Trường Hợp Sử Dụng | Phương Thức Truy Cập |
|---|---|---|
| Lọc Thông Báo | Tập trung vào các node cụ thể | Nút Filter trong sidebar |
| Lịch Sử Thông Báo | Xem lại 100 thông báo gần nhất | Cuộn trong Debug sidebar |
| Vị Trí Node | Tìm nguồn của thông báo Debug | Nhấp vào tên node trong thông báo |
| Xuất Thông Báo | Lưu dữ liệu chẩn đoán | Sao chép nội dung thông báo |
Trình Khám Phá Dữ Liệu Context
Truy Cập Context Storage:
- Mở giao diện Node-RED của OV20i (
http://<camera-ip>/recipes/<recipe-number>/ioblock) - Đi đến tab Context Data (sidebar bên phải)
- Xem các giá trị context Node/Flow/Global
Gỡ Lỗi Context:
- Node Context: Kiểm tra trạng thái của từng node riêng lẻ
- Flow Context: Xác minh các biến flow dùng chung
- Global Context: Xem xét các cài đặt toàn hệ thống
Kiểm Tra Truyền Thông Mạng
Xác Thực HTTP Request:
- Sử dụng công cụ bên ngoài (Postman, curl) để kiểm tra các endpoint
- Xác minh định dạng phản hồi khớp với dữ liệu mong đợi
- Kiểm tra các điều kiện lỗi (timeout, phản hồi không hợp lệ)
Xác Minh Truyền Thông PLC:
- Sử dụng phần mềm lập trình PLC để xác minh kết nối
- Kiểm tra truy cập data register một cách độc lập
- Xác thực các chuyển đổi định dạng dữ liệu
Quy Trình Khôi Phục Khẩn Cấp
Khôi Phục Flow Bị Hỏng
Triệu Chứng Hỏng:
- Giao diện Node-RED của OV20i không tải được flow
- Flow hiển thị trống sau khi khởi động lại camera
- Deploy thất bại liên tục
Các Bước Khôi Phục:
- Khởi động lại nguồn camera OV20i:
- Rút nguồn trong 10 giây
- Chờ khởi động hoàn tất (cả 4 đèn LED sáng ổn định)
- Truy cập giao diện Node-RED của recipe:
- Điều hướng đến
http://<camera-ip>/recipes/<recipe-number>/ioblock - Nếu flow bị hỏng, import từ bản sao lưu
- Điều hướng đến
- Khôi phục từ bản sao lưu:
- Sử dụng chức năng import recipe của OV20i
- Import file sao lưu gần nhất
- Kiểm tra tất cả kết nối còn nguyên vẹn
- Xác thực việc khôi phục:
- Kiểm tra tất cả flow quan trọng
- Xác thực giao tiếp bên ngoài
- Cập nhật mọi thay đổi cấu hình
Sự Cố Tài Nguyên Hệ Thống
Quá Tải Bộ Nhớ/CPU
Hành Động Ngay Lập Tức:
- Tắt các Debug node không cần thiết trong OV20i Node-RED
- Loại bỏ các timer trigger tần suất cao
- Đơn giản hóa các Function node phức tạp
- Khởi động lại nguồn camera để khởi động lại tất cả dịch vụ
Giải Pháp Dài Hạn:
- Tối ưu hóa thiết kế flow cho phần cứng OV20i
- Triển khai giới hạn tốc độ (rate limiting)
- Giảm kích thước payload của message
- Lên lịch các khung thời gian bảo trì
Danh Sách Kiểm Tra Khắc Phục Sự Cố
Danh Sách Kiểm Tra Trước Khi Bảo Trì
- Thông báo cho bộ phận sản xuất về khung thời gian bảo trì
- Tạo bản sao lưu flow hiện tại
- Ghi lại trạng thái hệ thống hiện tại
- Chuẩn bị quy trình rollback
- Kiểm tra quy trình khôi phục sao lưu
Xác Thực Sau Khi Bảo Trì
- Tất cả flow deploy thành công
- Các bài kiểm tra trigger thủ công đạt yêu cầu
- Giao tiếp bên ngoài được xác thực
- Các chỉ báo lỗi đã được xóa
- Hiệu năng nằm trong ngưỡng chấp nhận được
- Tài liệu đã được cập nhật
Danh Sách Kiểm Tra Ứng Phó Khẩn Cấp
- Đã đánh giá tác động đến hệ thống
- Đã thông báo cho bộ phận sản xuất
- Đã thử các biện pháp khắc phục nhanh
- Khôi phục từ bản sao lưu nếu cần
- Xác định nguyên nhân gốc rễ
- Triển khai các biện pháp phòng ngừa
Tài Liệu và Nhật Ký
Hồ Sơ Bảo Trì
Tài Liệu Bắt Buộc:
- Ngày/giờ bảo trì
- Các sự cố được xác định và khắc phục
- Các thay đổi cấu hình đã thực hiện
- Các cải thiện hiệu năng đạt được
- Các khuyến nghị trong tương lai
🔗 Xem Thêm
- Kiến Thức Cơ Bản về Node-RED
- Tạo Recipe Đầu Tiên Của Bạn
- Kiến Trúc Giao Tiếp Camera
- Khắc Phục Sự Cố Nguồn Điện
- Kiến Trúc Node-RED trong OV20i
Ghi lại tất cả các thay đổi được thực hiện trong quá trình debug. Điều này giúp ích cho việc khắc phục sự cố trong tương lai và xây dựng kiến thức nội bộ cho nhóm của bạn.