跳到主要內容

AI 驅動文件

您想了解什麼?

可程式設計整合

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

部分說明需要程式碼?
變數從外部傳入的值,例如來自 PLC 或 MQTT 的序列號或批號。每次捕獲都會儲存其執行時所用的值否
程式指令碼判定步驟上的 JavaScript,用於帶原因地判定通過或失敗、新增後設資料和標籤,併為 PLC 寫入您自己的位元組是
相機指令碼一個相機級指令碼,用於向 MQTT 釋出訊息、響應傳入訊息,並維護計數器和告警是
MQTT內建的 MQTT 客戶端。配置好 broker 後,每條檢測結果都會被髮布,無需任何指令碼否

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

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

程式指令碼還是相機指令碼​

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

如果 PLC 需要在 Inspection Completed 變為高電平時就得到它,就放到程式指令碼中。如果要通過網路傳送,或需要在不同部分之間記住某些內容,就放到相機指令碼中。

兩者通過變數連線:相機指令碼設定變數,程式指令碼讀取該變數,該值會隨捕獲一起儲存,這樣您始終可以檢視判定所依據的內容。

常見設定​

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

上述使用指令碼的每種設定,在指令碼編輯器的 Templates 庫中都有現成的模板。

指令碼工作臺​

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

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

帶有模板、歷史、設定、測試和參考面板的程式指令碼編輯器

儲存前請先測試

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

須知事項​

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

後續步驟​