3. 高速产线节拍测量与数据采集
在高速产线上做节拍优化,第一步不是改参数,而是把“时间花在哪里”测准。MERLIC 本身提供了日志、性能计数器和通信接口,但产线节拍往往由相机曝光、图像传输、MERLIC 处理、PLC 握手、执行机构动作共同决定。如果只盯着 MERLIC 的处理耗时,很容易把瓶颈误判为算法慢,实际却是触发延迟或通信等待。本节围绕节拍时间分解、MERLIC 日志与性能计数器、产线信号追踪与瓶颈定位三个层面展开,目标是让读者能独立搭建一套可复现的节拍测量方案。
一、节拍时间分解:把一次循环拆成可测量的段
高速产线的节拍通常定义为相邻两次“合格品产出”之间的时间间隔,记为 CT(Cycle Time)。要定位瓶颈,需要把 CT 拆成若干可独立测量的时间段。以一台相机 + 一套 MERLIC + 一个 PLC 的典型工位为例,一次完整循环可分解为:
- 触发等待 T0:从上一循环结束到本循环触发信号到达的时间,反映 PLC 调度与工件到位节奏;
- 曝光与采集 T1:从触发到相机输出完整图像的时间,由曝光时间、读出时间、GigE/USB 传输决定;
- MERLIC 处理 T2:从图像进入 MERLIC 到所有工具执行完毕、结果可读的时间;
- 结果通信 T3:MERLIC 将结果写入 PLC 或现场总线的时间;
- 执行动作 T4:PLC 收到结果后驱动气缸、剔除或分拣机构动作的时间。
CT = T0 + T1 + T2 + T3 + T4。这个分解的意义在于:T1、T2 属于视觉系统内部,T0、T3、T4 属于系统间协同。很多“MERLIC 太慢”的抱怨,实际是 T0 或 T3 偏大。测量时建议每个时间段都用独立的时间戳记录,而不是只记录总时间,否则无法判断优化方向。
二、MERLIC 日志与性能计数器
MERLIC 的日志分为运行日志和性能日志。运行日志记录启动、配方切换、错误和通信事件;性能日志则记录每个工具的执行耗时。在 MERLIC Creator 中,可通过“日志”面板查看,也可将日志输出到文件供离线分析。对于节拍优化,最有用的是工具级耗时,它能告诉你 T2 内部到底是哪一个工具占了大头。
MERLIC 还提供性能计数器接口,可通过 MERLIC 的通信接口(如 OPC UA 或 TCP/IP)读取关键指标。常见的计数器包括:单次执行总耗时、各工具耗时、图像采集帧率、通信往返时间。实际工程中,建议把性能计数器周期性地写入一个 CSV 文件,字段至少包含:时间戳、循环序号、T1、T2、T3、各工具耗时、结果状态。这样既能做单次分析,也能做趋势分析。
timestamp,cycle_id,T1_ms,T2_ms,T3_ms,tool_match_ms,tool_measure_ms,result
2024-06-01T08:00:00.120,1001,8.4,21.7,3.2,12.1,6.8,OK
2024-06-01T08:00:00.350,1002,8.6,34.9,3.1,25.3,6.9,OK
2024-06-01T08:00:00.580,1003,8.5,22.0,3.3,12.3,6.7,OK
上面是一段示例数据,可以看到第 1002 次循环的 T2 明显偏高,进一步看 tool_match_ms 从 12 ms 跳到 25 ms,说明匹配工具在该次循环中耗时异常。这种“总时间正常、个别循环尖峰”的现象,在高速产线上非常常见,必须靠逐循环数据才能发现。
三、产线信号追踪与瓶颈定位
仅有 MERLIC 内部数据还不够,必须把 MERLIC 的时间戳与产线信号对齐。推荐做法是:用一个高精度时钟源(如 PLC 的系统时钟或带时间戳的 IO 模块)同时记录触发信号、相机曝光信号、MERLIC 结果输出信号和执行机构动作信号。把这几路信号画在同一时间轴上,就能直观看到每个环节的起止和等待。
瓶颈定位的基本判断规则是:如果某一段的耗时占 CT 的比例最大,且波动也最大,它就是首要优化对象。例如 T2 平均 22 ms、峰值 35 ms,而 T1 稳定在 8.5 ms,那么优先优化 T2。若 T0 平均 40 ms 且波动大,则问题在 PLC 调度或工件到位,而不是视觉算法。
上图把 CT 分解为 T0 至 T4 五段,并标出 T2 为瓶颈候选。实际使用时,应把每一段的实测均值和峰值填入,再结合信号时间轴确认。例如某次测量得到 T0=42 ms、T1=8.5 ms、T2=22 ms、T3=3.2 ms、T4=15 ms,CT≈90.7 ms。此时 T0 占比最大,应优先检查 PLC 触发逻辑和工件到位检测,而不是先改 MERLIC 工具参数。
四、可复用的节拍测量记录表
为了让测量结果可对比、可追溯,建议每次优化前后都填写同一张记录表。字段不必多,但必须覆盖分解段和判断结论。下面是一份可直接使用的示例结构:
| 循环序号 | T0/ms | T1/ms | T2/ms | T3/ms | T4/ms | CT/ms | 结果 | 备注 |
|---|---|---|---|---|---|---|---|---|
| 1001 | 41 | 8.4 | 21.7 | 3.2 | 15.1 | 89.4 | OK | 正常 |
| 1002 | 43 | 8.6 | 34.9 | 3.1 | 15.0 | 104.6 | OK | T2 尖峰 |
| 1003 | 40 | 8.5 | 22.0 | 3.3 | 15.2 | 89.0 | OK | 正常 |
填写时注意:T0 到 T4 必须来自同一循环的同一时间基准,不能混用不同时钟源。若使用 PLC 时间戳,需确认 PLC 与 MERLIC 主机的时间同步精度,必要时用 NTP 或 PTP 对齐。对于高速产线,时间同步误差应控制在 1 ms 以内,否则 T0 和 T3 的测量会失真。
完成一轮测量后,应形成明确结论:瓶颈在哪一段、依据是什么、下一步优化对象是什么。例如“T2 的匹配工具在 5% 循环中超过 30 ms,导致 CT 尖峰,优先优化匹配 ROI 和模板数量”。这样的结论才能直接指导后续的节拍优化工作。