TÀI LIỆU ĐƯỢC HỖ TRỢ BỞI AI
Bạn muốn biết điều gì?
MQTT
OV Spark 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, không cần script nào cả
- publish một heartbeat và trạng thái online
- nhận các giá trị, chẳng hạn như số lô hiện tại, vào biế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 thông thường, mà bạn có thể thay đổi:
| Loại broker | Thông thường |
|---|---|
| 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ự thiết lập từng 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ử dụng trust store tích hợp của camera; mutual TLS cần một CA, một chứng chỉ client và một client key |
| Username và password | Để trống nếu broker cho phép kết nối ẩn danh |
| Advanced | Client ID (mặc định là số serial của camera), keep-alive (30 s) và clean session (bật) |
Kiểm tra kết nối chạy một giây sau khi bạn ngừng gõ: 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 tại 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ạng máy cô lập. 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 cần gửi
| Message | Topic mặc định | Ghi chú |
|---|---|---|
| Inspection results | overview/<serial>/results | Một message cho mỗi inspection trong production mode, với QoS bạn chọn (mặc định là 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), với QoS 0 |
| Online status | overview/<serial>/status | Một {"status":"online"} được retained, và một last-will {"status":"offline"} mà broker 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 lên, rồi 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 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.
Message kết quả trông như thế nào
Cùng một document được 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 rule, recipe script, hoặcscript_errorkhi script gặp lỗiruleslà verdict của các rule, kể cả khi script là bên quyết địnhvarschứa các biến mà inspection đã lưuimage.urllấy hình ảnh qua HTTP API
Heartbeat nhỏ gọn:
{"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 MQTT làm nguồn: topic, và đối với JSON là path đến field. Mỗi inspection sau đó sẽ lưu giá trị mới nhất. Đối với bất kỳ điều gì phức tạp hơn, chẳng hạn như chọn một field từ message của vendor hoặc trả lời các request, hãy sử dụng camera script.
Các thiết lập MQTT đi kèm với recipe export, nhưng password và chứng chỉ không bao giờ được export. Nếu camera nguồn sử dụng credentials mà camera đích không có, MQTT đến ở trạng thái tắt. Ngược lại, nó giữ trạng thái bật hoặc tắt của nguồn, nên một import vào 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 đi đâu
- Camera script, cho các topic và định dạng message của riêng bạn
- Biến
- HTTP API