TÀI LIỆU ĐƯỢC HỖ TRỢ BỞI AI
Bạn muốn biết điều gì?
HTTP API
HTTP API cho phép hệ thống MES, SCADA hoặc phần mềm của riêng bạn làm việc trực tiếp với camera qua mạng, có hoặc không có PLC. Từ API bạn có thể:
- Kích hoạt một inspection và nhận kết quả trong cùng một lệnh gọi
- Đọc các kết quả trước đây, hoặc theo dõi chúng theo thời gian thực khi hoàn tất, cùng với hình ảnh, heatmap và segmentation mask
- Liệt kê các recipe và chuyển đổi recipe đang hoạt động
- Chuyển đổi giữa chế độ Setup và Production
- Đọc và đặt lại bộ đếm OK/NG
Vào Integration → HTTP API:

| Khu vực | Nội dung cung cấp |
|---|---|
| Connection | Base URL mà mọi lệnh gọi bắt đầu, ví dụ http://10.250.0.100/api/integration/v1, phiên bản API, và liệu các lệnh gọi có cần tên người dùng và mật khẩu hay không |
| Download OpenAPI spec | Mô tả có thể đọc bằng máy của mọi endpoint, cùng với các tham số và phản hồi. Hãy đưa cho các nhà phát triển của bạn, hoặc tải vào Postman hoặc bất kỳ công cụ OpenAPI nào |
| Ready to trigger? | Danh sách kiểm tra trực tiếp những điều kiện phải đáp ứng trước khi POST /trigger hoạt động |
| Endpoints và Examples | Mọi endpoint, được nhóm theo chức năng, và các lệnh gọi mẫu sẵn sàng để sao chép |
Trước lần trigger đầu tiên
Bảng Ready to trigger? kiểm tra ba điều. POST /trigger sẽ bị từ chối cho đến khi cả ba đều đạt, và thông báo lỗi sẽ nêu rõ điều kiện nào không đạt.
- Production mode. Chuyển camera ra khỏi Setup từ thanh trên cùng, hoặc gọi
POST /mode/run. - Recipe đang hoạt động. Phải có một recipe đang hoạt động. Kích hoạt từ All Recipes, hoặc gọi
POST /recipes/{id}/activate. - Chấp nhận HTTP trigger. Trong recipe đang hoạt động, mở Step 2: Triggering, chọn External, và tích HTTP trong Enabled sources.

