跳到主要内容

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 小组件

后续阅读​