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

Tích Hợp Có Thể Lập Trình (Scriptable Integration)

Từ firmware 2026.10.30, OV Spark Pro có thể nhận dữ liệu từ dây chuyền của bạn, quyết định bằng logic của riêng bạn, và gửi kết quả ra theo định dạng của riêng bạn, tất cả đều ngay trên camera. Có bốn thành phần, và hầu hết các cấu hình chỉ sử dụng một hoặc hai trong số đó:

Thành phầnNó là gìCần code?
VariablesCác giá trị đến từ bên ngoài, chẳng hạn như số serial hoặc số lô từ PLC hoặc MQTT. Mỗi capture lưu lại các giá trị mà nó đã chạy cùngKhông
Recipe scriptJavaScript trên bước Judgment quyết định pass hay fail kèm lý do, thêm metadata và tags, và ghi ra các byte của riêng bạn cho PLCCó
Camera scriptMột script cấp độ camera xuất bản lên MQTT, phản ứng với các tin nhắn đến, và duy trì các bộ đếm và cảnh báoCó
MQTTMQTT client tích hợp sẵn. Khi broker đã được thiết lập, mỗi kết quả inspection đều được publish, không cần script nào cảKhông

Chúng nằm trong mục Integration ở thanh điều hướng bên trái của camera: Variables, Camera Script và Data Connectors. Recipe script nằm ở bước Judgment của mỗi recipe.

Trang Data Connectors liệt kê MQTT, PLC và HTTP API

Recipe script hay camera script​

Recipe scriptCamera script
Thuộc vềMột recipe, và được export cùng với nóCamera, và tiếp tục chạy khi chuyển đổi recipe
Chạy khiVới mỗi inspection, sau khi các tool chạy xong và trước khi PLC thấy kết quảKhi có sự kiện: một kết quả, một tin nhắn MQTT, một thay đổi PLC User Data, một timer
Bộ nhớKhông có bộ nhớ đáng tin cậy: coi mỗi inspection như bắt đầu mớiGiữ trạng thái giữa các sự kiện cho đến khi reload
Giới hạn thời gian25 ms mặc định, tối đa 200 ms1 giây đến lần await đầu tiên của hook, sau đó 50 ms cho mỗi phần tiếp theo
Có thểĐặt pass hoặc fail và lý do, ghi byte PLC User Results, thêm metadata và tagsPublish MQTT, đặt variables, kích hoạt cảnh báo, chạy timers
Không thểSử dụng mạng, giữ trạng thái, sử dụng timersThay đổi phán quyết, ghi byte PLC, chỉnh sửa một capture đã hoàn thành
Quy tắc chung

Nếu PLC cần nó khi Inspection Completed lên mức cao, hãy đưa vào recipe script. Nếu nó đi qua mạng, hoặc phải nhớ điều gì đó giữa các phần, hãy đưa vào camera script.

Hai cái kết nối với nhau thông qua variables: camera script đặt một variable, recipe script đọc nó, và giá trị được lưu cùng với capture, vì vậy bạn luôn có thể thấy quyết định được dựa trên cái gì.

Các cấu hình phổ biến​

