3. In-Sight软件环境与工程创建

在把 In-Sight 视觉系统接入 PLC 产线之前,工程师必须先在自己的电脑上把“看什么、怎么判、结果放哪里”这三件事定义清楚。承载这三件事的软件就是 In-Sight Explorer。它既是相机与作业的配置工具,也是离线开发与仿真环境。理解它的界面组织方式,比记住某个按钮的位置更重要,因为后续所有与 PLC 的交互,最终都落在“作业”这个文件单元上。

In-Sight Explorer 的定位与连接方式

In-Sight Explorer 是 Cognex 为 In-Sight 系列智能相机提供的 Windows 端配置软件。它同时承担三种角色:在线连接相机进行实时调试、离线创建和编辑作业、以及在没有相机的情况下运行仿真。启动后,软件通过“网络”或“传感器”列表发现同一网段内的相机,也可以直接输入 IP 地址连接。连接成功后,左侧出现该相机的作业树,右侧进入电子表格视图。

需要区分两个概念:相机是硬件实体,作业(Job)是保存在相机或本地磁盘上的一组配置与计算逻辑。一个相机同一时刻只运行一个作业,但可以保存多个作业文件,通过 PLC 触发或手动切换。作业文件通常以 .job 为扩展名,内部包含图像采集参数、视觉工具、电子表格公式、通信与 I/O 配置。因此,工程交付的本质不是“调好相机”,而是“交付一个可复现的作业文件”。

电子表格视图:In-Sight 的核心工作区

In-Sight 的电子表格视图与 Excel 形似,但语义完全不同。这里的单元格不是用来记录数据的,而是用来定义数据流的。每个单元格可以是一个图像采集函数、一个视觉工具、一个数学运算、一个通信写入,或者对另一个单元格的引用。单元格之间通过引用建立依赖关系,形成一张有向的计算图。

典型的数据流方向是:图像输入 → 视觉工具 → 结果提取 → 判断/格式化 → 输出到 PLC。例如,A0 单元格放置 AcquireImage 获取图像,B2 放置 FindPatterns 在图像中定位特征,C2 引用 B2 的 GetRow/GetCol 得到坐标,D2 用 Point 或 Distance 计算偏差,E2 用 If 或 Math 生成判定结果,最后 F2 通过 WriteDiscrete 或 WriteResult 把结果送到 PLC 的输入区。理解这条链路,就理解了 In-Sight 作业的全部组织逻辑。

单元格的引用有两种方式:直接引用如 =B2,以及带属性的引用如 =B2.GetRow(0)。前者返回整个结果结构,后者返回具体字段。调试时,选中单元格即可在下方看到它的当前值、状态和错误信息。若某单元格显示 #ERR,说明其依赖的上游未成功执行,应沿引用链向上排查,而不是孤立地修改当前单元格。

调色板:工具的分类入口

调色板(Palette)是电子表格视图右侧或浮动面板中的工具集合,按功能分组。常见分组包括:

  • 图像采集:AcquireImage、LiveImage 等,负责从相机或仿真图像源取图。
  • 视觉工具:FindPatterns、Blob、Edge、Histogram、Caliper 等,负责在图像中提取特征。
  • 数学与逻辑:Math、If、And、Or、Compare 等,负责把视觉结果转换为判定。
  • 通信与 I/O:WriteDiscrete、WriteResult、ReadDiscrete 等,负责与 PLC 交换数据。
  • 几何与坐标:Point、Line、Distance、Angle 等,负责把像素坐标转换为工程量。

使用调色板的正确姿势不是“逐个试工具”,而是先明确要输出的结果,再反推需要哪些工具。例如 PLC 需要“OK/NG + X 偏差”,那么至少需要:取图、定位、坐标提取、偏差计算、阈值判断、离散输出六类单元格。调色板只是把这些函数按类别摆好,真正的设计发生在电子表格的引用关系里。

离线仿真:没有相机也能把作业跑通

