Skip to main content

AI-POWERED DOCS

What do you want to know?

Thiết Lập Metadata

Hướng dẫn này chỉ cho bạn cách cấu hình metadata cho hình ảnh camera OV80i. Metadata là thông tin tùy chỉnh được lưu trữ cùng với mỗi hình ảnh được chụp, giúp bạn theo dõi các chi tiết quan trọng như số part, số serial, hoặc dữ liệu sản xuất.

Khi Nào Sử Dụng Metadata: Theo dõi sản xuất, nhận dạng part, hồ sơ kiểm soát chất lượng, thông tin lô, nhận dạng người vận hành, hoặc bất kỳ dữ liệu tùy chỉnh nào bạn cần liên kết với hình ảnh kiểm tra.

Điều Kiện Tiên Quyết

  • Hệ thống camera OV80i đã được thiết lập và kết nối
  • Recipe đang hoạt động đã được cấu hình với thiết lập imaging và inspection
  • Ít nhất một AI block (classification hoặc segmentation) đã được cấu hình
  • Hiểu biết về dữ liệu bạn muốn theo dõi từ kết quả kiểm tra

Metadata Là Gì?

Metadata là thông tin bổ sung được đính kèm với mỗi hình ảnh được chụp. Thông tin này:

  • Lưu trữ cùng với hình ảnh trong thư viện của camera
  • Hiển thị trong HMI để người vận hành xem
  • Giúp nhận dạng và theo dõi các part hoặc lần chạy sản xuất cụ thể
  • Có thể được tìm kiếm trong thư viện để phân tích

Ví dụ về metadata hữu ích:

  • Số part (ví dụ: "P12345")
  • Số serial (ví dụ: "SN987654")
  • Tên người vận hành (ví dụ: "John_Smith")
  • Thông tin ca làm việc (ví dụ: "A_Shift")
  • Số lô (ví dụ: "Batch_2025_001")
note

Metadata chỉ có thể được lưu khi một inspection được hoàn thành. Metadata phải là một phần của flow bắt đầu từ "All Block Outputs" sau khi camera chụp và xử lý hình ảnh.

Bước 1: Truy Cập Node-RED Editor

1.1 Điều Hướng Đến IO Block

  1. Mở recipe đang hoạt động của bạn trong Recipe Editor
  2. Nhấp vào Configure IO hoặc chọn IO Block" trong menu breadcrumb để vào Node-RED editor

1.2 Xác Minh Giao Diện Node-RED

Điểm kiểm tra: Bạn sẽ thấy Node-RED flow editor với flow IO Block hiện có và bảng node ở phía bên trái.

Bước 2: Xác Định Node "All Block Outputs"

2.1 Tìm Điểm Bắt Đầu

Trong Node-RED flow của bạn, tìm node "All Block Outputs". Đây là điểm bắt đầu nhận dữ liệu từ camera sau khi một inspection được kích hoạt và xử lý.

Node "All Block Outputs":

  • Chứa kết quả kiểm tra từ tất cả các AI block
  • Bao gồm thông tin chụp ảnh
  • Cung cấp dữ liệu cần thiết để tạo metadata
  • Là nguồn cung cấp cho cả metadata và các quyết định pass/fail

2.2 Hiểu Cấu Trúc Flow

Flow của bạn nên tuân theo mẫu này:

Camera Trigger → AI Processing → All Block Outputs → [Your Custom Logic]

Từ "All Block Outputs" bạn cần hai đường dẫn riêng biệt:

  1. Đường Dẫn Metadata: All Block Outputs → Function (Create Metadata) → Capture Metadata
  2. Đường Dẫn Quyết Định: All Block Outputs → Function (Logic) → Final Pass/Fail
note

Cả metadata và quyết định pass/fail đều phải phân nhánh từ node "All Block Outputs".

Bước 3: Thêm Node Capture Metadata