Bạn có thể tích nhiều hơn một nguồn. Một recipe có thể chấp nhận hardware trigger từ dây chuyền và HTTP trigger từ phần mềm của bạn cùng lúc. Một nguồn không được tích sẽ bị bỏ qua, ngay cả khi có tín hiệu gửi đến.
Kích hoạt một inspection
curl -X POST http://10.250.0.100/api/integration/v1/trigger \
-H "Content-Type: application/json" \
-d '{"wait_ms": 5000}'
Lệnh gọi sẽ chờ tối đa wait_ms mili giây (mặc định 5000, tối đa 30000) để inspection hoàn tất:
| Phản hồi | Ý nghĩa | Cần làm gì |
|---|---|---|
| 200 | Kết quả đã hoàn tất | Đọc judgment: pass, fail hoặc not_inspected |
| 202 | Đã được chấp nhận, nhưng chưa hoàn tất trong wait_ms | Poll GET /results?trigger_id= với trigger_id đã trả về |
| 409 | Camera chưa sẵn sàng | Khắc phục điều kiện được nêu trong code: production mode, recipe đang hoạt động, hoặc nguồn HTTP |
| 503 | Tình trạng tạm thời, chẳng hạn một inspection vẫn đang chạy | Thử lại |
Camera chỉ xử lý một trigger tại một thời điểm. Một trigger được gửi trong khi trigger trước đó vẫn đang chạy sẽ bị từ chối với mã 503, trừ khi Image trigger buffer của recipe cho phép nó chờ. Hãy gửi trigger tiếp theo sau khi phản hồi của trigger trước đó đã nhận được.
not_inspected có nghĩa là mọi inspection tool đều bị bỏ qua, thường do alignment không tìm thấy bộ phận. Không có gì được kiểm tra, vì vậy hãy xử lý nó như một NG, không bao giờ xem là OK.
Đọc kết quả
| Lệnh gọi | Trả về |
|---|---|
GET /results/latest | Kết quả mới nhất |
GET /results | Các kết quả, mới nhất trước, có thể lọc theo recipe hoặc trigger |
GET /results/{id} | Một kết quả, cùng với judgment của từng tool |
GET /results/{id}/image | Hình ảnh đã được inspect, dưới dạng JPEG |
GET /results/{id}/tools/{tool_id}/heatmap | Heatmap của một ROI, dưới dạng PNG |
GET /results/{id}/tools/{tool_id}/mask | Segmentation mask của một ROI, dưới dạng PNG |
GET /results/stream | Luồng trực tiếp các kết quả khi chúng hoàn tất, từ mọi nguồn trigger |
GET /results/stream sử dụng Server-Sent Events: giữ một kết nối mở và mỗi inspection hoàn tất sẽ đến ngay khi xảy ra, dù được kích hoạt qua HTTP, bởi PLC hay bởi cảm biến. Cách này thường đơn giản hơn so với polling.
Mỗi tool báo cáo ok, ng, indeterminate hoặc not_applicable, và kết quả tổng thể báo cáo pass, fail hoặc not_inspected.
Các lệnh gọi khác
| Nhóm | Lệnh gọi |
|---|---|
| Device | GET /health, GET /device, GET /status, GET /whoami, GET /openapi.yaml |
| Recipes | GET /recipes, GET /recipes/active, POST /recipes/{id}/activate |
| Statistics | GET /statistics, POST /statistics/reset, GET /statistics/stream |
| Control | POST /mode/run, POST /mode/setup |
| Fieldbus | GET /fieldbus, GET /fieldbus/descriptor (tệp EDS hoặc GSDML cho giao thức đang hoạt động) |
Một recipe được xác định bởi số của nó, cùng PLC recipe ID mà PLC dùng để chọn, được đặt ở Step 5: Outputs.
Sau POST /mode/run, hãy poll GET /status cho đến khi mode là run và mode_changing là false trước khi trigger. Quá trình chuyển chế độ mất một lúc để recipe nạp xong.
Đăng nhập và bảo mật
Khi camera chưa có người dùng Admin, API không cần thông tin xác thực. Khi đã có Admin, mọi lệnh gọi ngoại trừ /health, /whoami và /openapi.yaml đều cần tên người dùng và mật khẩu của một tài khoản camera, gửi dưới dạng HTTP Basic authentication:
curl -u line3-mes:PASSWORD http://10.250.0.100/api/integration/v1/results/latest
Tạo một tài khoản cho mỗi hệ thống trong Users and Permissions, để Audit Logs cho biết hệ thống nào đã làm gì. Hãy cấp vai trò thấp nhất đủ để thực hiện công việc; GET /whoami với thông tin của tài khoản đó sẽ liệt kê chính xác những gì tài khoản được phép gọi. Bật HTTPS trong System Settings để mật khẩu không truyền qua mạng dưới dạng văn bản thuần.
API chỉ mở rộng trong /api/integration/v1: các endpoint và trường mới có thể xuất hiện, nhưng những cái hiện có sẽ không bao giờ thay đổi ý nghĩa hoặc biến mất. Mã viết dựa trên API hôm nay sẽ tiếp tục hoạt động sau khi cập nhật firmware.
Tiếp theo nên xem
- Step 2: Triggering, để bật nguồn HTTP
- Users and Permissions, để tạo tài khoản cho mỗi hệ thống
- Industrial Ethernet, nếu cũng có PLC tham gia
- Remote Storage, để gửi hình ảnh và kết quả đến một file server thay vì ở đây