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 位于每个程序的判定步骤中。

recipe script 还是 camera script
| Recipe script | Camera 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 小组件