3.1 Xác Định Node Metadata

  1. Tìm node "Capture Metadata" trong bảng bên trái (phần Overview)
  2. Kéo node "Capture Metadata" vào canvas của flow
  3. Đặt nó trong flow sau trigger nhưng trước khi chụp ảnh

3.2 Vị Trí Node Trong Flow

Cấu trúc flow đúng:

All Block Outputs → Function (Create Metadata) → Capture Metadata

Function (Pass/Fail Logic) → Final Pass/Fail

warning

Node "Final Pass/Fail" là bắt buộc để flow hoạt động đúng cách. Mọi flow đều phải kết thúc với node này.

Bước 4: Cấu Hình Các Trường Metadata

4.1 Thiết Lập Metadata Cơ Bản

  1. Nhấp đúp vào node Capture Metadata
  2. Cấu hình các trường metadata mà bạn muốn theo dõi
  3. Thiết lập nguồn dữ liệu cho từng trường

4.2 Yêu Cầu Về Định Dạng Metadata

Quan Trọng

Metadata phải được định dạng dưới dạng object với:

  • Khóa dạng chuỗi - Tên trường phải là văn bản
  • Giá trị dạng chuỗi hoặc số - Dữ liệu có thể là văn bản hoặc số

Ví dụ định dạng đúng:

{
"part_number": "P12345",
"serial_number": "SN987654",
"operator": "John_Smith",
"shift": "A",
"quantity": 100,
"temperature": 23.5
}

Bước 5: Tạo Function Node Cho Metadata

5.1 Thêm Function Node Để Tạo Metadata

  1. Thêm một node "function" giữa "All Block Outputs" và node "Capture Metadata"
  2. Nhấp đúp vào function node để cấu hình
  3. Function này sẽ trích xuất dữ liệu từ kết quả kiểm tra và tạo metadata

5.2 Trích Xuất Dữ Liệu Từ All Block Outputs

Node "All Block Outputs" cung cấp dữ liệu kiểm tra phong phú. Dưới đây là cách trích xuất:

// Extract data from inspection results
const captureId = msg.payload.capture_id;
const serialNumber = msg.payload.serial_number || "No_Serial";
const inspectionTime = msg.payload.inspection_time || new Date().toISOString();

// Create metadata from inspection data
msg.payload = {
"capture_id": captureId,
"serial_number": serialNumber,
"inspection_time": inspectionTime,
"operator": global.get("current_operator") || "Unknown"
};
return msg;

5.3 Metadata Tĩnh (Giá Trị Cố Định)

Đối với thông tin không thay đổi trong quá trình sản xuất:

// Set static metadata values
msg.payload = {
"recipe_name": "Bolt_Inspection_v2",
"line_number": "Line_3",
"shift": "A_Shift",
"station": "QC_Station_1"
};
return msg;

5.4 Metadata Động (Sử Dụng Dữ Liệu Kiểm Tra)

Đối với thông tin đến từ kết quả kiểm tra:

// Extract inspection data
const captureId = msg.payload.capture_id;
const imageUrl = msg.payload.image_url;
const predictions = msg.payload.classification?.predictions || [];

// Create dynamic metadata
msg.payload = {
"capture_id": captureId,
"part_number": "P" + Date.now(),
"total_rois": predictions.length,
"timestamp": new Date().toISOString(),
"batch": global.get("current_batch") || "Default_Batch"
};
return msg;

Bước 6: Kết Nối Các Luồng Metadata và Pass/Fail

6.1 Cấu Trúc Luồng Bắt Buộc

Mọi luồng đều phải có cả hai đường từ "All Block Outputs":

All Block Outputs → Function (Create Metadata) → Capture Metadata

Function (Pass/Fail Logic) → Final Pass/Fail

6.2 Kết Nối Đường Metadata

  1. Kết nối đầu ra "All Block Outputs" đến đầu vào của function metadata
  2. Kết nối đầu ra của function metadata đến đầu vào "Capture Metadata"
  3. Node Capture Metadata có thể là node kết thúc (không cần kết nối đầu ra)