Bạn muốnDùng
Lưu số serial hoặc barcode mà PLC gửi kèm với mỗi hình ảnhMột variable liên kết với PLC User Data. Không cần code: mỗi capture đều lưu nó, Library hiển thị nó, và tên file Remote Storage có thể sử dụng nó, ví dụ {camera}/{var.lot} cho thư mục và {var.serial}_{capture_id} làm tên file
Kiểm tra bộ phận so với những gì PLC mong đợiMột recipe script so sánh văn bản OCR hoặc barcode với variable serial và fail với serial differs. Ý tưởng tương tự áp dụng cho số lượng so với số lượng đặt hàng
Lấy dữ liệu từ MES hoặc hệ thống khácMột variable liên kết với một MQTT topic và trường JSON, hoặc một camera script lấy một trường từ tin nhắn của nhà cung cấp và đặt variable
Cho phép operator nhập số lôĐặt variable bằng tay trên trang Variables. Các capture sử dụng giá trị nhập tay sẽ có huy hiệu manual. Đây cũng là cách bạn kiểm tra một script trên bàn thử nghiệm mà không cần PLC
Tìm lại các capture theo lô, hoặc theo mức độ gần với failMột recipe script lưu các giá trị dưới dạng metadata và tag các capture, chẳng hạn như near-miss hoặc review
Gửi dữ liệu của riêng bạn tới PLCMột recipe script đóng gói một số đếm, một bit cho mỗi vùng, hoặc một mã cho mỗi tool vào User Results với pack()
Chạy các kiểm tra khác nhau theo modelPLC gửi loại bộ phận; recipe script đánh dấu các loại bộ phận khác là Not inspected, hoặc bật hoặc tắt một kiểm tra
Dùng logic pass của riêng bạnVí dụ, pass khi ít nhất 78 trên 80 vùng pass, hoặc đưa tên của tool bị fail vào lý do
Không inspect một bộ phận khi dữ liệu bị thiếu hoặc cũMột recipe script trả về Not inspected khi serial chưa đến, hoặc khi giá trị cuối cùng của PLC đã quá cũ
Publish mọi kết quảKhông cần viết gì: với một broker được thiết lập trong Data Connectors, mỗi kết quả và một heartbeat đều được gửi đến MQTT. Sử dụng camera script cho topic hoặc định dạng tin nhắn của riêng bạn
Giám sát dây chuyềnMột camera script kích hoạt cảnh báo sau N lần reject liên tiếp, publish số lượng pass và fail theo ca dưới dạng CSV, hoặc publish một heartbeat
Trả lời các yêu cầu qua MQTTMột camera script trả lời các yêu cầu như last result hoặc value of a variable

Mỗi cấu hình ở trên sử dụng một script đều có sẵn một template trong gallery Templates của trình chỉnh sửa script.

Script workbench​

Cả hai script đều được viết trong cùng một trình chỉnh sửa trên camera, với:

  • Templates: các ví dụ hoạt động được cho mỗi tác vụ ở trên. Chọn một và điền vào tool hoặc variable mà nó sử dụng
  • Autocomplete và panel Reference ghi lại mọi hook, global và type, kèm theo hướng dẫn ngắn gọn
  • Test với camera trực tiếp hoặc các capture gần đây, để bạn không còn phải chuyển qua lại giữa HMI và tab script
  • History: 20 phiên bản đã lưu gần nhất của bạn, để so sánh hoặc quay lại
  • Test chạy bản nháp trên một trigger trực tiếp hoặc trên các capture đã lưu (gần nhất, N cái cuối cùng lên đến 500, một bộ lọc Library, hoặc số capture). Đối với camera script đó là một dry run phát lại các kết quả gần đây mà không gửi bất cứ thứ gì

Recipe script editor với Templates, History, Settings, Test và panel Reference

Test trước khi lưu

Một recipe script bị throw hoặc hết thời gian sẽ làm bộ phận trở thành Not inspected và đặt PLC User Results về 0. Chạy Test với một bộ phận fail cũng như một bộ phận tốt trước khi lưu, và giữ script ngắn gọn: thời gian của nó cộng thêm vào mỗi chu kỳ.

Những điều cần biết​

  • Variables, scripts và cài đặt MQTT đi kèm với recipe exports. Mật khẩu và chứng chỉ không được export: nếu nguồn sử dụng credentials mà đích không có, MQTT đến ở trạng thái tắt; nếu không nó giữ cài đặt của nguồn
  • HTTP API bây giờ trả về kết quả ở cùng định dạng như MQTT và các script. Nếu bạn đã tích hợp với 2026.10.13, hãy xem các thay đổi trường trên trang đó
  • Chưa có: kích hoạt một inspection hoặc chuyển đổi recipe từ camera script (PLC và HTTP vẫn làm điều đó), TCP và OPC-UA, và một widget HMI để hiển thị hoặc đặt một variable

Đi đến đâu tiếp theo​