AI 驱动文档
您想了解什么?
第 5 步:输出
判定决定了结果。输出决定由谁接收该结果:通过现场总线通知 PLC、通过相机上的接线通知,或两者兼用。如果一个 PLC 读取多个程序,请先在所有程序之间统筹规划槽位:
PLC 槽位规划器
将各程序并排对照,让每个槽位在所有程序中含义一致。
| 插槽 | 总线数据 | |||
|---|---|---|---|---|
| 1 | 96 至 119 | 含义变化 | ||
| 2 | 120 至 143 | 含义变化 | ||
| 3 | 144 至 167 | |||
| 4 | 168 至 191 | |||
| 5 | 192 至 215 | |||
| 6 | 216 至 239 | |||
| 7 | 240 至 263 | |||
| 8 | 264 至 287 |
| 字节 | 字段 | 含义 |
|---|---|---|
| 96 | Type | 6, 条码读取 |
| 97 | Status | 通过、判定、N/A、启用和已运行位 |
| 98 | Error | 0 表示无 |
| 100 | Score x1000 | 解码成功为 1000,未解码为 0 |
| 104 | F1 Symbology | |
| 108 | F2 MatchOutcome | |
| 112 | F3 FailureCause | |
| 116 | F4 | 此工具类型不使用 |
槽位 1 的通过位:字节 28,位 0。 此记录中不包含解码的条码文本;该文本在用户结果区域中发送。 槽位 9 至 64 仅承载通过位,不含记录。
一个规划辅助工具。相机在输出步骤的 字节 视图,以及您固件对应的 EDS 或 GSDML 文件,才是布局的最终依据。
- PLC 程序 ID:PLC 用于选择此程序的编号。复制和导入都会为程序分配一个新的 ID
- 槽位:1 到 8 发送完整结果,9 到 64 发送通过位。保持每个槽位的含义在所有程序中一致
- 输出:两条接线,DO0 和 Strobe Out。默认新增的输出已配置为剔除闸门
- 输出永不阻止激活。没有任何输出的程序也是有效的
此步骤包含三个部分,彼此相互独立。一个程序可以使用其中一个、两个或全部三个。

如果相机上未选择任何协议,您会看到一条提示横幅,告知此处的内容尚未传达给 PLC,但槽位和程序 ID 仍可编辑。这是有意为之:导入的程序会带着这些设置到达,您可以现在配置、稍后调试。
准备就绪后,请在 Industrial Ethernet 中选择协议。
PLC 程序 ID
一个 1 到 32767 之间的数字,用于向控制器标识此程序。
该程序在 PLC 和工业以太网通信中的持久 ID。在此相机的所有程序中唯一。
这是 PLC 远程选择程序的方式:它写入 ID 并发出切换请求,相机加载该程序并确认。它也会显示在 All Recipes 的程序表中。
创建程序时相机会自动分配一个 ID,因此此字段永远不会为空。ID 在整个相机范围内唯一,尝试重用某个 ID 会被拒绝,并显示一条消息指明已使用该 ID 的程序。
这常常在调试阶段让人措手不及。复制和导入都会分配一个全新的 ID,因此副本不会响应您的 PLC 程序期望的编号。槽位分配确实会随导入一起带过来,但程序 ID 不会。
复制或导入后,请回到此字段并设置控制器实际选择的 ID。
PLC 写入 ID、发出切换请求,相机确认后短暂离线以加载程序,然后报告加载完成。已经在运行的检测会在旧程序下完成。未知的 ID 会触发切换错误,而不是无声无息地什么都不做。
ID 是相机与 PLC 程序之间的契约。在构建第二个程序之前就决定好编号方案,与 PLC 标签列表记录在同一份文档中,切勿将同一个 ID 用于不同的产品。
一种合理的方案是每个零件号对应一个编号,这样程序 ID 1204 就用于检测零件 1204。日后面对柜子里的相机再去猜测,是件痛苦的事。
PLC 工具结果
此设置决定每个工具通过 PLC 在哪个槽位上报结果。槽位是过程映像中的固定位置,因此控制器始终从相同的地址读取某个工具的结果。
默认情况下未进行任何分配,相机会显示未通过 PLC 上报任何工具。判定结果仍会发出,缺少的只是每个工具的详细信息。
两种槽位

