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, hệ thống 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 đó, hoặc theo dõi trực tiếp khi chúng 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à Run
- Đọc và đặt lại bộ đếm pass/fail
Đi đến 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 được bằng máy của mọi endpoint, với các tham số và phản hồi. Hãy cung cấp 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 về những gì phải đú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 điều kiện đều được đáp ứng, và lỗi sẽ chỉ ra điều kiện nào không đạt.
- Run mode. Chuyển camera ra khỏi Setup từ thanh trên cùng, hoặc gọi
POST /mode/run. - Active recipe. Một recipe phải đang hoạt động. Kích hoạt một recipe từ All Recipes, hoặc gọi
POST /recipes/{id}/activate. - Accepts HTTP triggers. Trong recipe đang hoạt động, mở Step 2: Triggering, chọn External, và đánh dấu HTTP trong Enabled sources.

Bạn có thể đánh dấu nhiều nguồn. Một recipe có thể chấp nhận trigger phần cứng trên dây chuyền và trigger HTTP từ phần mềm của bạn cùng lúc. Một nguồn không được đánh dấu sẽ bị bỏ qua, ngay cả khi có thứ gì đó đang gửi đến nó.
Trigger 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 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 | Việc Cần Làm |
|---|---|---|
| 200 | Kết quả đã hoàn tất | Đọc judgment: pass, fail hoặc not_inspected |
| 202 | Đã chấp nhận, nhưng không hoàn tất trong wait_ms | Poll GET /results?trigger_id= với trigger_id mà nó trả về |
| 409 | Camera chưa sẵn sàng | Khắc phục những gì code chỉ ra: run mode, active recipe, hoặc nguồn HTTP |
| 503 | Điều kiện tạm thời, chẳng hạn như 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 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 trước đó đã đến.
not_inspected có nghĩa là mọi inspection tool đã bị bỏ qua, thường là 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 trường hợp fail, không bao giờ xem như pass.
Đọc kết quả
| Lệnh Gọi | Trả Về |
|---|---|
GET /results/latest | Kết quả gần 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ả, với verdict 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 region, dưới dạng PNG |
GET /results/{id}/tools/{tool_id}/mask | Segmentation mask của một region, 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: hãy giữ một kết nối mở và mỗi inspection đã hoàn tất sẽ đến khi nó xảy ra, bất kể nó được trigger qua HTTP, bởi PLC hay bởi cảm biến. Điều đó 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ằng số của nó, cùng PLC recipe ID mà PLC sử dụng để chọn nó, được thiết lập tại 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 bạn trigger. Việc chuyển đổi mode mất một khoảnh khắc trong khi recipe được tải.
Đă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, được 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 thấy 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 xác thực của tài khoản đó liệt kê chính xác những gì 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ỉ phát triển 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ó không bao giờ thay đổi ý nghĩa hoặc biến mất. Mã được 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.
Các bước tiếp theo
- Step 2: Triggering, để kích hoạt nguồn HTTP
- Users and Permissions, để tạo một tài khoản cho mỗi hệ thống
- Industrial Ethernet, nếu PLC cũng được tham gia
- Remote Storage, để gửi hình ảnh và kết quả đến một file server thay thế