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, 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:

Màn hình HTTP API của OV Spark với Base URL, phiên bản API và Authentication, danh sách kiểm tra Ready to trigger, và 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 đượ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à 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 điều kiện đều được đáp ứng, và lỗi sẽ chỉ ra điều kiện nào không đạt.

  1. Run mode. Chuyển camera ra khỏi Setup từ thanh trên cùng, hoặc gọi POST /mode/run.
  2. 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.
  3. Accepts HTTP triggers. Trong recipe đang hoạt động, mở Step 2: Triggering, chọn External, và đánh dấu HTTP trong Enabled sources.

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

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

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ĩaViệc Cần Làm
200Kế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_msPoll GET /results?trigger_id= với trigger_id mà nó trả về
409Camera chưa sẵn sàngKhắ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ạyThử lại
Gửi mỗi lần một trigger

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.

Xem not_inspected như một trường hợp bị từ chối

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ọiTrả Về
GET /results/latestKết quả gần 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ả, với verdict 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 region, dưới dạng PNG
GET /results/{id}/tools/{tool_id}/maskSegmentation mask của một region, 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: 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ó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ằ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.

Chờ việc chuyển đổi mode 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 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
Cấp cho mỗi hệ thống được 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 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​