AI 驱动文档
您想了解什么?
可编程集成
从固件 2026.10.30 开始,OV Spark Pro 可以从产线接收数据,使用您自己的逻辑进行判定,并以您自己的格式发送结果,全部在相机上完成。共有四个部分,大多数设置只会用到其中一两个:
| 部分 | 说明 | 需要代码? |
|---|---|---|
| 变量 | 从外部传入的值,例如来自 PLC 或 MQTT 的序列号或批号。每次捕获都会保存其运行时所用的值 | 否 |
| 程序脚本 | 判定步骤上的 JavaScript,用于带原因地判定通过或失败、添加元数据和标签,并为 PLC 写入您自己的字节 | 是 |
| 相机脚本 | 一个相机级脚本,用于向 MQTT 发布消息、响应传入消息,并维护计数器和告警 | 是 |
| MQTT | 内置的 MQTT 客户端。配置好 broker 后,每条检测结果都会被发布,无需任何脚本 | 否 |
它们位于相机左侧导航栏的 Integration 下:Variables、Camera Script 和 Data Connectors。程序脚本位于每个程序的 判定 步骤上。

程序脚本还是相机脚本
| 程序脚本 | 相机脚本 | |
|---|---|---|
| 归属 | 单个程序,并随之导出 | 相机本身,在程序切换时保持运行 |
| 运行时机 | 每次检测时运行,在工具之后、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 小部件