槽位 1 到 8:完整工具结果。 由默认程序集承载的完整结果记录加一个通过位。下表显示了每个槽位的具体位置:
| 槽位 | 传输字节 |
|---|---|
| 1 | 字节 96 到 119 |
| 2 | 字节 120 到 143 |
| 3 | 字节 144 到 167 |
| 4 | 字节 168 到 191 |
| 5 | 字节 192 到 215 |
| 6 | 字节 216 到 239 |
| 7 | 字节 240 到 263 |
| 8 | 字节 264 到 287 |
每个完整槽位为 24 字节。在对应行上使用 + Assign 将工具分配到该位置。
槽位 9 到 64:仅通过位。 只有一个通过或失败位,不含结果记录。相机的说明是,这些槽位在八个完整槽位之后仍然有用。
选择哪些工具获得完整槽位
您有八个完整槽位和最多 64 个工具的通过位。完整槽位是稀缺资源,因此应将其用于控制器需要数值而不仅仅是判定结果的工具。
| 分配完整槽位给 | 因为 PLC 需要 |
|---|---|
| AI Count | 计数值本身,用于记录或比较 |
| Color Match | 分数或 ΔE,用于跟踪漂移 |
| AI OCR | 解码后的文本,用于追溯 |
| Barcode Read | 解码后的码,用于与订单匹配 |
| AI Segmentation | 缺陷面积,用于分级而非直接拒收 |
对于答案确实是二元的工具(例如只会判定好或坏的分类器),一个通过位就足够了。
每条记录为 24 字节:一个小的头部,承载工具类型、状态和错误信息;一个通用分数;然后是四个工具特定的值。在任何已分配的行上单击 Bytes,相机会显示该槽位的精确字段映射,这样就无需任何人手动抄录偏移量。
Barcode Read 记录包含码制、内容是否匹配,以及失败原因。解码后的字符串本身是单独发送的,位于输入程序集的用户结果区域。如果您的 PLC 需要实际的码内容,请从该区域读取,而不是从工具记录中读取。
每条记录的第一个字节标明生成该记录的工具类型。如果控制器检查此字节,就不会在程序切换后将 OCR 记录误读为对齐器记录——这正是保持槽位含义稳定所要防范的故障模式。
没有任何机制阻止程序 A 将条码放在槽位 1 中,而程序 B 将计数放在同一位置。相机会照办不误,然后您的 PLC 程序就必须知道当前激活的是哪个程序才能解读这些字节。
这是一整类集成错误,您只需约定一次:槽位 1 始终是条码,槽位 2 始终是计数,并在不使用这些工具的程序中保留空槽位,就能避免这类问题。空槽位不会带来任何开销。
未分配槽位的工具并未被禁用。它会运行、判定、出现在 库 中,如果某条判定规则涉及该工具,它仍会参与控制整体判定。它只是不会单独上报给 PLC。无论如何,程序的整体通过或失败结果仍会传达给控制器。
新工具总是以未分配状态开始,因此这是默认状态而不是错误。
在槽位之间移动工具
分配也是重新排序的方式,具体行为取决于工具的来源:
| 您拖放 | 到已占用的槽位 | 结果 |
|---|---|---|
| 已有槽位的工具 | 两个工具交换槽位 | |
| 未放置的工具 | 原占用者被完全移出 PLC |
将未放置的工具移到已被占用的槽位,会在没有警告的情况下将原占用者挤出 PLC 映射。如果控制器正在读取该槽位,它将不再接收该工具的记录。
每次槽位重新调整后,请检查未放置区。任何从映射中掉落的工具都会列在那里。
放入槽位按钮会选择编号最小的空闲完整槽位。一旦八个槽位全部被占用,该按钮仍可打开,但列表中的每个工具都显示为灰色且无法点击,看起来像是一个 bug。
要放置第九个工具,请改用槽位 9 至 64标题上的**+ 分配槽位**,然后输入槽位编号。
输出
第三部分根据结果切换相机上的物理信号线。
根据结果切换相机上的信号线。随此程序一起保存。