6.3 Kết Nối Đường Pass/Fail

  1. Kết nối đầu ra "All Block Outputs" đến một function logic pass/fail
  2. Kết nối đầu ra của function logic đến đầu vào "Final Pass/Fail"
  3. Node "Final Pass/Fail" là bắt buộc - mọi luồng đều phải kết thúc tại đây

6.4 Ví Dụ Function Logic Pass/Fail

// Extract inspection result for pass/fail decision
const predictions = msg.payload.classification?.predictions || [];

// Determine if inspection passed (all ROIs passed)
let passed = true;
for (let prediction of predictions) {
if (!prediction.predicted_class.includes("pass")) {
passed = false;
break;
}
}

// Set the pass/fail result
msg.payload = passed;
return msg;

Bước 7: Kiểm Tra Cấu Hình Metadata

7.1 Triển Khai và Kiểm Tra

  1. Nhấp vào nút "Deploy" (góc trên bên phải)
  2. Kích hoạt một lần kiểm tra bằng phương thức trigger đã cấu hình (thủ công, digital input, hoặc PLC)
  3. Xác minh rằng:
    • Đã chụp được hình ảnh
    • Metadata xuất hiện cùng với hình ảnh
    • Đã đưa ra quyết định pass/fail
    • Flow hoàn thành thành công

7.2 Xác Minh Flow Hoàn Chỉnh

Kiểm tra rằng cả hai nhánh đều hoạt động:

Nhánh Metadata:

  • Điều hướng đến Library trong giao diện chính
  • Tìm hình ảnh kiểm tra của bạn
  • Xác minh metadata xuất hiện trong chi tiết hình ảnh

Nhánh Pass/Fail:

  • Kiểm tra rằng kết quả kiểm tra hiển thị trạng thái pass/fail
  • Xác minh node "Final Pass/Fail" đã xử lý chính xác
  • Xác nhận rằng các đầu ra được kết nối (PLCs, đèn báo) phản hồi đúng cách

7.3 Kiểm Tra Các Nguồn Trigger Khác Nhau

Xác minh metadata hoạt động với trigger cụ thể của bạn:

Với Manual Triggers:

  • Sử dụng nút software trigger
  • Xác minh metadata xuất hiện với mỗi lần chụp thủ công

Với Digital Input Triggers:

  • Kích hoạt cảm biến/công tắc bên ngoài
  • Xác nhận metadata được ghi lại cùng với hình ảnh được trigger

Với PLC Triggers:

  • Gửi tín hiệu trigger từ PLC
  • Xác minh metadata bao gồm dữ liệu PLC nếu có

Bước 8: Cấu Hình Metadata Nâng Cao

8.1 Metadata Từ Nhiều Global Variables

Kết hợp dữ liệu từ các nguồn khác nhau được lưu trữ toàn cục:

// Combine data from various global storage
const operatorData = global.get("operator_info") || {};
const productData = global.get("product_info") || {};
const shiftData = global.get("shift_info") || {};

msg.payload = {
"operator": operatorData.name || "Unknown",
"operator_id": operatorData.id || "000",
"product_code": productData.code || "Default",
"product_version": productData.version || "1.0",
"shift": shiftData.current || "Day",
"line_status": "Running",
"timestamp": new Date().toISOString()
};
return msg;

Bước 9: Khắc Phục Sự Cố Metadata

9.1 Các Vấn Đề Thường Gặp

Vấn đềTriệu chứngGiải pháp
Metadata không xuất hiệnKhông có dữ liệu trong LibraryXác minh node metadata nằm trong flow IO Block chính
Metadata sai hình ảnhDữ liệu xuất hiện với các lần chụp không chính xácKiểm tra thời điểm - metadata phải trước khi chụp ảnh
Trigger không hoạt độngKhông chụp được hình ảnhXác minh cấu hình trigger của IO Block
Thiếu trường metadataMột số dữ liệu bị thiếuKiểm tra định dạng payload của function node
Lỗi kiểu dữ liệu saiNode hiển thị trạng thái lỗiĐảm bảo các giá trị chỉ là chuỗi hoặc số

