Skip to main content

AI-POWERED DOCS

What do you want to know?

Thiết Lập Metadata

Lưu Ý Về OV10i

OV10i chỉ hỗ trợ mô hình classification. Các tính năng segmentation được đề cập trên trang này có sẵn trên camera OV20iOV80i.

Hướng dẫn này cho bạn cách cấu hình metadata cho hình ảnh của camera OV10i. 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 batch, nhận dạng operator, 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 inspection.

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

  • Hệ thống camera OV10i đã đượ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ả inspection

Metadata Là Gì?

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

  • Được lưu trữ cùng hình ảnh trong thư viện của camera
  • Xuất hiện trên HMI để operator có thể 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 operator (ví dụ: "John_Smith")
  • Thông tin ca làm việc (ví dụ: "A_Shift")
  • Số batch (ví dụ: "Batch_2025_001")
note

Metadata chỉ có thể được lưu khi một inspection hoàn tất. 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 Trình Soạn Thảo Node-RED

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 trình soạn thảo Node-RED

1.2 Xác Nhận Giao Diện Node-RED

Kiểm tra: Bạn sẽ thấy trình soạn thảo flow Node-RED với flow IO Block hiện có và node palette ở 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 flow Node-RED của bạn, hãy 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ả inspection 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à 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 rẽ 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 (mục Overview)
  2. Kéo node "Capture Metadata" vào canvas flow
  3. Đặt nó trong flow sau trigger nhưng trước khi chụp ảnh

3.2 Vị Trí Đặt 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. Mọi flow đều phải kết thúc bằng 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. Double-click 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 Định Dạng Metadata

Quan Trọng

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

  • String keys - Tên trường phải là văn bản
  • String hoặc number values - 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. Double-click 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 lấy 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 Luồng Metadata Và Pass/Fail

6.1 Cấu Trúc Flow Bắt Buộc

Mọi flow đều phải có cả hai đường đi 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 output của "All Block Outputs" tới input của function metadata
  2. Kết nối output của function metadata tới input của "Capture Metadata"
  3. Node Capture Metadata có thể là node kết thúc (không cần kết nối output)

6.3 Đấu Nối Đường Pass/Fail

  1. Kết nối output "All Block Outputs" đến một function logic pass/fail
  2. Kết nối output của function logic đến input "Final Pass/Fail"
  3. Node "Final Pass/Fail" là bắt buộc - mọi flow đề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 Deploy và Kiểm Tra

  1. Nhấn nút "Deploy" (góc trên bên phải)
  2. Kích hoạt một lần inspection 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:
    • Một hình ảnh đã được chụp
    • Metadata xuất hiện cùng với hình ảnh
    • Quyết định pass/fail đã được đưa ra
    • Flow đã hoàn thành thành công

7.2 Xác Minh Toàn Bộ Flow

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

Đường 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

Đường Pass/Fail:

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

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:

Đối Với Trigger Thủ Công:

  • 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

Đối 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 nhận cùng với hình ảnh đã được trigger

Đối 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 áp dụng

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

8.1 Metadata Từ Nhiều Global Variable

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: Xử Lý 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 hình ảnh không đúngKiểm tra thời điểm - metadata phải đến trước khi chụp hình
Trigger không hoạt độngKhông có hình ảnh nào được chụpXá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 giá trị chỉ là string hoặc số

9.2 Debug Luồng Metadata

Thêm các 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 xử lý
  4. Kiểm tra debug panel để xem thông báo lỗi

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

10.1 Thiết Kế Luồng

Thiết kế các luồng metadata hiệu quả:

  • Đặt metadata ở đầu luồng - Thiết lập metadata ngay sau trigger
  • Sử dụng một metadata node duy nhất - Không nhân bản các node Capture Metadata
  • Duy trì tính liên tục của luồng - Metadata phải là một phần của luồng inspection 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 và rõ ràng:

  • Sử dụng dấu gạch dưới thay cho khoảng trắng ("part_number" không phải "part number")
  • Mô tả rõ ràng nhưng súc tích ("operator" không phải "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ả - Dùng số khi có thể, chuỗi ngắn
  • Tránh xử lý phức tạp - Giữ cho 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 global

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 giờ đây 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 luồng inspection

✅ 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 quá trình sản xuất
  • Giám sát hiệu suất luồng với tốc độ trigger cao
  • Cập nhật các trường metadata khi yêu cầu thay đổi

Quản Lý Luồng

  • Xem xét thời gian metadata trong sản xuất
  • Tối ưu hóa hiệu suất function node
  • Cập nhật quản lý biến global
  • Đà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 để chụp metadata
  3. Thiết lập quản lý biến global 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 phân tích metadata

🔗 Xem Thêm