首页> 中国专利> 包含同步用户界面特征的机器视觉系统程序编辑环境

包含同步用户界面特征的机器视觉系统程序编辑环境

摘要

提供一种包括对多个不同用户界面窗口中的相关特征进行同步选择和/或识别的机器视觉程序编辑环境。具体地,一个窗口是编辑窗口,其中零件加工程序表示被显示用于用户编辑。在一个实施例中,用户可以选择不是编辑窗口的窗口(例如,结果窗口,和图形化工件检测特征显示窗口)中感兴趣区域的数据和其它特征,并且相关联的零件加工程序指令表示自动地被突出显示和/或在编辑窗口中被选择。相反地,用户可在编辑窗口中选择零件加工程序指令表示,并且在其它窗口中相关联的结果和特征会自动被突出显示和/或被选择。在这种编辑环境中显著提高了用户界面导航、快速程序质量评估以及整体零件加工程序创建和编辑效率。

著录项

  • 公开/公告号CN103176793A

    专利类型发明专利

  • 公开/公告日2013-06-26

    原文格式PDF

  • 申请/专利权人 株式会社三丰;

    申请/专利号CN201210599104.X

  • 申请日2012-11-15

  • 分类号G06F9/44(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人吕晓章

  • 地址 日本神奈川县

  • 入库时间 2024-02-19 19:24:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-01

    授权

    授权

  • 2014-11-12

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20121115

    实质审查的生效

  • 2013-06-26

    公开

    公开

说明书

相关申请的交叉引用

本申请要求2011年11月15日提交的美国临时专利申请号61/560,278和 2011年11月15日提交的美国专利申请号13/297,232的权益和优先权。

技术领域

本发明主要涉及机器视觉检测系统,并且更具体地涉及在这种系统中创 建和编辑零件加工程序的方法。

背景技术

利用精密机器视觉检测系统(或简称“视觉系统”)可以获取被测对象的精 确尺寸测量值并且可以检测各种其它对象特征。这样的系统可以包括计算机、 摄像机和光学系统以及精密工件台,其可在多个方向移动以使得允许摄像机 扫描被测工件的特征。一种在现有可买到的示例性现有技术系统是QUICK (快视)系列的基于PC的视觉系统和软件,从位于伊利诺 伊州的奥罗拉的三丰美国公司(Mitutoyo America Corporation(MAC))可买到。 例如,2003年1月出版的“QVPAK3D CNC视觉测量机器用户指南”以及1996 年9月出版的“QVPAK3D CNC视觉测量机器操作指南”,主要描述了QUICK (快视)系列的视觉系统和软件的功能和操作,在此以引用 方式将它们完全并入。这种产品,例如,以QV-302Pro模型为例,可使用显 微镜型光学系统以提供不同放大率下的工件图像,并且可根据需要移动工件 台以遍历超出任意单个视频图像限制的工件表面。给定这种系统期望的放大 率,测量分辨率和物理尺寸限制,单个视频图像通常仅包含被观测或被检测 的工件的一部分。

机器视觉检测系统一般采用自动视频检测。美国专利No.6,542,180教导 了该自动视频检测的不同方面并且在此以引用方式将它们完全并入。如在该 ′180专利中教导的,自动视频检测计量仪通常具有编程能力,其允许用户对 每个具体的工件配置定义自动检测事件序列。例如,这可通过基于文本的编 程,或者通过记录模式,其通过存储与用户借助于图形化用户界面执行的检 测操作序列相对应的机器控制指令序列,渐进地“学习”检测事件序列,或者 通过结合这两种方法来实施。这种记录模式常常被称为“学习模式”或“训练模 式”。一旦在“学习模式”中定义了该检测事件序列,在“运行模式”期间就要使 用该序列自动获取(并且附加地分析或检测)工件图像。

可以手动地使用视频工具(或简称“工具”)或其它图形化用户界面特征以 完成手动检测和/或机器控制操作(在“手动模式”下)。还可在学习模式期间记 录它们的设置参数和操作,以便创建自动检测程序,或“零件加工程序”。视 频工具可包括,例如,边缘/边界探测工具、自动聚焦工具、形状或图案匹配 工具、尺寸测量工具等等。其它图形化用户界面特征可包括与数据分析、步 骤和重复循环编程等等相关的对话框。例如,这种工具可常规地用于现有可 买到的机器视觉检测系统中,比如前面介绍过的QUICK(快视)系列 的视觉系统以及相关的软件。

包含特定检测事件序列(即如何获取每个图像和如何分析/检测每个获取 的图像)的机器控制指令主要作为针对具体工件配置的“零件加工程序”或“工 件加工程序”存储。例如,零件加工程序定义了如何获取每个图像,比如如何 相对于工件定位摄像机,在何种光级、在何种放大级等等。而且,该零件加 工程序定义了如何分析/检测获取的图像,例如,通过使用一个或多个诸如边 缘/边界探测视频工具的视频工具。

与为机床或装配机器人等编辑程序相比,为机器视觉检测系统编辑零件 加工程序是一项更复杂的任务。例如,机器视觉检测系统的零件加工程序包 括控制运行和/或提供基于图像的测量结果的后面部分,该基于图像的测量结 果至少部分取决于执行前面一部分程序确定的结果和/或至少部分取决于用 来提供检测运行的必要图像的工件特定实例。而且,这种系统的学习模式用 户界面(用于零件加工程序的创建和编辑)可能特别地复杂,需要同时显示实时 图像窗口,视频工具条显示,零件加工程序表示窗口,结果输出窗口(简称结 果窗口),检测特征图形显示窗口,位置窗口,光照窗口,和测量工具显示, 以便用户正确地评估他们程序行为的因果,以创建高质量的零件加工程序。 在这样的编辑环境中,仅仅识别与零件加工程序指令相关联的所有结果位置 也许是困难的。如果用户存储已部分完成的零件加工程序并且一段时间之后 恢复(recall)该零件加工程序以改变或完成该编程,识别零件加工程序指令 与在不同窗口中反映出的它们相关联效果之间的恰当关联可能会更加困难。 机器视觉检测系统需要能够加强用户界面导航,快速程序质量评估,和总体 零件加工程序的创建和编辑效率的编辑环境。

发明内容

提供本发明内容,以简化形式介绍可供选择的构想,其在以下详细说明 中将进一步描述。本发明内容并不意图识别要求保护主题的关键特征,也不 意图用于帮助确定要求保护主题的范围。

为了解决在上文概述的想法,期望提供一种机器视觉检测系统,以通过 指示编辑窗口中表示的零件加工程序指令,与其它用户界面窗口中显示的相 关操作上下文和/或结果之间的关系,为机器视觉检测系统提供包括能够加强 用户界面导航、快速程序质量评估和总体零件加工程序的创建和编辑效率的 特征的编辑环境。在这样的编辑环境中,用户可以更容易地识别不同零件加 工程序指令的结果之间的因果关系,并且通过选择他们感兴趣的和在不同窗 口显示的结果,甚至在编辑窗口中可导航到期望的用户界面和/或期望的特定 零件加工程序指令。当通过记录机器视觉检测系统的用户输入的实际控制操 作创建和编辑零件加工程序时,这是特别重要的,因为用户是根据机器视觉 检测系统的结果状态和/或与那些控制操作和/或零件加工程序指令相关联的 测量结果,直观地选择、评估和/或认可他们控制操作的细节和/或零件加工程 序指令。

经常地,零件加工编程指令中问题的指示或鲁棒性的缺乏将通过结果窗 口中的不希望或“容差之外”的结果,或者图形化显示窗口中的错位测量功能 等等,而非零件加工程序指令自身,被指示出来。但是,仅仅在编辑窗口可 以看到有缺陷的零件加工程序指令,使得它们可以被理解和可靠地编辑或补 充。而且,经常地,与这样的显示结果相关联的有缺陷的零件加工程序指令 在编辑窗口可能是不可见的,因为编辑窗口在拥挤的用户界面具有限定的尺 寸,并且零件加工程序可能具有非常大量的指令和/或相应的指令表示。到此 为止,没有通用的机器视觉检测系统,并且特别是没有记录实际用户控制操 作以便创建零件加工程序(例如,与简单图形化对象或基于文本的编程系统相 反)的系统,提供在编辑运行期间,可靠地、鲁棒地以及方便地指示在编辑窗 口中表示的零件加工程序指令,与在其它用户界面窗口中显示的相关操作上 下文和/或结果之间的关系的编辑环境。

为了支持这种期望的编辑环境,这里公开了一种机器视觉系统程序编辑 环境,其包含对多种不同用户界面窗口的相关特征提供同步选择和/或识别的 方法。特别地,一个窗口是零件加工程序指令表示窗口,也称为编辑窗口, 其中,对零件加工程序指令表示进行显示以便于用户进行编辑。在一个实施 例中,用户可以选择非编辑窗口(例如,结果窗口,或图形化工件测量特征显 示窗口)中感兴趣的数据或另一特征,并且相关联的零件加工程序指令表示在 编辑窗口中可以自动显示和/或突出显示和/或选择,使得在该自动突出显示或 选择的零件加工程序指令表示下可以方便地执行编辑命令。相反地,在一些 实施例中,用户可以在编辑窗口中选择零件加工程序指令表示,并且相关联 的结果或特征在另一窗口可以自动地突出显示和/或选择以用于评估。

与这里公开的特征一起使用的相关编辑特征和功能还描述在,2011年11 月15日提交的美国专利申请号13/297,232(下文称为“’232申请”),名称为“包 含实时上下文产生功能的机器视觉系统程序编辑环境”的专利申请;2011年 11月15日提交的美国专利申请号13/297,182(下文称为“’182申请”),名称为 “利用机器视觉系统的零件加工程序编辑环境的编辑初始化块的系统和方法” 的专利申请;以及2011年11月15日提交的美国专利申请号13/297,220(下文 称为“’220申请”),名称为“用于零件加工程序的机器视觉系统编辑环境,其 中在运行模式期间执行图像连续流的获取操作”,在此以引用方式将它们的每 个完全并入。当与’232申请中公开的上下文产生功能一起使用时,这里公开 的特征是特别有用的。这是因为如果用户编辑由这里公开的方法到达的零件 加工程序中的任意位置,这时的机器配置或“上下文”可能是未知的,也就是, 如果相对于机器配置发生某些类型的变化(例如,零件在载物台上被移动等), 它可能是未知的,如果零件加工程序从开始执行到零件加工程序的任意位置, 所述机器配置是可预期的。在该“任意”位置对零件加工程序继续进行编辑而 没有对该位置建立期望的操作上下文(例如,机器结构,等等),可能会产生不 可预料的结果和/或甚至机器损害。由于这样的担忧,从开始起实际执行零件 加工程序的所有指令,并且包括对零件加工程序指令任意潜在的修改或增加, 以便确认该修改和/或增加是基于他们操作的实际条件集合(a realistic set of  conditions)(也就是期望的上下文)进行编程,对于许多这样的系统是标准做 法。但是,执行零件加工程序的所有指令以为修改或增加指令提供实际的操 作条件对于大的零件加工程序(例如,包含大量的图像采集,和/或特征检测的 程序)来说是不实际的,而这对于在宏观对象(例如,对象范围在数十或数百计 毫米)上提供微观检测(例如,微米分辨率测量)的机器视觉检测系统特别常见。 由于这个原因,并非强烈地感觉需要跳转到零件加工程序中的任意位置(例 如,通过这里公开的方法),因为这在现有技术的机器视觉检测系统中并非特 别有用。但是,’232申请公开了用于提供编辑环境的方法,在进行编辑操作 过程中,在零件加工程序中的任意位置,该编辑环境可靠且鲁棒地近实时提 供有效的零件加工程序编辑上下文,这显著增加了与这里公开的方法相关联 的实用性和时间节约。

因此,在如以下将进一步描述的本发明的一些实施例中,以及在’232申 请中,机器视觉检测系统进一步包括运行模式、学习模式和编辑部分。该运 行模式使用运行执行模式可操作执行之前创建的零件加工程序。该学习模式 (有时称为记录模式)可操作地接收用户的输入以控制机器视觉检测系统的操 作,并且记录与该控制的操作相对应的零件加工程序指令,以便创建零件加 工程序。该学习模式还包括包含编辑窗口的编辑用户界面,编辑窗口包含零 件加工程序指令的可编辑零件加工程序表示,其中该零件加工程序表示包括 指令表示。该编辑部分可操作为编辑零件加工程序,并且包括编辑执行部分, 其可操作为根据与运行执行模式不同的编辑执行模式,执行之前记录的零件 加工程序指令。

在各种实施例中,配置该学习模式使得进一步可操作为自动记录各自替 代数据,该各自替代数据与各自组被记录的零件加工程序指令相关联,其中, 至少一些替代数据包括与相关联组被记录指令相对应的实际控制操作产生的 数据。此外,该编辑执行模式包括替代执行模式。在替代执行模式期间,对 于至少一组零件加工程序指令,如果之前已经记录了与该组零件加工程序指 令相关联的各自替代数据,那么该组零件加工程序指令中的至少一些成员是 不被执行的。换句话说,相对应的相关联实际控制操作不被执行,并且在替 代执行模式中的随后操作中使用该各自的替代数据,作为另外可以从不被执 行的那些实际控制操作中产生的数据的替代。

在各种实施例中,该学习模式可被配置为在各自组被记录的零件加工程 序指令中,记录与各自零件加工程序指令组相关联的各自替代数据之前是否 已经被记录的指示。在一个实施例中,该指示被包含在各自组被记录的零件 加工程序指令的初始指令中。在一个实施例中,该各自组被记录的零件加工 程序指令可包含以标记语言编写的指令(例如,XML(可扩展标记语言),或由 其派生的)。在各种实施例中,该各自组被记录的零件加工程序指令可包含以 标记语言编写的至少一个元素、父元素、容器元素和子元素。在至少一个实 施例中,该指示可包括各自替代数据的存在,该各自替代数据包含在各自组 被记录的零件加工程序指令中。在至少一个实施例中,该指示可包含包括在 各自组被记录的零件加工程序指令中的各自标识符,该各自标识符可用于在 机器视觉检测系统的替代数据存储器部分中定位相对应的各自替代数据。

在各种实施例中,该编辑部分包括用于编辑零件加工程序的编辑命令, 并且配置该编辑执行部分使得当用户使用编辑用户界面输入编辑命令,以对 在编辑窗口和/或零件加工程序表示指示的目标位置处(例如,由这里公开的方 法到达的任意零件加工程序位置)编辑程序时,然后在零件加工程序中先于目 标位置的有效上下文起点位置开始编辑执行模式,并且使用替代执行模式用 于执行至少一部分零件加工程序指令,从而在目标位置建立用于编辑零件加 工程序的有效上下文。

根据本发明公开的不同附图,说明书和权利要求书,特别是当结合并入 的引用文献,本领域普通技术人员将理解,与提供并使用这里公开的并且在 前面简要概述的该系统和方法相关联的附加特征,其中类似的描绘,描述和/ 或引入元素可通过交叉引用被进一步理解。

附图说明

当结合附图考虑,参照接下来的详细说明,本发明的前述方面和许多伴 随的优点将会更加容易认识并且更好地理解,其中:

图1是表示通用精密机器视觉检测系统的各种典型组件的示图;

图2是与图1类似的机器视觉检测系统的控制系统部分和视觉组件部分 的框图,并且该机器视觉检测系统包含可用于根据本发明不同实施例中的特 征;

图3是可用于实现如这里公开的窗口间自动滚动运行的通信例程和/或操 作的功能示意图;

图4是包含编辑用户界面和结果窗口的用户界面示图;

图5是图示图4中的用户界面的操作的示图;

图6是图示图4中的用户界面的操作的示图;

图7是图示图4中的用户界面的操作的示图;

图8是示出零件加工程序中与图4-7的一些指令表示相对应的标记语言 代码指令的示图;

图9是用于提供机器视觉系统程序编辑环境的例程的一个实施例的流程 图;

图10是图示替代图9的一部分例程的例程的流程图;

图11是图示图10的一部分例程的一个实施例的流程图;

图12是图示图10的另一部分例程的一个实施例的流程图;

图13是图示用于操作程序编辑环境的其它和/或替代例程的一个实施例 的流程图;

图14是图示图2的编辑部分160的其它组件的框图;

图15是包含具有多个指令表示的零件加工程序表示的编辑界面图;

图16是包含在其上已经执行与图15对应的零件加工程序的工件的图像 的用户界面图;

图17A和17B是与图15的一些指令表示相对应的零件加工程序的标记 语言代码指令的示图;

图18A和18B是图示用于提供包括实时上下文产生特征的机器视觉系统 零件加工程序编辑环境的例程的一个实施例的流程图;以及

图19是用于执行替代执行模式以提供由零件加工程序指令表示、元素或 节点指示的零件加工程序位置处的有效编辑上下文的例程的一个实施例的流 程图。

具体实施方式

图1是用于根据这里描述的方法的机器视觉检测系统10的一个例子的框 图。该机器视觉检测系统10包括视觉测量机12,其可操作地连接以与控制 计算机系统14交换数据和控制信号。该控制计算机系统14进一步可操作地 连接以与监视器或显示器16、打印机18、操纵杆22、键盘24、和鼠标26等 等交换数据和控制信号。该监视器或显示器16可显示用户界面,其适用于控 制和/或编程该机器视觉检测系统10的操作。

该视觉测量机12包括可移动工件台32和光学成像系统34,光学成像系 统34可以包括变焦镜头或可互换镜头。该变焦镜头或可互换镜头通常为光学 成像系统34提供的图像提供不同的放大率。该机器视觉检测系统10一般可 与前面讨论过的QUICK系列的视觉系统和软件以及类似 现有可买到的精密机器视觉检测系统媲美。合适的机器视觉检测系统10还描 述在共同转让的美国专利号7,454,053和7,324,682,2008年12月23日提交 的美国专利申请号12/343,383和2009年10月29日提交的美国专利申请号 12/608,943,在此以引用方式将它们完全并入。

图2是与图1的机器视觉检测系统类似的机器视觉检测系统100的控制 系统部分120和视觉组件部分200的框图,并且包含可用于根据本发明不同 实施例中的特征。如以下将更详细地描述的,利用控制系统部分120来控制 视觉组件部分200。如图2所示,该视觉组件部分200包括光学组件部分205、 光源220、230和240以及具有中央透明部分212的工件台210。该工件台210 沿X轴和Y轴可控地移动,X轴和Y轴位于大致平行于放置工件20的工件 台表面的平面内。该光学组件部分205包括摄像机系统260,可互换物镜250, 并且可以包括具有镜头286和288的镜头旋转台组件280。作为镜头旋转台 组件的替换,也可以包括固定的或手动可互换的可变放大率镜头或变焦镜头 配置等。如以下进一步描述的利用可控电机294,该光学组件部分205可以 沿大致垂直于X轴和Y轴的Z轴方向可控地移动。

将要利用机器视觉检测系统100成像的工件20或支承多个工件20的托 盘或夹具放置在工件台210上。可以控制工件台210相对于光学组件部分205 移动,使得可互换物镜250在工件20的位置之间和/或在多个工件20之间移 动。工件台光源220、共轴光源230和表面光源240中的一个或多个可以分 别发射源光222、232或242,以对工件或多个工件20进行照明。该源光被 反射或传送为工件光255,该工件光穿过可互换物镜250和镜头旋转台组件 280,并且被摄像机系统260聚集。被摄像机系统260捕获的工件20的图像, 在信号线262上输出到控制系统部分120。光源220,230和240可通过信号 线或总线221,231和241分别连接到该控制系统部分120。为了改变图像放 大率,控制系统部分120可以通过信号线或总线281沿着轴284转动镜头旋 转台组件280以选择一个转台镜头。

在不同的典型实施例中,利用可控电机294,该光学组件部分205可以 相对于工件台210在垂直Z轴方向上移动,该可控电机294驱动一个执行机 构或连接电缆等以沿Z轴方向移动光学组件部分205,从而改变摄像机系统 260捕获的工件20的图像的焦点。如此处使用的,术语Z轴是指的是打算用 于聚焦光学组件部分205获取的图像的轴。可控电机294当使用时通过信号 线296连接到输入/输出接口130。

如图2所示,在不同的典型实施例中,该控制系统部分120包括控制器 125、电源部分128、输入/输出接口130、存储器140、工件程序产生器和执 行器150、记录器/译码器155、以及学习模式部分156、运行模式部分157、 编辑部分160、替代数据管理器180、程序状态管理器185、节点管理器190、 窗口间自动滚动部分195和结果窗口部分196。利用一个或多个数据/控制总 线和/或应用编程设计接口,或利用各个元件之间的直接连接,这些组件中的 每一个以及以下描述的其它组件,可以相互连接。

输入/输出接口130包括:成像控制接口131、运动控制接口132、光照 控制接口133和镜头控制接口134。运动控制接口132可包含位置控制元件 132a和速度/加速度控制元件132b,尽管这些元件可以被合并和/或是不可区 分的。光照控制接口133例如控制机器视觉检测系统100中各种相应光源的 选取、功率、on/off(开/关)开关以及选通脉冲定时,如果适用的话。

存储器140包括:图像文件存储器部分141、工件程序存储器部分142 和视频工具部分143,工件程序存储器部分142可以包含一个或多个零件加 工程序142PP等。视频工具部分143包含视频工具部分143a和其它视频工具 部分,它们确定每个对应视频工具的GUI(图形化用户界面),图像处理操作等。 许多已知的视频工具包含现有可买到的机器视觉检测系统内,例如前面讨论 过的QUICK(快视)系列的视觉系统和相关的软件。该视 频工具部分143还包含感兴趣区(ROI)产生器143x,它支持全自动,半自动 和/或人工方式的操作,这些操作定义在视频工具部分143中包含的各种视频 工具中可操作的不同ROI。

通常,存储器部分140存储用于操作视觉系统组件部分200以捕获或获 取工件20的图像,使获取的工件20的图像具有期望的图像特性的数据。存 储器部分140还可以存储检测结果数据,还进一步存储用于操作机器视觉检 测系统100以对获取图像以人工方式或自动方式执行各种检测和测量操作(例 如,部分地,作为视频工具执行),并通过输入/输出接口130输出这些结果的 数据。存储器部分140还可包含通过操作输入/输出接口130定义用户界面的 数据。如以下参照图14-19将更详细地描述的,在一个实施例中,当编辑零 件加工程序时,而非需要执行零件加工程序的所有步骤以产生需要的上下文 用于继续进行编辑,可使用先前存储的数据作为替代数据模拟某一上下文。 存储器部分140还可以存储这种替代数据。

工件台光源220、共轴光源230和表面光源240的信号线或总线221、 231和241全部分别连接到输入/输出接口130。摄像机系统260的信号线262 和可控电机294的信号线296连接到输入/输出接口130。除了承载图像数据 外,信号线262可以承载来自控制器125、启动图像采集的信号。

一个或多个显示装置136(例如,图1中的显示器16)和一个或多个输入装 置138(例如,图1中的操纵杆22,键盘24,和鼠标26)也可以连接到输入/ 输出接口130。该显示装置136和输入装置138可用于显示用户界面,用户 界面可包含各种用户界面特征,其用于执行检测操作和/或用于创建和/或修改 零件加工程序,以观察摄像机系统260捕获的图像和/或用于直接控制视觉系 统组件部分200。特别地,根据本发明的不同典型实施例,显示装置136和 输入装置138用于呈现不同的用户界面特征,用户界面特征用于允许在机器 视觉检测系统100上进行零件加工程序的快速、有效、直观和灵活的编辑。

工件程序产生器和执行器150、记录器/译码器155、学习模式部分156、 运行模式部分157、编辑部分160、替代数据管理器180、程序状态管理器185、 节点管理器190和窗口间自动滚动部分195在一个实施例中可都被认为是连 接到控制器125的通用机器控制器模块MC的一部分。此外,客户端窗口部 分197可连接到控制器125。在一些实施例中,客户端窗口可被认为在控制 系统部分120外部,但与控制系统部分120通信以进行互操作。该工件程序 产生器和执行器150负责创建和执行零件加工程序。应当认识到术语“工件程 序”和“零件加工程序”在这里可以互换使用。

在各种典型实施例中,根据对工件程序产生器和执行器150的操作,当 用户利用机器视觉检测系统100对工件20创建零件加工程序时,用户通过使 用工件编程语言全自动、半自动或人工地对指令进行明确编码和/或通过在学 习模式下(例如,被学习模式部分156控制)操作机器视觉检测系统100产生指 令以提供期望的图像采集训练序列,来产生零件加工程序指令。例如,训练 序列可包括在视场(FOV)中定位工件特征、设定光级、聚焦或自动聚焦、获取 图像以及提供应用到图像的检测训练序列(例如,使用视频工具)。如此操作学 习模式,使得该序列被捕获或记录,并被转换为相应的零件加工程序步骤(即, 指令)。当在运行模式(例如,被运行模式部分157控制)下执行零件加工程序 时,这些零件加工程序步骤将会使得机器视觉检测系统再现该被训练的图像 采集和检测操作,以自动地检测与创建零件加工程序时使用的工件匹配的工 件或多个工件。

利用记录器/译码器155将机器操作转变成零件加工程序代码。换句话说, 如果用户执行一项行动(例如,诸如改变用于测量工件上的特征的视频工具), 就将产生指令,该指令被转变成机器可读语言,以及还可以进行反向的转变。 如以下将更详细地描述的,在这里公开的某些实施例中,零件加工程序中的 某些指令还可转变成用户界面中的指令表示。在一些实施例中,该零件加工 程序指令可编写成标记类型语言代码的形式。在一个特定实施例中,该标记 语言代码可以是MIML代码。该编辑部分160提供或激活与在编辑用户界面 部分160ui内编辑零件加工程序相关的多个操作和用户界面特征,编辑用户 界面部分160ui可包含如以下更详细描述的零件加工程序表示窗口。

替代数据管理器180不需要存在以实施本发明的所有实施例。但是,该 替代数据管理器180可在一些实施例中与本发明一起使用。简要地说,将替 代数据管理器180链接到根据本发明的、可记录在零件加工程序中的替代数 据。在某些实施例中,该替代数据管理器180负责从能正常产生数据的输出 中获取替代数据,以及提供替代数据以编写到零件加工程序。以下将更详细 地描述替代数据管理器180。

在一个实施例中,程序状态管理器185管理程序是否被保护或不被保护。 在一个实施例中,不被保护的零件加工程序可包括存储的替代数据,而被保 护的零件加工程序的所有替代数据都被删除了。在一个示例性实施例中,被 保护的程序是已经完成编辑过程,诸如该程序可在工厂中处于运行模式下使 用。在一个实施例中,用户可以选择要被保护的零件加工程序,此时程序状 态管理器185自动删除所有的替代数据,使得零件加工程序在运行时间没有 负载额外的执行步骤。该程序状态管理器185还负责当程序处于非保护状态 时,使得替代数据仍然记录在零件加工程序中,并且当通过编辑部分160恢 复零件加工程序时,该替代数据指示为可用。

在一个实施例中,节点管理器190负责管理分配到零件加工程序中的节 点的节点编号。在一个实现方式中,在零件加工程序表示内,每个指令表示 被分配一个节点编号。在某些实现方式中,可使用组织树结构,其中存在父 节点和子节点。在某些实现中,记录器/译码器155产生的每一行零件加工程 序表示都通过节点管理器190被分配一个节点编号或一个被保证的唯一标识 符等等。如以下将更详细地描述的,在一些实施例中,窗口间自动滚动部分 195可利用节点管理器190分配的节点编号,同时在不同窗口显示相关联的 零件加工程序元素的有关元素和相应编辑功能。换句话说,如果用户希望看 到哪个工件测量与零件加工程序中的哪个指令表示和编码指令有关,则窗口 间自动滚动部分195将在各自窗口中自动滚动到与相关节点编号相对应的零 件加工程序表示和/或编码指令中的相关行上。

结果窗口部分196提供或激活与编辑零件加工程序相关的多个操作和用 户界面特征,包括在结果窗口用户界面196ui内显示机器视觉系统检测操作 进行测量的结果。但是,更主要地,该结果窗口部分196和/或结果窗口用户 界面196ui可包括在本发明中其他地方描述的各种特征和属性、以及扩展和 替代,对于本领域技术人员来说将显而易见的是,其基于本发明中描绘、描 述和/或引用的窗口间自动滚动部分的特征和属性。

客户端窗口部分197提供或激活与编辑零件加工程序有关的各种操作和 用户界面特征,包括在客户端窗口用户界面197ui内与由显示机器视觉系统 检测操作执行的测量相关的特征。但是,更主要地,客户端窗口部分197和/ 或客户端窗口用户界面197ui可包括在本发明其他地方描述的各种特征和属 性、以及扩展和/或替代,对于本领域技术人员来说将显而易见的是,其基于 本发明中描绘、描述和/和引用的窗口间自动滚动部分的特征和属性。在本发 明的一些实施例中不需要存在客户端窗口。客户端窗口可以与对机器视觉检 测系统的基本操作不是必要的,但可以提供增强的功能或易于使用的程序或 例程相关联。图4-7中所示的图形化视图窗口表示的图形化视图窗口部分, 是客户端窗口部分197的一个例子。如图3所示,客户端窗口可具有基本上 与这里为结果窗口公开的那些类似的窗口间自动滚动用户界面特征和属性。

进一步参照图2,根据先前以引用方式并入这里的共同待审申请中的类 似描绘、描述和/或引用的元素的类似的或基本类似的相对物的描述,可以理 解图2中的许多特征。下面将更详细描述的编辑部分160和/或编辑UI(用户 界面)部分160ui,可具有与并入的引文中描述的类似特征相似或相同的许多 特征。窗口间自动滚动部分195可包括这里公开的许多特征和属性、以及扩 展和替代,对于本领域技术人员来说将显而易见的是,其基于本发明中描绘、 描述和/或引用的窗口间自动滚动部分的特征或属性。此外,窗口间自动滚动 部分195可以替代地称为自动滚动管理器,并且可以具有关于在并入的引文 中描述的自动滚动管理器描述的特征类似的一些特征。

将要理解的是,编辑部分160、窗口间自动滚动部分195、节点管理器 190以及在一些实施例中的替代数据管理器180,它们之间相互协作以提供这 里公开的各种特征,用于增强机器视觉检测系统的零件加工程序编辑环境。 在一些实施例中,这些不同部分能可替代地被配置,使得它们是另一个的一 部分,或者与另外地组合和/或不可区分。因此,将理解的是,图2中所示的 这些部分的配置仅仅是示例性的,而不是限制性的。

图3是窗口间自动滚动部分195(例如,图2中所示的窗口间自动滚动部 分195)可以实施以提供这里公开的窗口间自动滚动特征的通信例程和/或操 作的一个实施例的功能示意图300。图3示意性地示出了窗口间自动滚动部 分195、程序表示窗口部分176pi、结果窗口部分196和客户端窗口部分197。 应当理解的是,“窗口部分”可包括被显示的用户界面窗口及其相关联的特征 和提供其操作的底层例程。这里,窗口部分还可被简单地称为窗口。该程序 表示窗口部分176pi有时还可被称为这里的和/或并入引文中的程序指令表示 窗口,或编辑窗口。

在图3所示的实施例中,通过程序表示窗口选择事件通知SE和程序表示 窗口自动滚动通知AS,窗口间自动滚动部分195与程序表示窗口部分176pi 进行交互。通过结果窗口选择事件通知SE和结果窗口自动滚动通知AS,窗 口间自动滚动部分195与客户端窗口部分197进行交互。通过客户端窗口选 择事件通知SE和客户端窗口自动滚动通知AS,窗口间自动滚动部分195与 客户端窗口部分197进行交互。不同选择事件通知SE单独触发。也就是说, 作为对在另一窗口可具有相关联的元素的类型的元素进行选择的主体(host) 的任意窗口,根据选择事件触发的该窗口的例程或操作可以响应于该选择发 出选择事件通知SE。

例如,选择事件可以是用户选择程序表示窗口中的指令表示,或选择结 果窗口中的结果,或选择客户端窗口中的图形化元素。通过使用用户界面输 入设备和已知的元素选择方法,例如鼠标点击用户界面中的元素等等,可以 完成选择。相反,在各种实施例中,到每个应用窗口的自动滚动通知AS被 触发,以响应任意选择事件通知,并且通常被发送到所有应用窗口(但是,不 需要将自动滚动通知发送到创建当前选择事件通知的窗口)。

自动滚动通知AS是基于选择事件通知SE触发的自动滚动部分间的例程 或操作。响应于接收自动滚动通知AS,窗口显示和/或突出显示在该窗口中 的特征或元素,该特征或元素与在发布触发选择事件通知SE的窗口中选择的 特定元素相关联,如下面将更详细地描述的。这里公开的系统和方法的新颖 性的一个方面在于,这里公开的关于提供机器视觉系统零件加工程序和编辑 环境的不同属性和特征的结合。关于机器视觉检测系统特定操作和编程复杂 性而言,这种结合先前并没有设想或实现,以便提供这里公开的相关零件加 工程序的用户界面特征。

在一个实施例中,图3可以使用已知的“发布者-订阅者”的方法执行,其 有时可使用XML类似的语言(例如,用于网页之间的通知)来执行。在各种实 施例中,发布者-订阅者的方法可通过适配法例如基于列表的方法,或基于广 播的方法,或基于内容的方法来执行,以支持这里公开的特征。在机器视觉 检测系统中,发布者和订阅者通常位于相同的处理空间,并且可以用于通过 “发布者”知道“订阅者”窗口标识。可应用于这样的情形的通过引用方式整体 并入到这里的美国专利No.8,028,085(“‘085专利”),描述了低延迟方法,其 适应于支持这里公开的特征。

在各种实施例中,在学习模式期间,当创建和/或记录零件加工程序指令 时,可建立不同窗口中相关联或相对应的特征。例如,在一个实施例中,在 每个窗口部分,每一个相应特征可被分配或标记相同的“标识符”,作为建立 和记录它们的相关联性的方式。在该实施例中,选择事件通知SE可包括被选 择元素的标识符,其可通过自动滚动通知AS传递,使得接收窗口根据该标 识符可自动滚动(例如,显示和/或突出显示)相关联的特征或元素,如下面更 详细的描述。

图4是包括编辑环境的一个实施例的学习模式用户界面400的示图,该 编辑环境包括根据这里公开的原理进行配置和操作的多个窗口。该编辑环境 包括描绘在零件加工程序指令表示窗口420(其可在各种实施例中用作,或 称为编辑窗口420)中的零件加工程序指令表示(例如,诸如使用“窗框工具” 命名为“线-1”的“测量线”),从那些零件加工程序指令得到的、描绘在结果窗 口430的测量结果(例如,测量结果坐标X=128.1750409),以及描绘在图形化 视图客户端窗口440中叠加在CAD模型上的各种相关测量特征的表示(例如, 包括特征线441和线442,以及由双箭头表示的线之间的距离443)。该用户 界面400具有在并入的引文中描述的对应元素,并且根据在这些引文中的描 述可以更进一步地理解不同的实施例。一般而言,通过在学习模式执行相应 于零件加工程序表示窗口420中描述的指令表示的被记录的零件加工程序指 令,可以产生在窗口430和400中产生的特征和元素。在图4所示的状态中, 用户没有选择任何元素。

用户界面400还包括工具条450,工具条460,工件台位置显示器470和 视场显示器480。工具条450包括水平排列在用户界面400上部的各种用户 工具(例如,测量视频工具)。工具条460包括垂直排列在用户界面右手部的用 户工具(例如,对齐和放大工具)。工件台位置显示器470显示表示工件台32 位置的X,Y和Z坐标。视场显示器480显示摄像机260成像的机器视觉检 测系统100的视场,并且作为参考,在虚线轮廓中示意性地显示该位置,其 中当被用户定义或记录时,会出现与窗框工具指令表示422A相对应的、感 兴趣的窗框工具区域。

在零件加工程序表示窗口420中描绘的零件加工程序指令表示包括父节 点指令表示421、422和423。该父节点指令表示421包括子节点指令表示421A 和421B。父节点指令表示421表示窗框工具将被打开用于测量由线-1表示的 特征线441,其中指令表示421A表示用户利用窗框工具确定线-1的边缘点, 然后利用线-1的边缘点,如由指令表示421B指示的来定义线-1。父节点指令 表示422包括子节点指令表示422A和422B。父节点指令表示422指示窗框 工具将被打开用于测量由线-2表示的线特征442,其中指令表示422A指示用 户利用窗框工具确定线-2的边缘点,然后利用线-2的边缘点,如由指令表示 422B指示的来定义线-2。指令表示423指示确定由“DIST”代表的、线-1与线 -2之间的距离443。结果窗口430显示分别对应于指令表示421,422和423 的测量结果431,432和433。

图5是说明了根据这里公开的原理的一个实施例的一个方面的,图4中 的用户界面的操作的示图。简要地说,零件加工程序指令表示422B在零件加 工程序表示窗口420中被突出显示,并且相关的线测量结果线-2在结果窗口 430中被突出显示,以及相关的线特征441在客户端窗口440中被突出显示。 在各种实施例中,当用户在一个窗口中选择这些元素中的任意一个时,其它 窗口中的其它相应元素将被有利地突出显示或另外被标记(例如,如图所示)。

参照图3描绘和描述的方法可用于在窗口之间提供必要通知,并且每个 窗口可包括提供相应突出显示和/或标记的例程或操作。这提供了上面概述的 好处。在一个实施例中,一旦接收到相关联的选择事件通知(例如,参照图3 描述的),在结果窗口430或客户端窗口440中对元素的选择引起了对零件加 工程序表示窗口的控制传递,和/或在该窗口中对相应零件加工程序指令表示 进行选择,使得便于立即进行编辑操作。

图6是说明了根据这里公开的原理的一个实施例的一个方面的图4中的 用户界面操作的第二个图。图6示出了在不同窗口中相应元素之间关系的类 似的例子。简要地说,选择零件加工程序指令表示423(线之间的距离测量), 以及因此在零件加工程序表示窗口420中被突出显示,并且结果窗口430中 相关的距离测量结果DIST(距离)被突出显示,以及客户端窗口440中相关的 距离443被突出显示。在一些实施例中,就其可以突出显示而言,执行零件 加工程序指令表示423(例如,训练视频工件或确认操作结果,等等)可使相应 的指令以及其他应用窗口中的相应元素处于“选择”状态。

图7是说明了根据这里公开的原理的一个实施例的一个方面的图4中的 用户界面的操作的第三个图。图7示出了一个例子,其中在客户端窗口440 中的特征选择导致对零件加工程序表示窗口420(即,编辑窗口)中的相应 元素进行标记,但是与先前描述的实施例相反,不影响结果窗口430。当然, 在一些实施例中,对结果窗口430中的元素进行选择可以是类似的行为,也 就是说,编辑窗口420可能受到影响,但客户端窗口440却不受影响(如果 期望)。这种不同时影响全部窗口的实施例,对一些特定窗口类型或编程情形, 可具有优点。更具体地,在图7所示的实施例中,当结果窗口430中相关的 线测量结果线-1被选择时(在一些实施例中,突出显示),零件加工程序指令 表示421B在零件加工程序表示窗口420中被突出显示,但是与此同时相关的 距离443在客户端窗口440中没有被突出显示。

对于图5-7,应当认识到的是,任意窗口可包含在选择事件通知时“视线 外”的元素(例如,大零件加工程序,或工件CAD图像的情形,等等)。用户 可在选择前单独滚动任意窗口的内容,并且在此时不需要调整其它窗口的内 容。于是,在各种实施例中,一旦选择事件通知,如果任意窗口中的相应元 素当前不在显示区域,该窗口的例程或操作就会自动使得它的内容跳到或滚 动到与选择事件通知对应的元素上。也就是说,如果在一个窗口中的元素在 它们各自窗口是不可见的,该元素与在另一个窗口中用户选择的元素相关, 那么,学习模式用户界面可被配置为在各自窗口自动“滚动”该显示,直到与 用户选择元素相关的元素在各自窗口中可见。还需要认识到的是,尽管词语 “滚动”或“自动滚动”可在这里使用,但这些词语的使用仅仅是为了简便,而 非限制性的。更一般地,通过任意简便和/或已知的方法(包括简单地用期望 的内容再次产生窗口,等等)可使得与选择的元素对应的元素在各自窗口是 可见的。

图8是包括零件加工程序标记语言代码指令的图800,其可与图4-7中一 些指令表示相对应。特别地,图8描绘了自动定义标识符的执行,自动定义 标识符可用于一些实施例中,以执行上面概述的用户界面同步“自动滚动”特 征,并且以下将进一步地与图9-13中一些或所有的相关。特别地,图8示出 包含类似XML的代码语言的特定实施例,其中当记录零件加工程序指令时, 与线-2的测量对应的“节点ID”值805或标识符805可自动产生,并且被插入 到零件加工程序指令中。

如图8所示,与线-2的端部相关联的点被描述为数据部分810。在一个 实施例中,根据执行的这些指令,节点ID可被窗口间自动滚动部分使用,以 将其分配给在零件加工程序表示窗口和/或结果产生的结果窗口和/或客户端 窗口中显示的相关联的零件加工程序指令和它们相应的指令表示。因此,在 不同窗口中的相关特征在窗口间自动滚动部分中变得相关联。

可替换地,结果窗口和/或客户端窗口和/或零件加工程序表示窗口(即, 编辑窗口),在它们产生它们的被显示元素的同时,可产生它们自己的元素标 识符,并且将这个信息传递到可在被存储的标识符关联表之间形成不同标识 符之间的关联等的窗口间自动滚动部分。应当认识到的是,在一些实施例中, 零件加工程序指令表示中的零件加工程序指令可在机器视觉检测系统控制软 件的单个应用程序或子例程中被处理,使得零件加工程序指令或它的相应零 件加工程序指令表示可由与这些元素中的任何一个相关的窗口间自动滚动部 分可用的单个标识符表示。

下面简要描述图9-13。针对这里包含的不同的附图和公开,以及考虑并 入的引文中包含的描述和公开,通过对图9-13的解释说明可实现与图9-13 中各种实施例相关联的各种特征和属性。

图9是用于提供根据前面概述的以及下面要进一步概述的原理操作的机 器视觉检测系统程序编辑环境的例程900的一个实施例的方框图。

如图9所示,在块910,提供机器视觉检测系统学习模式,配置该学习 模式使得其可操作地接收用户输入以控制机器视觉检测系统的操作,并且记 录与被控操作相对应的相关联的零件加工程序指令,以便创建零件加工程序, 该学习模式包括学习模式用户界面,该学习模式用户界面包含编辑用户界面 部分,该编辑用户界面部分在编辑窗口中包含的零件加工程序指令的可编辑 零件加工程序表示,该零件加工程序表示包含指令表示和结果窗口,该结果 窗口接收和显示各自的结果,该各自的结果包含机器视觉检测系统的被控操 作提供的结果。

在块920,配置学习模式使得当接收到用户输入时,提供机器视觉检测 系统的第一各自组被控操作,其包括确定和在结果窗口中显示第一各自组结 果的操作,那么学习模式可操作地自动提供的操作包括:

·记录对应于第一各自组被控操作的第一各自组零件加工程序指令,该第 一各自组被控操作包括确定和在结果窗口中显示第一各自组结果的操作,

·在结果窗口中显示第一各自组结果,以及

·定义和显示与第一各自组零件加工程序指令相对应的第一各自组指令 表示,该第一各自组零件加工程序指令包括确定和在结果窗口中显示第一各 自组结果。

在至少一个实施例或实施方式中,例程继续到块930中描述的例程部分, 或在另一个实施例或实施方式中,继续到如图10中描述的与例程部分对应的 可替换模块A。

如在块930中所示的实施方式中,配置学习模式以根据一组窗口间自动 滚动操作,提供用户界面操作,其操作结果窗口和零件加工程序表示窗口(编 辑窗口),其中:当用户在结果窗口中选择第一各自组结果的一个成员时,启 动窗口间自动滚动操作,包括;调整编辑窗口中的指令表示,使得第一各自 组指令表示的至少一个指令表示在零件加工程序表示窗口中是可见的,以及 在编辑窗口由指示器标记第一各自组指令表示的至少一个指令表示,以在编 辑窗口指示与用户在结果窗口中选择的第一各自结果相对应的至少一个指令 表示。

图10是说明了可替代图9的块930的例程部分900A的流程图,该例程 部分900A包括提供类似或相同功能的特定实施例。如果使用例程部分900A 替代块930,在图9中描述的块920和/或块925之后是块928,该学习模式 可被配置为定义和记录结果窗口中第一各自组结果的至少一成员与以下中的 至少一个的相应成员之间的窗口间自动滚动关联:

(a)第一各自组零件加工程序指令;以及

(b)第一各自组指令表示。

该相应成员与执行时在结果窗口中产生第一各自组结果的零件加工程序指令 相关联,如前面概述的。于是,在块930’,配置该学习模式以提供基于窗口 间自动滚动关联、根据一组窗口间自动滚动操作对该结果窗口和该编辑窗口 进行操作的用户界面操作,其中:当用户在结果窗口中选择第一各自组结果 的成员时,启动窗口间自动滚动操作,包括;调整编辑窗口中的指令表示, 使得第一各自组指令表示的至少一个指令表示在零件加工程序表示窗口中是 可见的,以及在编辑窗口由指示器标记第一各自组指令表示的至少一个指令 表示,以在编辑窗口指示与用户在结果窗口选择的第一各自结果相对应的至 少一个指令表示。该窗口间自动滚动操作基于窗口间自动滚动关联。可以如 前面概述和/或如后面描述的那样建立该窗口间自动滚动关联。

图11是说明图10的一部分例程的一个实施例的流程图928’。特别地, 图11示出了用于定义和记录窗口间自动滚动关联,使得它可以用于识别在应 用窗口中的相应元素的操作的一个实施例。

在块928’A中,自动定义和记录与结果窗口中的该第一各自组结果的至 少一个成员相关联的至少第一各自结果标识符,其中,该第一各自结果标识 符对该第一各自组结果的至少一个成员是唯一的。

在块928’B中,自动定义和记录以下至少一个:

(a)与第一各自组被记录零件加工程序指令的至少一个成员相关联的至少 第一各自零件加工程序指令标识符,其中该至少第一各自零件加工程序指令 标识符对该至少一个成员是唯一的;以及

(b)与编辑窗口中第一各自组零件加工程序指令表示的至少一个成员相关 联的至少第一各自指令表示标识符,其中该至少第一各自指令表示标识符对 该至少一个成员是唯一的。

在块928’C中,自动定义和记录在至少第一各自结果标识符和以下至少 一个之间的关联:

(a)该至少第一各自零件加工程序指令标识符;以及

(b)该至少第一各自指令表示标识符。

换句话说,参照图10中的块928遵循先前概述的原理,定义和记录的关 联是在结果窗口中特定组结果的标识符与当被执行时在结果窗口产生第一各 自组结果的零件加工程序指令的相应组的标识符之间的关联。在一个实施例 中,如前面参照图8概述的,可实现该标识符。

如前面表示的,结果窗口和/或客户端窗口和/或零件加工程序表示窗口 (即,编辑窗口),在它们产生它们的被显示元素的同时,可产生它们自己的元 素标识符,并且将这个信息传递到窗口间自动滚动部分,其可以被存储的标 识符关联表等形成不同标识符之间的关联等。应当认识到的是,在一些实施 例中,零件加工程序指令表示中的零件加工程序指令可在机器视觉检测系统 控制软件的单个应用程序或子程序中被处理,使得零件加工程序指令或它的 相应零件加工程序指令表示可由与这些元素中的任何一个相关的窗口间自动 滚动部分可用的单个标识符表示。因此,在一些实施例中,与结果相关联的 标识符和与相应零件加工程序指令相关联的标识符可以是相同的标识符,并 且前面参照块928C’概述的关联操作可通过简单使用相同的标识符来完成, 以在不同窗口中标识相应元素。

图12是说明图9和/或10的一部分例程的一个实施例的流程图1200。特 别地,图12示出了可用于执行块930和/或930’的操作的一个操作的实施例。

在判定块1210中,要对是否在结果窗口选择各自结果作出判定(例如, 用户通过用户界面选择结果)。如果在结果窗口中没有选择各自结果,则该例 程继续到块1220,其中对于选择事件监视结果窗口,并且例程返回到判定块 1210。如果在结果窗口中选择各自结果,则该例程继续到块1230。

在块1230中,标识与被选择的各自结果相关联的相应各自结果标识符。

在块1240中,标识与各自结果标识符相关联的各自零件加工程序指令 (PPI)和/或各自PPI标识符。在一个实施例中,这可以通过标识与各自结果标 识符相关联的各自零件加工程序指令表示标识符,以及然后标识在各自零件 加工程序指令表示下的零件加工程序指令(PPI)的中间步骤来完成。

在判定块1250中,要确定相应于与各自结果标识符相关联的各自PPI和 /或PPI-标识符的指令表示在零件加工程序表示窗口中是否可见。如果相应于 与各自结果标识符相关联的各自PPI和/或PPI-标识符的指令表示在零件加工 程序表示窗口中是可见的,则该例程继续到块1270。如果相应于与各自结果 标识符相关联的各自PPI和/或PPI-标识符的指令表示在零件加工程序表示窗 口中是不可见的,则该例程继续到块1260。

在块1260中,调整零件加工程序表示窗口中的指令表示,使得相应于与 各自结果标识符相关联的各自PPI和/或PPI-标识符的至少一个指令表示在零 件加工程序表示窗口中是可见的。

在块1270中,相应于各自PPI和/或PPI-标识符的该指令表示由指示器 在用户界面中进行标记,以指示在与用户在结果窗口中选择的各自结果相对 应的编辑窗口中的至少一个指令表示。

图13是说明用于操作程序编辑环境的其它和/或替代例程的一个实施例 的流程图1300。特别地,图13示出了操作的一个实施例,其中编辑窗口中 的选择事件触发对结果窗口中相应结果的标识。

在判定块1310中,要判定在零件加工程序表示窗口中是否选择零件加工 程序指令(PPI)表示。如果在零件加工程序表示窗口中选择PPI表示,则该例 程继续到块1320,其中对于选择事件监视零件加工程序表示窗口,并且例程 返回到判定块1310。如果在编辑窗口中选择PPI表示,则该例程继续到块 1330。

在块1330中,标识与各自选择的PPI表示相关联的各自零件加工程序指 令和/或各自PPI-标识符。

在块1340中,标识与各自PPI和/或各自PPI-标识符相关联的相应的各 自结果标识符。

在判定块1350中,要确定由相应的各自结果标识符标识的结果在结果窗 口中是否可见。如果由相应的各自结果标识符标识的结果在结果窗口中是可 见的,则该例程继续到块1370。如果由相应的各自结果标识符标识的结果在 结果窗口中是不可见的,则该例程继续到块1360。

在块1360中,调整结果窗口中的结果,使得由相应的各自结果标识符标 识的结果在结果窗口中是可见的。

在块1370中,对该结果在用户界面中用指示器标记,以指示结果窗口中 的至少一个结果,其与用户在零件加工程序表示窗口中选择的各自PPI表示 相对应。

图4-8示出了视场显示480,其显示了由摄像机260成像的机器视觉检测 系统100的视场,并且作为参考,在虚线轮廓中示意性地显示该位置,在其 中会出现被用户定义或记录那样的感兴趣的窗框工具区域(例如,与窗框工具 指令表示422A对应的窗框工具482,以及与窗框工具指令表示421A对应的 窗框工具481)。应当认识到的是,在一些实施例中,视场显示480可以表现 窗口,该窗口以类似于这里先前描述的方式同步显示与在零件加工程序表示 窗口(和/或其它窗口)中选择或突出显示的元素相对应的元素。也就是说,当 在编辑窗口中选择零件加工程序指令表示(例如,窗框工具指令表示)时,视 场显示480可显示初始用于定义该指令的相应工件特征。

在一些实施例中,被显示的图像可以是被恢复的存储图像。前面并入 的’232申请公开了编辑部分操作,其中“替代数据”在学习模式中执行了零件 加工程序指令后被存储。这样的替代数据可以包括被存储的工件图像,使得 当在编辑窗口中选择相应的零件加工程序指令表示(例如,窗框工具指令表示) 时(即,当该图像中的工件特征被用于初始定义该指令时),其在视场显示480 中显示。可替换地,替代数据可提供确定物理位置、镜头配置和光照等等的 手段,以加速对图像采集情况和在最初定义指令时使用的图像的实际复制。 如’232申请中描述的,与需要调整实际视觉机器组件以获取该工件特征的新 图像相比,该过程可以节约相当长的时间并且避免碰撞危险。更一般地,’232 申请中描述的编辑部分操作,可有利地与这里公开的各种实施例组合使用, 以在执行了这里描述的自动滚动操作之后,在合适的时候通过替代模式执行 或实际模式执行,或两者的结合,提供合适的程序编辑上下文。因此,’232 申请的部分包含在下面的图14-19中,以便于简单引用和理解。更进一步的 理解可通过’232申请和其它并入的引文得到。

图14是说明图2的编辑部分160的其它组件的框图。如图14所示,编 辑部分160包括编辑操作控制器174,编辑用户界面部分176,编辑器命令部 分177,和编辑执行部分178。该编辑操作控制器174控制编辑功能的操作, 并且编辑用户界面部分176为编辑功能提供用户界面特征。该编辑用户界面 部分176包括程序表示窗口部分176pi,该程序表示窗口部分176pi包括表示 用户界面特征176r,该表示用户界面特征176r包括节点用户界面特征176n。 程序表示窗口部分176pi提供包括零件加工程序指令表示的零件加工程序表 示,在下面将关于图15更详细地进行描述。在一个实施例中,可在树结构中 提供零件加工程序表示。该表示用户界面特征176r提供诸如插入指针的特征, 其可以根据上下文的状态和如何获取上下文(例如,通过实际运行等等,上下 文是否由替代数据产生)来改变颜色。在一个实施例中,对于节点用户界面特 征176n,这些可以包括诸如图标或断开的图标,以及颜色突出显示的特征, 以便指示节点是激活状态等等。

编辑执行部分178负责编辑过程期间的各种执行模式,并且包括替代模 式部分180、实际模式部分191和编辑执行用户界面特征部分192。替代模式 部分180包括节点分析器181,该节点分析器181包括替代数据操作181A和 机器操作181B。如下面将更详细地描述的,当替代模式部分180操作替代执 行模式时,根据本发明,利用替代数据对继续的编辑操作产生上下文。在一 个实现方式中,该节点分析器181确定零件加工程序执行是否已经到达目标 节点(例如,在零件加工程序中进行过修改的地方)。根据包含的节点类型,该 节点分析器181确定是否要执行替代数据操作181A或实际机器操作181B。 通常,一旦到达目标节点,就会执行实际机器操作,其中对于目标节点之前 的零件加工程序指令,可利用替代数据操作产生至少一部分继续编辑操作所 需要的上下文。如果替代数据丢失,就会提示用户允许/执行实际机器操作, 以产生需要的上下文。在一个实现方式中,分析每个节点以确定替代数据操 作是否可用,包括替代数据是否存在,是否是正确类型的节点用于替代数据 操作,可替代地是否需要使用实际机器操作,等等。

实际模式部分191包括由现有机器视觉系统更传统地执行的操作。可以 认识到的是,在合适的时候,实际模式部分191还可以被执行机器操作181B 的替代模式部分180调用。实际模式部分191包括机器操作191A和数据操 作191B。该机器操作191A进行实际机器操作(例如,移动工件台作为视频工 具操作的一部分),而数据操作191B主要输出数据。该编辑执行用户界面特 征部分192为执行编辑功能提供用户界面特征(例如,关于各种执行操作状态 的指示,例如指示零件加工程序的哪部分使用了替代数据或通过实际执行来 运行的颜色码,等等)。

编辑器命令部分177包括运行片段部分177A,修改部分177B,和插入/ 附加部分177C,详细地描述在’232申请中。通常,运行片段部分177A对零 件加工程序的选择片段执行实际运行。将认识到的是,为了运行零件加工程 序的选择片段,必须建立关于被选择片段的合适上下文。如下面将更详细地 描述的,根据本发明,可利用替代数据建立该合适的上下文。如果对于零件 加工程序的某些部分不存在替代数据,那么可以运行片段以产生需要的替代 数据。将认识到的是,在现有的机器视觉系统中,由于需要将合适上下文引 导至被选择的片段,运行零件加工程序的隔离片段而不运行零件加工程序的 所有先前部分是很困难的。例如,如果片段需要降低工件台,但系统没有意 识到工件台目前的X-Y-Z位置,那么将工件台降低到未知位置是不可取的。 因此,在现有的实现方式中,典型使用的技术是从开始起运行整个零件加工 程序,以便能够运行中间的片段,对于中间的片段,所有的先前操作都需要 大量的时间执行。相反,根据本发明,可以利用替代数据建立合适的上下文, 用于进行编辑或运行零件加工程序的片段,而不需要从开始起运行整个零件 加工程序。

修改部分177B与运行片段部分177A的操作具有某些相似性。通常,当 选择零件加工程序中的指令表示来修改时,那么对于零件加工程序中要被修 改的指令之前的部分可利用替代模式。在一个实施例中,当对零件加工程序 中的指令表示选择修改命令时,指令表示的节点被指定为目标节点。一旦到 达目标节点,编辑器切换出替代模式并且切换入实际运行模式(例如,由实际 模式部分191控制)以及执行该节点的第一相关零件加工程序指令。在一个实 施例中,如果选择用于修改的指令与子节点相对应,那么实际执行可被指定 到父节点的开始。在一个特定实施例中,如果与窗框工具有关的子节点要被 修改,包括对窗框工具建立图像采集的父节点可以是实际执行被设为开始的 节点。对于插入/附加组件177C,如果在子节点之间插入,那么还需要执行父 节点以用于执行期望的插入。将认识到的是,在某些实施方式中,附加操作 通常可被认为是插入操作的特定情形,其发生在存在的零件加工程序的最后。

图15是包含零件加工程序1510的表示的编辑界面1500的示图,该零件 加工程序具有多个初始零件加工程序指令表示1551-1564。该编辑界面1500 还包括各种诸如选择条1520的测量和/或操作选择条。下面将关于图16更详 细地描述零件加工程序表示1510的特定指令表示的操作。

图16是说明了包含具有工件1615的视场窗口1610的图像的用户界面 1600的图,在工件1615上执行与图15对应的零件加工程序。用户界面1600 还包括各种诸如选择条1620和1640的测量和/或操作条,实时X-Y-Z(位置) 坐标窗口1630,照明控制窗口1650,和视频工具参数框1660。如以下将更 详细地描述的,根据图15中的相关零件加工程序指令表示,确定工件1615 上的各种特征,例如边缘点PTX,PTY,PT3和PT4,线XLINE,YLINE,L3 和L4,原点XYORIGIN,和插入点12的集合。

接下来的描述将参照图15中的初始零件加工程序指令表示351-364,以 及图16中的工件1615上的相应特征。在一个实施例中,每个指令表示351-364 都与节点相关联,并且被指定节点号或标识符。在某些实现方式中,利用树 结构,其中一些指令表示与父节点相关联,以及一些指令表示与子节点相关 联。例如,子节点指令表示1551A-1551D,1553A-1553C,1554A-1554B, 1561A-1561C,以及1562A-1562B分别与父节点指令表示1551,1553,1554, 1561以及1562相关联。将认识到的是,在一个实施例中,在编辑界面1500 显示的指令表示1551-1564包括从零件加工程序的标记语言指令导出的图标 和标签。在一个实施例中,零件加工程序的标记语言可以包括类似XML的 代码。因此,指令表示1551-1564指向被执行的关联代码指令,如以关于图 17A和17B中将要更详细地描述的。

如图15所示,零件加工程序表示1510从指令表示1551和1552开始, 其指示用户手动选择工件1615上的位置以作为粗略原点ROP(未示出),以及 然后将原点与粗略原点ROP对齐。更具体地,指令表示1551A,1551B,1551C 和1551D指示用户建立和利用手动工具以定义粗略原点ROP,并且指令表示 1552将原点与粗略原点ROP对齐。然后,指令表示1553指示窗框工具将被 打开用于测量线XLINE。更具体地,指令表示1553A和1553B表示用户建立 (例如,包括移动工件台到指定位置和获取相应图像)和利用窗框工具,以确定 边缘点PTX。窗框工具与其它边缘测量视频工具的功能和操作在现有技术中 是已知的,并且在先前并入的引文中更详细地描述。窗框工具确定的边缘点 PTX然后被指令表示1553C利用以定义线XLINE。类似地,指令表示1554 指示窗框工具将被打开用于测量线YLINE,其中指令表示1554A指示用户利 用窗框工具确定边缘点PTY,其然后如由指令表示1554B指示地被利用以定 义线YLINE。

然后,指令表示1555表示在线XLINE和YLINE的交叉处确定交叉点 XYORIGIN。然后,指令表示1556指示机器视觉系统被命令以将原点与点 XYORIGIN对齐。然后指令表示1557指示机器视觉系统被命令以将工件1615 的X轴与线XLINE对齐。如下面关于图5更详细描述的,以及如注释行1558 指示的,指令表示1551-1557的操作建立工件1615的正确位置和方向,用于 执行其它测量。

然后指令表示1561指示窗框工具将被打开用于测量线L3。更具体地, 指令表示1561A和1561B指示用户建立(例如,包括移动工件台到指定位置 和获取相应图像)和利用窗框工具,以确定边缘点PT3,其然后如指令表示 1561C指示地被利用以定义线L3。如下面将更详细地描述的,用于测量线L3 的窗框工具(例如,如在图16中的窗框工具1670图示的),以及相关联的指令 表示1561和1561A-1561C,用作图17A和17B中的例子,以说明如何产生, 存储和修改替代数据。

返回到图15,指令表示1562指示窗框工具将被打开用于测量线L4,其 中指令表示1562A指示用户利用窗框工具确定边缘点PT4,其然后如指令表 示1562B指示的一样被利用以定义线L4。指令表示1563指示用户定义被选 择位置容差,以及指令表示1564指示在先前确定的线L3和L4交叉的位置 确定交叉点12。

在存储并退出与指令表示1510对应的零件加工程序之后,当恢复零件加 工程序用于编辑时,现有实施方式需要从开始起执行整个零件加工程序,以 产生有效上下文用于继续对零件加工程序进行编辑。虽然,每次恢复零件加 工程序用于编辑时,现有实施方式通过执行所有的指令来产生精确的结果和 零件加工程序,但是执行所有的指令将消耗大量的时间(特别是那些需要某些 诸如硬件交互等等之类的时间消耗过程的指令)。如下面将更详细地描述的, 根据本发明,不是从开始起执行整个零件加工程序,可使用先前存储的数据 作为替代数据,用于模拟有效上下文以对零件加工程序进行继续编辑。

换句话说,在一个实施例中,当对零件加工程序正在进行继续编辑以在 工件1615上进行测量时,知道某些参数是有用的。例如,为了知道视频工具 的正确阈值,尺寸和位置,必须具有正确的视频图像,包括例如正确的工件 台位置、光级、放大率等信息。在一个实施例中,这种信息可被认为是“硬件 上下文”部分。此外,为了知道序列对继续对零件加工程序进行编辑是否正确, 知道已经做过什么是很有用的,包括已经测量了什么特征,已经利用了哪部 分坐标系统,等等。在一个实施例中,该信息可被认为是软件上下文部分。 在一个实施例中,该上下文被通常认为是将机器视觉检测系统的用户界面建 立在一种状态,使得所有的本地界面控制元素为修改零件加工程序作好准备。 如上面所提到的,在记录准确上下文的同时零件加工程序被初始记录,并且 还在运行时间之后记录,因为所有的零件加工程序指令(例如,与表示 1551-1564相对应)通常是按顺序执行。如上面所提到的,这为对零件加工程 序进行继续编辑提供了有效上下文,包括指示已经由零件加工程序(例如,关 于用户界面1600中的工件1615图示的线XLINE,YLINE,L3,L4和交叉 点XYORIGIN和I2的指示)产生的任意测量和结果。

如下面将更详细地描述的,当编辑零件加工程序,而不是需要执行零件 加工程序的所有指令表示以便产生需要的上下文,通过使用先前存储的数据 作为替代数据可以模拟某些上下文。简要地说,在对零件加工程序记录和运 行时间执行期间,需要用来确定上下文的该数据与零件加工程序一起存储。 于是,在一段时间后,利用存储的数据作为替代数据可以模拟某些结果,用 于产生需要的上下文。因此,通过避免执行某些时间消耗操作(例如,需要硬 件交互的那些,诸如移动工件台、边缘测量、聚焦、光照变化、模式匹配等 等),可以实现节省大量的时间。以下将关于图17A和17B更详细地描述可 被稍后利用作为替代数据的存储的数据。

图17A和17B是与图15的一些指令表示相对应的零件加工程序的标记 语言代码指令的图。图17A和17B是与图15的零件加工程序表示的一些指 令表示相对应的标识语言代码指令的示图1700A和1700B。更具体地,图17A 和17B示出了类似XML编码的零件加工程序指令,其与图15中用于测量线 L3的指令表示1561和1561A-1561C相对应。将认识,在一个实施例中,指 令表示1561和1561A-1561C包括从图17A和17B的类似XML代码指令中 得出的图标和标签。指令表示1561和1561A-1561C本身并不被执行,但是 取而代之的是指向被执行的图17A和17B的相关联的代码指令。

如图17A和17B所示,该类似XML代码指令包括节点I.D.号1761, 1761A,1761B和1761C,在一个实施例中其可以与图15中指令表示1561, 1561A,1561B和1561C相对应。类似XML代码指令还包括图像位置的一些 位置信息1710,以及窗框工具的一些窗框工具位置信息1720,诸如可以在图 16的用户界面1600的区域1630和1660中显示。如图17B所示,与零件加 工程序一起存储数据1730,其可在以后被利用作为替代数据用于模拟上下文。 更具体地,当图15的指令表示1561B指示运行图16的窗框工具1670以确定 边缘点集PT3时,相对于工件的零件坐标系统的边缘点集PT3的位置被存储 在类似XML代码指令中作为数据1730。可对零件加工程序进行修改,其可 导致对替代数据1730的修改。

图18A和18B是图示用于提供机器视觉系统编辑环境的例程1800的一 个实施例的流程图,该编辑环境包括实时上下文产生特征。如图18A所示, 在块1810中,提供被配置的运行模式,使得利用运行执行模式可操作地执行 先前创建的零件加工程序。在块1820中,提供被配置的学习模式,使得可操 作地接收用户输入以控制机器视觉检测系统的操作,并且记录相应于控制操 作的相关联的零件加工程序指令,以便创建零件加工程序。此外,使得该学 习模式包括编辑用户界面,编辑用户界面包含零件加工程序指令的可编辑零 件加工程序表示,该零件加工程序表示包含指令表示。在块1830中,提供配 置的编辑部分使得可操作地编辑零件加工程序。此外,该编辑部分包括编辑 执行部分,其可操作地根据与运行执行模式不同的编辑执行模式,执行先前 记录的零件加工程序指令。例程从块1830继续到点A,以下关于图18B将更 详细地描述。

如图18B中所示,例程从点A继续到块1840。在块1840,配置学习模 式使得其进一步可操作地自动记录各自的替代数据,其与各自组的被记录的 零件加工程序指令相关联。此外,至少一些各自替代数据包括从与相关联的 各自组被记录的零件加工程序指令对应的被控操作的实际执行得到的数据。

在块1850中,配置编辑执行模式使得其包括替代执行模式,其中在可编 辑零件加工程序指令表示中表示的零件加工程序指令替代执行模式期间,对 于至少一组零件加工程序指令,如果先前与该组零件加工程序指令相关联的 各自的替代数据已被记录,那么该组零件加工程序指令的至少部分成员不被 执行,使得它们相关联的被控操作不被实际执行。此外,在随后的替代执行 模式的操作中,使用各自替代数据作为另外可以从它们不被执行的相关联被 控操作中产生的数据的替代。

图19是说明用于进行替代执行模式的例程1900的一个实施例的流程图, 用于提供由零件加工程序指令表示、元素或节点指示的零件加工程序位置处 的有效编辑上下文。在块1910中,替代执行模式在有效的上下文位置处开始。

在块1920中,例程继续到下一个节点作为当前节点。在判定块1930中, 确定当前节点是否是编辑命令的目标节点。如果当前节点是编辑命令的目标 节点,那么例程继续到块1940,其中,在当前节点处开始实际执行模式,此 后例程继续到判定块1995,如下面将更详细地描述的。但是,在一个实施例 中,目标节点可被认为是与指令表示相关联的父节点,以及可在父节点开始 实际执行模式,使得执行与指令表示对应的测量的物理设置,以对指令表示 的编辑提供正确的物理上下文。

在判定块1930中,如果确定当前节点不是编辑命令的目标节点,那么例 程继续到判定块1950,其中确定当前节点是否无条件地需要物理系统改变。 例如,如果节点移动工件台以对工件的新部分成像(例如,通过简单的“移动” 命令,等等),那么,在一些实施例中,这可能无条件地需要物理系统改变。 类似地,某些放大率变化是无条件的物理系统改变,等等。但是,在一些实 施例中将认识,如果这种变化嵌入到已具有相关联替代数据的父节点中,并 且随后的节点再次需要类似的物理变化(例如分别移动和放大率变化),那么其 可以不被无条件地需要,因为通过类似的随后指令其最终是可被取代的。基 于本发明的教导,本领域技术人员可以确定各种分析当前节点是否无条件需 要物理变化的方法。在任意情形中,如果当前节点确实无条件需要物理变化, 那么例程继续到块1940。如果当前节点不是无条件需要物理变化,那么例程 继续到判定块1960。

在判定块1960中,确定当前节点是否提供结果数据。如果当前节点确实 提供结果数据,那么例程继续到判定块1980,如下面将更详细地描述的。如 果当前节点没有提供结果数据,那么例程继续到块1970,其中节点在替代执 行模式中执行,随后该例程继续到块1995,如下面将更详细地描述的。

在块1980中,确定当前节点是否存在替代数据。如果当前节点是存在替 代数据,那么例程继续到块1990,如下面将更详细地描述的。如果当前节点 不存在替代数据,那么例程继续到块1940。

在块1990中,节点在替代执行模式中执行。对于替代执行模式,使用替 代数据作为另外可以由控制操作的执行而产生的数据的替代,该控制操作与 相应于当前节点的一组零件加工程序指令的至少一些成员相关联,并且可以 跳过该组零件加工程序指令的这些成员,使得相关联的控制操作不被实际执 行。

然后,该例程继续到判定块1995,其中确定是否存在另一个在替代执行 模式执行的节点。如果存在另一个在替代执行模式执行的节点,那么例程回 到块1920,如果不存在,则例程结束。例如,如果通过到达目标节点并且执 行块1930和1940,执行已经到达判定块1995,那么在一些实例中,不存在 另一个在替代执行模式执行的节点,因为已经在目标节点处或目标节点范围 内创建了上下文。

虽然已经图示和描述本发明各种优选的和示例性实施例,将认识,可以 作出没有脱离本发明精神和范围的各种变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号