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.

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ác | Bất kỳ broker MQTT 3.1.1 hoặc 5 nào; bạn tự điền mọi trường |

| Thiết lập | Ghi chú |
|---|---|
| Address và Port | Tên host hoặc địa chỉ IP của broker. Port mặc định 1883 |
| MQTT version | 5 (mặc định) hoặc 3.1.1 |
| Security | None, 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 |
| Advanced | Client 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.
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
| Message | Topic mặc định | Ghi chú |
|---|---|---|
| Inspection results | overview/<serial>/results | Mộ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ó |
| Heartbeat | overview/<serial>/heartbeat | Mỗi N giây (5 trở lên, hoặc tắt), ở QoS 0 |
| Online status | overview/<serial>/status | Mộ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.
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_sourcecho biết điều gì đã quyết định verdict: các rules, recipe script, hoặcscript_errorkhi script lỗiruleslà verdict của các rules, ngay cả khi script quyết địnhvarschứa các biến mà inspection đã lưuimage.urllấ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.
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ì
- Camera script, cho topics và định dạng message của riêng bạn
- Biến
- HTTP API