9.2 Debug Flow Metadata

Thêm debug node để khắc phục sự cố:

  1. Thêm debug node sau trigger để xác minh trigger hoạt động
  2. Thêm debug node sau function metadata để kiểm tra payload
  3. Thêm debug node sau Capture Metadata để xác nhận quá trình xử lý
  4. Kiểm tra bảng debug để xem thông báo lỗi

Bước 10: Thực Hành Tốt Nhất

10.1 Thiết Kế Flow

Thiết kế các flow metadata hiệu quả:

  • Đặt metadata sớm trong flow - Thiết lập metadata ngay sau trigger
  • Sử dụng một node metadata duy nhất - Không nhân đôi các node Capture Metadata
  • Duy trì tính liên tục của flow - Metadata phải là một phần của flow kiểm tra chính
  • Xử lý dữ liệu bị thiếu - Luôn cung cấp giá trị mặc định

10.2 Đặt Tên Trường Metadata

Sử dụng tên trường nhất quán, rõ ràng:

  • Sử dụng dấu gạch dưới thay vì khoảng trắng ("part_number" thay vì "part number")
  • Mô tả rõ ràng nhưng ngắn gọn ("operator" thay vì "op")
  • Sử dụng chữ thường để đảm bảo tính nhất quán
  • Tránh các ký tự đặc biệt có thể gây ra sự cố

10.3 Cân Nhắc Về Hiệu Suất

Đối với sản xuất khối lượng lớn:

  • Giảm thiểu kích thước metadata - Chỉ bao gồm thông tin cần thiết
  • Sử dụng kiểu dữ liệu hiệu quả - Số khi có thể, chuỗi ngắn
  • Tránh xử lý phức tạp - Giữ việc tạo metadata đơn giản và nhanh chóng
  • Cache dữ liệu toàn cục - Lưu trữ dữ liệu thường xuyên sử dụng trong biến toàn cục

Thành Công! Hệ Thống Metadata Của Bạn Đã Sẵn Sàng

Cấu hình metadata của bạn hiện có thể:

✅ Đính kèm thông tin tùy chỉnh vào mỗi lần chụp ảnh được kích hoạt

✅ Theo dõi dữ liệu sản xuất đồng bộ với flow kiểm tra

✅ Lưu trữ thông tin có thể tìm kiếm trong thư viện camera

✅ Hiển thị dữ liệu liên quan trong HMI cho người vận hành

✅ Hỗ trợ truy xuất nguồn gốc cho các yêu cầu sản xuất

Bảo Trì Liên Tục

Kiểm Tra Hệ Thống Định Kỳ

  • Xác minh metadata xuất hiện cùng với các lần chụp được kích hoạt
  • Kiểm tra dữ liệu bị thiếu trong các lần chạy sản xuất
  • Giám sát hiệu suất flow với tỷ lệ trigger cao
  • Cập nhật các trường metadata khi yêu cầu thay đổi

Quản Lý Flow

  • Xem xét thời gian metadata trong sản xuất
  • Tối ưu hóa hiệu suất của function node
  • Cập nhật quản lý biến toàn cục
  • Đào tạo người vận hành về hoạt động dựa trên trigger

Các Bước Tiếp Theo

Sau khi thiết lập metadata dựa trên trigger:

  1. Kiểm tra với tất cả các loại trigger đã cấu hình (manual, digital, PLC)
  2. Đào tạo người vận hành về cách sử dụng trigger đúng cho việc thu thập metadata
  3. Thiết lập quản lý biến toàn cục cho dữ liệu động
  4. Tạo các mẫu metadata cho các dòng sản phẩm khác nhau
  5. Triển khai giám sát sản xuất bằng cách sử dụng phân tích metadata

🔗 Xem Thêm