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ần | Nó là gì | Cần code? |
|---|---|---|
| Variables | Cá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ùng | Không |
| Recipe script | JavaScript 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 PLC | Có |
| Camera script | Mộ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áo | Có |
| MQTT | MQTT 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.

Recipe script hay camera script
| Recipe script | Camera 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 khi | Vớ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ới | Giữ trạng thái giữa các sự kiện cho đến khi reload |
| Giới hạn thời gian | 25 ms mặc định, tối đa 200 ms | 1 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à tags | Publish 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 timers | Thay đổi phán quyết, ghi byte PLC, chỉnh sửa một capture đã hoàn thành |
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ốn | Dùng |
|---|---|
| Lưu số serial hoặc barcode mà PLC gửi kèm với mỗi hình ảnh | Mộ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 đợi | Mộ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ác | Mộ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 fail | Mộ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 PLC | Mộ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 model | PLC 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ạn | Ví 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ền | Mộ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 MQTT | Mộ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ì

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
- Variables
- Recipe script, với một playground bạn có thể thử trong trình duyệt
- Camera script
- MQTT