您可以使用两路输出,每个物理引脚一路。当两者都在使用时,添加输出按钮仍然可见但被禁用,并有工具提示说明两个引脚都已被占用。
每条输出读起来像一句话:
当
[程序结果][失败]时驱动[DO0][保持直到下一个结果]
新添加的输出已预先配置为 DO0、程序结果、失败、保持直到下一个结果、PNP,这是大多数输出首先需要的拒收门接线方式。对于简单的拒收门,您可以添加输出并保存,无需更改任何设置。
四个选项
哪根信号线
| 选项 | 备注 |
|---|---|
| DO0 | 数字输出 0,引脚 11 |
| Strobe Out | 引脚 12,也可用于外部光源 |
由什么驱动
| 选项 | 使用场景 |
|---|---|
| 程序结果 | 整体判定结果。拒收门的常规选择 |
| 单个工具 | 单个工具的结果,便于针对某个特定失败作出响应 |
选择单个工具会显示工具选择器。对齐器不会出现在选项中,禁用的工具会被标记为已禁用并阻止保存,因为由从不运行的工具驱动的输出将永远不会触发。
哪种方向
| 选项 | 典型用途 |
|---|---|
| 通过 | 驱动合格件指示灯,或打开允许合格件通过的门 |
| 失败 | 驱动拒收执行器或故障指示灯 |
保持切换多久
| 选项 | 行为 |
|---|---|
| 保持直到下一个结果 | 信号线保持切换状态,直到检测下一个部件 |
| 脉冲 | 每次发生时,信号线切换一段设定时间,范围为 10 到 60000 ms,默认为 100 ms |
保持适用于需要状态持续到部件抵达执行器的任何场景,这适用于大多数拒收机构。
脉冲适用于任何边沿触发的场景,例如计数器输入或在上升沿锁存的 PLC。如果您向采样较慢的设备发送脉冲,请使脉冲长度超过 PLC 扫描时间,否则脉冲将被完全错过。
高级:使极性与接线匹配
在每条输出的 Advanced 下:
将此设置与您已接线的设备匹配。
| 选项 | 行为 |
|---|---|
| PNP, switches high(默认) | 输出为电流源 |
| NPN, switches low | 输出为电流吸收 |
极性不匹配不会产生错误。相机正常地切换输出,而设备始终没有响应,这会让人误以为是程序损坏或相机故障。
在排查之前请先对照设备数据手册确认。I/O Live Monitor 会显示相机正在切换该输出,即使设备没有响应,这是最快区分这两种情况的方法。
使用 Add output 添加第二条输出,例如一条线用于通过信号,另一条线用于失败信号。
指示 LED
在该步骤的底部:
相机的指示灯可以跟随检测结果。这是相机级别的设置,由所有程序共用。
Open Indicator LED settings 可带您前往该设置页。
与此页面上的其他内容不同,指示 LED 不随程序一起保存。更改它们会影响相机上的每个程序。在为某一个产品调整它之前请知悉这一点。
输出在运行中的产线上如何表现
该语句告诉您正常产品上会发生什么。以下这些情形决定一个集成是否可靠。
Hold 双向跟随电平。 设置为 hold on fail 的输出在产品失败时拉起,并在下一个通过的产品到来时自行回落。您无需使用第二条输出来清除它。
脉冲会排队而不是丢弃。 如果第二个产品在脉冲仍为高电平时触发,该脉冲会被记住并在之后发出,而不是丢失。若第三个在同一时间窗内到来,则会替换第二个。
如果一条输出由单个工具驱动,而该工具因为定位失败被跳过,则该输出不会收到任何事件,并保持其原有状态。
它不会回落,也不会触发。处于保持状态的拒收输出将继续保持置位;已清除的则保持清除。请结合 Judgment 中的定位缺失策略来使用,或者改用程序结果来驱动安全相关的接线,因为后者始终会产生事件。
切换程序时会先清除引脚。 当程序加载时,每个已配置的输出都会被驱动到其空闲状态,因此前一个程序置位的输出不会一直保持。
输出在 Setup 中也会触发。 您无需进入 Production 即可测试接线。手动触发并在 I/O Live Monitor 中观察引脚状态。
10 毫秒的脉冲进入每 20 毫秒扫描一次的控制器可能永远不会被捕捉到。如果接收逻辑在硬件中不是边沿锁存的,请将脉冲长度设置为超过扫描时间,或改用 hold。
其他页面上会改变您此处输出的操作
编辑器其他位置的三种编辑会悄悄地改写您在此处的设置。
| 您所做的操作 | 对输出的影响 |
|---|---|
| 在步骤 3 删除工具 | 由该工具驱动的任何输出都会被删除,其槽位被释放 |
| 在步骤 3 禁用工具 | 由其驱动的输出将变为阻止保存的错误,因为它永远无法触发 |
| 复制程序 | 按工具划分的输出会被丢弃;基于程序判定的输出会被保留 |
槽位更改和该步骤的其余部分通过不同的调用进行保存。如果槽位更改中途失败,较早的槽位更改已经生效,而程序 ID 和输出尚未保存,未保存标记会继续显示。
如果保存出错,请重新读取页面,而不要假设什么都没发生。
实例演练
仅驱动剔除闸门。 当程序结果为失败时驱动 DO0,保持至下一次结果,PNP。无现场总线,无槽位。将 11 号引脚接至剔除阀,参见 Pinouts。这是一个完整且合规的配置。
向 PLC 上报结果。 设置 PLC 程序 ID,将条码放入槽位 1、计数放入槽位 2,并将分类器保留在通过位上。在 Industrial Ethernet 中选择 EtherNet/IP 或 PROFINET,并从中下载 EDS 或 GSDML 文件,这样控制器无需任何人手动转录字节偏移即可获取数据布局。
从产线进行程序切换。 为每种产品的程序分配一个与零件号对应的唯一 PLC 程序 ID。PLC 在换型时写入该 ID,相机随即切换程序,操作员无需任何操作。
继续之前
- 已设置 PLC 程序 ID,并与 PLC 标签清单一同记录
- 控制器需要读取数值的每个工具都已分配完整槽位
- 槽位含义与其他程序保持一致
- 输出极性与实际接线设备匹配
- 根据读取信号的设备选择保持或脉冲模式,且脉冲时长长于 PLC 扫描周期
- 安全相关线路由程序结果驱动,而非由某个可能被定位跳过的单个工具驱动
- 如果该程序是复制或导入而来,请重新检查 PLC 程序 ID