2. In-Sight软件环境与工程结构

换型调试的第一步不是打开相机就连线,而是先弄清楚“我在哪个软件里、操作的是哪一层对象、文件存在哪里、当前是在线还是离线”。In-Sight 的软件环境与工程结构决定了后续所有配方切换、参数修改和作业保存的行为边界。如果这一层概念混淆,很容易出现“改了参数却没生效”“切了配方却丢了标定”“离线调好的作业下载后覆盖了现场配置”等问题。

两套软件环境:In-Sight Explorer 与 In-Sight Vision Suite

In-Sight 相机目前主要通过两套上位软件进行配置与调试:In-Sight Explorer 和 In-Sight Vision Suite。二者面向的相机代际和功能范围不同,但核心概念(作业、配方、在线/离线)是一致的。

In-Sight Explorer 是较早期、覆盖面最广的经典环境,主要面向 In-Sight 系列(如 5000、7000、8000、9000 等)以及部分 Micro 系列。它的核心是 EasyBuilder(图形化作业编辑)和 Spreadsheet(电子表格式视觉编程)两种视图。EasyBuilder 适合快速搭建定位、测量、读码、Blob 等任务;Spreadsheet 则把每个视觉工具当作单元格函数,通过单元格引用传递图像、坐标、结果,适合复杂逻辑与条件判断。Explorer 还提供 In-Sight Explorer 离线仿真,可在不连接相机的情况下加载图片、搭建作业并验证逻辑。

In-Sight Vision Suite 是较新的统一平台,面向新一代 In-Sight 相机(如 In-Sight 2800、3800、D900 等)以及部分视觉系统。它把作业编辑、配方管理、通信配置、诊断工具整合在同一个界面中,并强化了对深度学习工具(如 ViDi EL 分类、缺陷检测)的支持。Vision Suite 的界面通常分为:左侧设备/作业树、中间图像与工具编辑区、右侧参数与结果面板、底部状态与日志区。相比 Explorer,Vision Suite 更强调“一个工程对应一个相机、一个作业对应一套视觉逻辑”的直观结构。

无论使用哪套软件,换型调试时都要先确认:当前相机型号支持哪套环境、现场工程师习惯用哪套、以及作业文件是否能在两套环境之间迁移。跨环境迁移通常需要重新验证工具参数,不能假设完全兼容。

作业(Job)与配方(Recipe)的关系

这是 In-Sight 工程结构中最关键、也最容易混淆的一对概念。

作业(Job) 是“一套完整的视觉程序”,包含图像采集设置、视觉工具链、标定、通信与输出配置、结果判定逻辑等。一个作业就是一个可独立运行、可保存、可下载到相机的工程文件。作业决定了相机“怎么拍、怎么算、怎么判、怎么输出”。

配方(Recipe) 是“同一套视觉逻辑下,针对不同产品型号的一组参数集合”。它不改变工具链结构,只改变那些随产品变化的参数,例如:模板匹配的基准图像与搜索区域、测量工具的标定比例与公差上下限、Blob 的面积阈值、读码的码制与区域位置、以及曝光、增益等成像参数。换句话说,作业是“程序骨架”,配方是“产品参数皮肤”。

二者的关系可以这样理解:一个作业下可以挂多个配方,每个配方对应一个产品型号或一个换型状态。切换配方时,相机保持同一套工具链和通信逻辑,只把参数替换成目标产品的那一套。这样换型时不需要重新搭建作业,只需切换配方并重新触发,就能让同一台相机适应不同产品。

实际调试中常见的做法是:先针对一个“基准产品”搭建作业并调好工具链,然后把随产品变化的参数抽取成配方变量,再为每个产品型号建立独立配方。配方变量通常包括:模板图像、搜索框、标定、测量框、公差、阈值、曝光时间、增益、以及部分输出映射。不随产品变化的参数(如通信协议、触发方式、I/O 映射)应保留在作业层,不要放进配方,否则会造成不必要的重复维护。

判断一个参数该放作业还是配方,可以问一句:换产品时它会不会变?会变就放配方,不会变就留在作业。

文件存储路径与工程文件组织

In-Sight 的工程文件通常以 .job 为扩展名保存,配方则作为作业内部的一部分或独立文件存在。在 In-Sight Explorer 中,作业可以保存在本地电脑的任意目录,也可以下载到相机的非易失存储中。相机内部通常有一个默认的作业存储区,用于保存当前运行作业和若干备用作业。Vision Suite 则更倾向于以“工程/项目”为单位管理,本地工程目录中会包含作业文件、配方文件、图像样本、日志和备份。

