跳到主要內容

AI 驅動文件

您想了解什麼?

可程式設計整合

從韌體 2026.10.30 開始,OV Spark 可以從您的產線接收資料、使用您自己的邏輯進行判斷,並以您自己的格式傳送結果,這一切都在相機上完成。共有四個組成部分,大多數場景只需使用其中一到兩個:

組成部分簡介需要程式碼?
Variables從外部傳入的值,例如來自 PLC 或 MQTT 的序列號或批號。每次捕獲都會儲存其執行時所使用的值否
Recipe script在判定步驟上執行的 JavaScript,決定通過或失敗並給出原因、新增後設資料和標籤,併為 PLC 寫入您自己的位元組資料是
Camera script一個相機級指令碼,可釋出到 MQTT、響應傳入的訊息,並維護計數器和告警是
MQTT內建的 MQTT 客戶端。一旦配置了 broker,每次檢測結果都會自動釋出,無需任何指令碼否

它們位於相機左側導航欄的 Integration 下:Variables、Camera Script 和 Data Connectors。recipe script 位於每個程式的判定步驟中。

Data Connectors 頁面,列出 MQTT、PLC 和 HTTP API

recipe script 還是 camera script​

Recipe scriptCamera script
歸屬於單個程式,並隨程式一起匯出相機本身,在程式切換時持續執行
執行時機每次檢測時執行,在工具執行之後、PLC 看到結果之前當某事件發生時:一次結果、一條 MQTT 訊息、一次 PLC User Data 變化、一個定時器
記憶體沒有可靠的記憶體:將每次檢測視為從頭開始在事件之間保持狀態,直到重新載入
時間限制預設 25 ms,最多 200 ms到某個 hook 首次 await 之前 1 秒,之後每個零件 50 ms
可以做設定通過或失敗及原因、寫入 PLC User Results 位元組、新增後設資料和標籤釋出 MQTT、設定變數、觸發告警、執行定時器
不能做使用網路、保持狀態、使用定時器更改判定、寫入 PLC 位元組、編輯已完成的捕獲
經驗法則

如果 PLC 在 Inspection Completed 變高時就需要用到的資料,就放在 recipe script 中。如果要通過網路傳送,或需要跨零件記住某些資訊,就放在 camera script 中。

兩者通過變數相連:camera script 設定一個變數,recipe script 讀取它,該值會隨捕獲一起儲存,這樣您始終可以看到判定所依據的內容。

常見場景​

您希望使用方式
儲存 PLC 隨每張影象傳送的序列號或條碼在 PLC User Data 上繫結一個變數。無需程式碼:每次捕獲都會儲存它,Library 中會顯示,遠端儲存的檔名也可以使用它,例如資料夾用 {camera}/{var.lot},檔名用 {var.serial}_{capture_id}
對照 PLC 預期值檢查零件用一個 recipe script,將 OCR 文字或條碼與序列號變數進行比較,並以 serial differs 判為失敗。同樣的思路可用於將計數與訂單數量進行比對
從 MES 或其他系統獲取資料將變數繫結到某個 MQTT 主題和 JSON 欄位,或使用 camera script 從廠商的訊息中提取某個欄位並設定變數
讓操作員輸入批號在 Variables 頁面手動設定變數。使用手動輸入值的捕獲會帶有 manual 徽章。這也是在沒有 PLC 的工作臺上測試指令碼的方法
之後按批號或按接近失敗的程度查詢捕獲用一個 recipe script,將值儲存為後設資料併為捕獲打標籤,例如 near-miss 或 review
向 PLC 傳送您自己的資料用一個 recipe script,通過 pack() 將計數、每個區域一個 bit,或每個工具一個程式碼打包進 User Results
按型號執行不同的檢測PLC 傳送零件型別;recipe script 將其他零件型別標記為 Not inspected,或開啟/關閉某項檢測
使用您自己的通過邏輯例如,80 個區域中至少 78 個通過時判為通過,或將失敗工具的名稱寫入原因中
當資料缺失或過期時不檢測零件用一個 recipe script,當序列號尚未到達或 PLC 的最後一個值過舊時,返回 Not inspected
釋出每一次結果無需編寫程式碼:在 Data Connectors 下配置好 broker 後,每次結果和心跳都會傳送到 MQTT。如需您自己的主題或訊息格式,可使用 camera script
監控產線用一個 camera script,在連續 N 次拒收後觸發告警,以 CSV 格式釋出每班次的通過與失敗計數,或釋出心跳
通過 MQTT 響應請求用一個 camera script,響應諸如 last result 或 value of a variable 等請求

以上每個需要指令碼的場景,在指令碼編輯器的 Templates 庫中都有現成的模板。

指令碼工作臺​

兩種指令碼都在相機上的同一編輯器中編寫,具有以下功能:

  • 模板:針對上述每種任務的可用示例。選擇一個,並填入它所使用的工具或變數
  • 自動補全和參考面板,記錄每個 hook、全域性變數和型別,並附有簡短指南
  • 針對實時相機或近期捕獲進行測試,無需在 HMI 和指令碼選項卡之間切換
  • 歷史記錄:最近 20 個儲存版本,可供比較或回滾
  • 測試在實時觸發或已儲存捕獲上執行當前草稿(最新一次、最近 N 次最多 500 次、庫篩選條件或捕獲編號)。對於相機指令碼,這是空執行,重放近期結果而不傳送任何內容

包含模板、歷史記錄、設定、測試和參考面板的程式指令碼編輯器

儲存前先測試

丟擲異常或超時的程式指令碼會使該部件被標記為未檢測,並將 PLC User Results 清零。儲存前,使用失敗件和合格件分別執行測試,並保持指令碼精簡:其執行時間會累加到每個週期中。

須知事項​

  • 變數、指令碼和 MQTT 設定會隨程式匯出一同遷移。密碼和證書不會匯出:如果源端使用了目標端沒有的憑據,MQTT 到達時將處於關閉狀態;否則保留源端的設定
  • HTTP API 現在以與 MQTT 和指令碼相同的格式返回結果。如果您基於 2026.10.13 版本進行了整合,請查閱該頁面上的欄位變更說明
  • 尚未支援:從相機指令碼觸發檢測或切換程式(仍由 PLC 和 HTTP 負責)、TCP 和 OPC-UA,以及用於顯示或設定變數的 HMI 小元件

後續閱讀​