离线仿真是 In-Sight Explorer 最有价值的功能之一。它允许在没有连接相机的情况下,用本地保存的图像文件或图像序列作为输入,运行整个作业并观察每个单元格的结果。操作路径通常是:在 AcquireImage 单元格中选择“仿真”或“从文件获取图像”,指定一张或多张 .bmp/.jpg 图像,然后按 F5 或点击运行,电子表格会按依赖顺序计算并显示结果。

仿真的意义在于:把“视觉逻辑是否正确”与“现场硬件是否正常”解耦。工程师可以在办公室用一组已知良品和不良品图像验证判定阈值,确认 If 条件、坐标换算和输出格式都正确,再把作业下载到相机。这样现场调试时,问题范围就缩小到通信、触发和机械定位,而不是从头怀疑视觉逻辑。

建议为每个作业准备一组仿真图像:至少 3 张良品、3 张不良品,覆盖不同位置和光照。仿真通过后再下载到相机,可以显著减少现场停机时间。

从作业到 PLC:结果如何被“看见”

PLC 并不直接读取电子表格,它读取的是相机通过工业以太网或离散 I/O 暴露出来的数据。因此,作业中必须有一个明确的“输出层”:把内部计算结果写入 PLC 可访问的寄存器或离散位。常见做法是用 WriteDiscrete 写一个 OK/NG 位,用 WriteResult 或 WriteString 写偏差数值,再用一个“结果有效”位通知 PLC 何时读取。这个输出层的设计,直接决定了后续 PLC 程序的写法。

下面这张图把本节的核心对象放在一起:In-Sight Explorer 作为开发环境,作业作为交付单元,电子表格作为数据流载体,调色板作为工具来源,离线仿真作为验证手段,最终输出到 PLC。图中同时标出了数据在电子表格中的典型流向,便于在后续章节中对照 PLC 侧的接收逻辑。

In-Sight 作业开发与数据流:从 Explorer 到 PLC In-Sight Explorer 在线连接相机 离线编辑作业 运行仿真 作业 Job (.job) 采集参数 视觉工具与公式 通信与 I/O 配置 调色板 Palette 图像采集 / 视觉工具 数学逻辑 / 几何坐标 通信与 I/O 离线仿真 本地图像序列 逐单元格计算 验证判定与输出 电子表格视图:单元格引用构成的数据流 A0 AcquireImage B2 FindPatterns C2 GetRow/GetCol D2 Math / Distance E2 If 判定 OK/NG F2 Write 取图 定位 坐标 偏差 判定 输出 PLC 可访问结果 OK/NG 离散位 · X/Y 偏差数值 · 结果有效位 仿真图像输入,逐单元格验证

工程创建的实际顺序与检查点

综合以上内容,一个可交付的 In-Sight 作业通常按以下顺序建立,每一步都有明确的检查点:

  1. 新建作业并选择相机型号:型号决定可用分辨率和工具集,选错会导致后续无法下载。检查点:作业属性中的传感器型号与实际一致。
  2. 配置图像采集:在 AcquireImage 中设置触发方式(连续/外部触发)、曝光和增益。检查点:仿真图像能正常显示,亮度适中。
  3. 放置视觉工具并训练:用 FindPatterns 或 Blob 定位特征,训练模板时框选稳定区域。检查点:在全部仿真图像上工具都能找到目标,得分高于设定阈值。
  4. 提取结果并计算:用 GetRow/GetCol 取坐标,用 Math 或 Distance 算偏差。检查点:良品偏差接近 0,不良品偏差明显超出阈值。
  5. 生成判定:用 If 比较偏差与公差,输出 0/1 或 OK/NG。检查点:仿真图像中良品全部判 OK,不良品全部判 NG。
  6. 配置输出:用 WriteDiscrete 写 OK/NG 位,用 WriteResult 写数值,并设置结果有效位。检查点:在仿真中能看到输出单元格的值随图像变化。
  7. 保存并下载:保存 .job 文件,连接相机后下载并切换运行。检查点:相机在线运行时,PLC 能读到与仿真一致的结果。
离线仿真通过不等于现场一定通过。仿真图像的光照、镜头畸变、触发时序与现场可能存在差异。下载后必须用现场实际产品和实际触发信号复验,尤其要确认“结果有效位”与 PLC 读取时序是否匹配。