一个推荐的本地目录结构如下,便于换型调试和版本追溯:

D:\InSight_Projects\
  LineA_Station3\
    2024-06-01_Base\
      Station3_Base.job
      recipes\
        P100_A.rcp
        P100_B.rcp
        P200_A.rcp
      images\
        P100_A_sample01.bmp
        P100_B_sample01.bmp
      backup\
        Station3_Base_20240601.job
    README.txt

其中 Base.job 是基准作业,recipes 下按产品型号存放配方,images 存放各产品的样本图像,backup 存放下载前的备份。每次换型调试前,先把相机当前作业和配方备份到本地,再修改;修改完成后另存为新版本,不要直接覆盖唯一副本。这样即使现场调试出错,也能快速回退到已知可用状态。

在线与离线操作模式

In-Sight 软件有两种基本工作模式:在线(Online) 和 离线(Offline)。

在线模式 下,软件与相机建立连接,可以直接读取相机当前图像、实时查看工具运行结果、修改参数并立即生效、触发拍照、下载作业和配方。在线模式适合现场调试、验证换型结果和最终确认。但在线修改会直接影响正在运行的相机,如果产线正在生产,误操作可能导致停线或误判。因此在线修改前应确认相机处于可安全调试的状态,或先切换到离线模式准备。

离线模式 下,软件不连接相机,而是加载本地保存的作业文件和样本图像进行编辑与仿真。离线模式适合提前准备换型配方、验证工具逻辑、对比不同参数下的结果。离线仿真时,可以用历史图片回放,观察工具是否稳定命中、评分是否足够、判定是否一致。离线调好后,再连接相机下载作业和配方,进行在线验证。

一个稳妥的换型调试流程是:离线准备配方 → 在线下载并切换 → 用现场产品触发验证 → 确认结果稳定后保存并备份。这样既减少在线修改时间,又保留可回退的版本。

In-Sight 软件环境与工程结构关系图 软件环境层 In-Sight Explorer EasyBuilder / Spreadsheet · 经典系列 In-Sight Vision Suite 统一平台 · 新一代相机 / 深度学习 作业层(Job)— 程序骨架 一个作业 = 图像采集 + 视觉工具链 + 标定 + 通信/输出 + 判定逻辑 图像采集设置 视觉工具链 标定与坐标 通信与 I/O 判定逻辑 配方层(Recipe)— 产品参数皮肤 配方 P100_A 模板 / 搜索框 / 公差 / 曝光 对应产品型号 A 配方 P100_B 模板 / 搜索框 / 公差 / 曝光 对应产品型号 B 配方 P200_A 模板 / 搜索框 / 公差 / 曝光 对应产品型号 C In-Sight 相机 — 运行当前作业 + 当前配方,输出结果与图像 一个作业挂多个配方 下载 / 切换 在线 / 离线 存储路径 .job 作业文件 .rcp 配方文件 images 样本图 backup 备份 相机内部存储 本地工程目录

换型调试中的实际判断

理解了上述结构后,换型调试时就可以按层次定位问题。如果换型后相机完全不触发,先检查作业是否被切换或下载错误,而不是先改配方;如果触发正常但定位偏移,先确认配方中的模板和搜索框是否对应目标产品;如果测量值整体偏大或偏小,先检查配方中的标定比例是否随产品更换而更新;如果读码失败,先确认配方中的码制和读码区域是否匹配。把问题归到“作业层”还是“配方层”,能显著缩短排查时间。

另外,在线与离线的切换也要有明确纪律。离线准备时,尽量使用与现场一致的光照、镜头、工作距离和样本图像,否则离线调好的参数上线后可能不稳定。在线验证时,至少用目标产品的合格品和边界品各触发若干次,观察评分、测量值和判定结果是否稳定落在预期范围内,再决定是否保存为正式配方。保存后立即备份到本地,并在文件名或备注中记录日期、产品型号和调试人,便于后续追溯。

不要在没有备份的情况下直接覆盖相机内唯一作业或配方。换型调试中,回退能力比调试速度更重要。

总结来说,In-Sight 的工程结构可以概括为:软件环境提供编辑与连接入口,作业定义视觉程序骨架,配方提供产品参数集合,文件路径决定版本与备份,在线/离线决定操作的安全边界。把这五件事分清楚,后续的换型调试与配方管理才有稳定的基础。