Chuyển đến nội dung chính

TÀI LIỆU ĐƯỢC HỖ TRỢ BỞI AI

Bạn muốn biết điều gì?

MQTT

OV Spark Pro có sẵn MQTT client tích hợp. Nó kết nối đến broker của bạn, trên mạng nội bộ hoặc trên cloud, và:

  • publish mọi kết quả inspection dưới dạng JSON, mà không cần bất kỳ script nào
  • publish một heartbeat và trạng thái online của nó
  • nhận giá trị, chẳng hạn như số lot hiện tại, vào biến

Nó hỗ trợ MQTT 3.1.1 và 5, với TCP thuần, TLS hoặc mutual TLS (chứng chỉ client).

Mở Integration > Data Connectors và chọn MQTT.

Tổng quan MQTT: gửi kết quả, nhận giá trị, viết script cho các message của riêng bạn, và các loại broker

Thiết lập​

Thiết lập gồm ba bước.

1. Kết nối đến broker​

Chọn loại broker để điền sẵn các thiết lập điển hình, bạn có thể thay đổi sau:

Loại brokerĐiển hình
Plant broker (Mosquitto, HiveMQ, EMQX)Port 1883, hoặc 8883 với TLS
Ignition / SCADA (Ignition MQTT Distributor và tương tự)Port 1883
Cloud broker (AWS IoT, Azure, HiveMQ Cloud và tương tự)Port 8883 với TLS
Loại khácBất kỳ broker MQTT 3.1.1 hoặc 5 nào; bạn tự điền mọi trường

Kết nối đến broker của bạn: địa chỉ, port, phiên bản MQTT, bảo mật và kiểm tra kết nối

Thiết lậpGhi chú
Address và PortTên host hoặc địa chỉ IP của broker. Port mặc định 1883
MQTT version5 (mặc định) hoặc 3.1.1
SecurityNone, TLS, hoặc Mutual TLS (chứng chỉ client). TLS không có chứng chỉ CA sẽ sử dụng trust store tích hợp sẵn của camera; mutual TLS cần CA, chứng chỉ client và khóa client
Username và passwordĐể trống nếu broker cho phép kết nối ẩn danh
AdvancedClient ID (mặc định là serial của camera), keep-alive (30 giây) và clean session (bật)

Kiểm tra kết nối sẽ chạy một giây sau khi bạn ngừng nhập: nó tra cứu tên host, kết nối đến port, kiểm tra TLS và đăng nhập, từng bước một. Các thiết lập được lưu khi bạn nhấn Save and continue ở mỗi bước, và MQTT vẫn tắt cho đến bước 3.

Sử dụng TLS trên mạng nhà máy

None gửi mọi thứ không mã hóa, bao gồm cả password. Điều đó chấp nhận được trên một mạng máy biệt lập. Hãy sử dụng TLS nếu lưu lượng đi qua mạng nhà máy hoặc văn phòng, và mutual TLS cho các cloud broker yêu cầu chứng chỉ client.

2. Chọn nội dung để gửi​

MessageTopic mặc địnhGhi chú
Inspection resultsoverview/<serial>/resultsMột message mỗi inspection trong production, với QoS bạn chọn (mặc định 1). Summary bỏ qua detail của từng tool; Full bao gồm cả nó
Heartbeatoverview/<serial>/heartbeatMỗi N giây (5 trở lên, hoặc tắt), ở QoS 0
Online statusoverview/<serial>/statusMột {"status":"online"} được retain, và một last-will {"status":"offline"} mà broker sẽ gửi nếu camera mất kết nối

Bạn có thể thay đổi từng topic, ví dụ thành plant/line3/results.

3. Bật MQTT​

Bật MQTT, sau đó theo dõi mọi message được gửi đi tại Monitor > Topics and messages.

Kết quả không được retain

Các message kết quả được publish với retain tắt, nên một subscriber kết nối sau đó sẽ không nhận được một kết quả cũ như thể nó là mới. Để giữ kết quả cuối cùng khả dụng, hãy tự publish nó từ camera script với retain: true, hoặc đọc nó từ HTTP API.

Một message kết quả trông như thế nào​

Cùng một tài liệu được sử dụng bởi MQTT, HTTP API và onResult của camera script. Một kết quả Full, đã rút gọn:

{
"schema_version": 1,
"serial": "5F9FE801",
"id": "01a17216-f035-7ec5-adae-b90b6a0868a8",
"recipe": { "id": 3, "name": "Kit tray" },
"trigger": { "id": 420596, "source": "plc" },
"image": { "width": 2592, "height": 1944, "url": "/api/integration/v1/results/01a17216-f035-7ec5-adae-b90b6a0868a8/image" },
"captured_at": "2026-10-25T08:04:28.341Z",
"processing_ms": 82,
"judgment": "fail",
"pass": false,
"not_inspected": false,
"reason": "serial differs",
"judgment_source": "script",
"rules": { "judgment": "pass", "pass": true, "not_inspected": false },
"vars": { "serial": "SN-24-118734" },
"tools": [
{
"id": "01a15f8b-da07-7e42-8b3e-d3edaff79428",
"type": "classical.barcode",
"name": "Label",
"plc_slot": 1,
"judgment": "pass",
"score": 1,
"execute_ms": 4,
"detail": { "decoded": true, "data": "0104012345678901", "symbology": "data_matrix" }
}
],
"metadata": {},
"tags": [],
"plc_inspection_id": 1234,
"phase": "production"
}
  • judgment_source cho biết điều gì đã quyết định verdict: các rules, recipe script, hoặc script_error khi script lỗi
  • rules là verdict của các rules, ngay cả khi script quyết định
  • vars chứa các biến mà inspection đã lưu
  • image.url lấy hình ảnh qua HTTP API

Heartbeat thì nhỏ:

{"schema_version":1,"serial":"5F9FE801","hostname":"line3-cam","recipe":"Kit tray","phase":"production","uptime_s":3600,"mqtt":"connected","ts":"2026-10-25T08:04:28.341Z"}

Nhận giá trị​

Để đưa một giá trị vào, hãy khai báo một biến với nguồn là MQTT: topic, và với JSON là đường dẫn đến trường. Mỗi inspection sau đó sẽ lưu giá trị mới nhất. Đối với những trường hợp phức tạp hơn, chẳng hạn như chọn một trường từ message của một vendor hoặc đáp ứng yêu cầu, hãy sử dụng camera script.

Exports sẽ ở trạng thái tắt

Thiết lập MQTT đi kèm với recipe exports, nhưng passwords và certificates không bao giờ được export. Nếu camera nguồn sử dụng credentials mà camera đích không có, MQTT sẽ đến ở trạng thái tắt. Nếu không, nó giữ nguyên trạng thái bật hoặc tắt của nguồn, nên việc import vào một camera có thể truy cập broker ẩn danh có thể bắt đầu publish ngay lập tức. Hãy kiểm tra Data Connectors sau mỗi lần import.

Tiếp theo nên xem gì​