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ì?

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:

Màn hình HTTP API của OV Spark Pro với Base URL, phiên bản API và Authentication, danh sách kiểm tra Ready to trigger, cùng các tab Endpoints và Examples

Khu vựcNội dung cung cấp
ConnectionBase 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 specMô 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à ExamplesMọ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.

  1. Production mode. Chuyển camera ra khỏi Setup từ thanh trên cùng, hoặc gọi POST /mode/run.
  2. 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.
  3. 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.

Enabled sources trong External triggering: GPIO, PLC / Fieldbus, và HTTP với POST /trigger

HTTP là một trong nhiều nguồn

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ĩaCần làm gì
200Kế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_msPoll GET /results?trigger_id= với trigger_id đã trả về
409Camera chưa sẵn sàngKhắc phục điều kiện được nêu trong code: production mode, recipe đang hoạt động, hoặc nguồn HTTP
503Tình trạng tạm thời, chẳng hạn một inspection vẫn đang chạyThử lại
Gửi từng trigger một

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.

Xử lý not_inspected như một NG

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ọiTrả về
GET /results/latestKết quả mới nhất
GET /resultsCá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}/imageHình ảnh đã được inspect, dưới dạng JPEG
GET /results/{id}/tools/{tool_id}/heatmapHeatmap của một ROI, dưới dạng PNG
GET /results/{id}/tools/{tool_id}/maskSegmentation mask của một ROI, dưới dạng PNG
GET /results/streamLuồ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ómLệnh gọi
DeviceGET /health, GET /device, GET /status, GET /whoami, GET /openapi.yaml
RecipesGET /recipes, GET /recipes/active, POST /recipes/{id}/activate
StatisticsGET /statistics, POST /statistics/reset, GET /statistics/stream
ControlPOST /mode/run, POST /mode/setup
FieldbusGET /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.

Chờ quá trình chuyển chế độ hoàn tất

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
Cấp cho mỗi hệ thống kết nối một tài khoản riêng

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​