一种图形化编程方法、装置、计算机存储介质及视觉系统与流程

文档序号:17534267发布日期:2019-04-29 13:49阅读:147来源:国知局
一种图形化编程方法、装置、计算机存储介质及视觉系统与流程

本发明涉及工业机器人技术领域,尤其涉及一种图形化编程方法、装置、计算机存储介质及视觉系统。



背景技术:

当前工业视觉设计中,流程设计的交互界面一般以图形化操作、电子表格、设计执行序列或编程等方式来实现,其中,图形化操作方式中,操作最简单,但是目前在视觉领域中图形化操作还不能非常方便地解决很多常用操作问题;电子表格在较为复杂的程序设计时,使用较为复杂;设计执行序列比较简单,但是不易用于复杂编程,尤其在机器人及视觉上,基本上不能使用;编程方式比较复杂,难以推广。

因而,目前工业视觉流程设计的外部输入的操作不便捷,整体的简洁性差,并且交互界面表达不直观,执行依赖关系不清晰,进而无法实现清晰的操作可视化。



技术实现要素:

本发明的目的在于,针对现有技术中的工业视觉流程设计的交互界面操作不便捷,无法实现清晰的操作可视化的问题,提供一种图形化编程方法、装置、计算机存储介质及视觉系统。

本发明解决上述技术问题所采用的技术方案是提供了一种图形化编程方法,所述方法包括:在编程界面上显示第一图形元素,其中所述第一图形元素对应于第一函数;在所述编程界面上显示列表式图形元素,并显示所述列表式图形元素与所述第一图形元素之间的连接关系,其中所述列表式图形元素对应于用于对所述第一函数的运行结果进行解析的第二函数;利用所述第二函数对所述第一函数的运行结果进行解析,并将解析结果显示在所述列表式图形元素上;在所述编程界面上显示第二图形元素,并显示所述解析结果与所述第二图形元素之间的连接关系,其中所述第二图形元素对应于第三函数;利用所述解析结果控制所述第三函数执行相应的功能。

本发明解决上述技术问题所采用的另一技术方案是提供了一种图形化编程装置,其中,所述装置包括存储器和处理器,其中:所述存储器用于存储被配置为被所述处理器执行的程序指令;所述处理器执行所述程序指令以实现如上所述的图形化编程方法。

本发明解决上述技术问题所采用的另一技术方案是提供了一种计算机存储介质,其中,存储有处理器可运行的计算机指令,所述计算机指令用于执行如上所述的图形化编程方法。

本发明解决上述技术问题所采用的另一技术方案是提供了一种视觉系统,其中,所述系统包括如上所述的图形化编程装置。

本发明的有益效果有:通过列表式图形元素对应的第二函数对第一图形元素对应的第一函数的运行结果进行解析,将解析结果显示在列表式图形元素上,方便编程人员了解输入的操作,接着实现第二图形元素与解析结果之间的连接关系,进而可以控制第二图形元素对应的第三函数执行相应的功能,从而实现操作可视化的清晰,直观且简洁。

附图说明

下面将结合附图及实施方式对本发明作进一步说明,附图中:

图1是本发明的图形化编程方法一实施例的流程图;

图2是本发明上述实施例中的列表式图形元素第一实施例的示意图;

图3是本发明上述实施例中的列表式图形元素第二实施例的示意图;

图4是本发明上述实施例中某一第三图形元素的执行信息的示意图;

图5是实行本发明上述实施例的方法的一个具体应用场景的示意图;

图6是实行本发明上述实施例的方法的另一个具体应用场景的示意图;

图7是本发明的图形化编程装置一实施例的结构示意图。

具体实施方式

为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明的技术方案做进一步详细描述。

如图1所示,是本发明的图形化编程方法一实施例的流程图,该方法可应用于工业视觉设计中,实现操作可视化,当然,该方法也可用于其他方面的设计中,例如,某管理系统的管理操作界面,在本领域技术人员的理解范围之内,不作限定。该方法包括以下步骤:

步骤s102:在编程界面上显示第一图形元素,其中第一图形元素对应于第一函数。

编程界面可以是工业视觉系统的,也可以是其他可视化控制系统的。第一图形元素预先由编程人员设置,其形状可为一椭圆,当然,在其他实施例中,其形状可为方形,可设置于编程界面的工具栏中,其对应于第一函数,第一函数也由系统编程人员预先设置,用于获取编程所需要的信息,例如来自外部输入/输出设备的外部信息。又例如,工业视觉系统对机器人进行控制时,在编程界面上显示第一图形元素时,系统内相应地调用了第一函数,输出第一函数的运行结果,进而获取相应的来自机器人的外部信息,以进行后续编程处理。

步骤s104:在编程界面上显示列表式图形元素,并显示列表式图形元素与第一图形元素之间的连接关系,其中列表式图形元素对应于用于对第一函数的运行结果进行解析的第二函数。

列表式图形元素对应的第二函数,用于对第一函数的运行结果进行解析,也由系统编程人员预先设置,解析的规则可与设置第一函数的运行结果的开发规则相一致,例如,开发规则中,第一函数的运行结果表示控制某个组件动作,则解析运行结果之后即是控制某个组件动作的相关参数。在编程界面上可通过一直线来表示列表式图形元素与第一图形元素之间已经建立的连接关系。列表式图形元素与第一图形元素之间的连接关系,表示第一函数的运行结果输入到列表式图形元素中,作为第二函数的输入量。

步骤s106:利用第二函数对第一函数的运行结果进行解析,并将解析结果显示在列表式图形元素上。

例如,在显示列表式图形元素与第一图形元素之间的连接关系时,第二函数对第一函数的运行结果进行解析,例如,工业视觉系统中,系统内调用第二函数,即对第一函数的运行结果进行解析,进而在解析完成时,将解析结果显示到列表式图形元素上。

步骤s108:在编程界面上显示第二图形元素,并显示解析结果与第二图形元素之间的连接关系,其中第二图形元素对应于第三函数。

第二图形元素对应的第三函数,由系统编程人员预先设置,系统内可预先设置多个第三函数,以用于后续不同的执行命令。解析结果显示在列表式图形元素上,显示解析结果与第二图形元素之间的连接关系,即是在列表式图形元素与第二图形元素之间建立连接关系。在编程界面上也可通过一直线来表示第二图形元素与列表式图形元素之间已经建立的连接关系。在第二图形元素与列表式图形元素之间的连接关系建立后,表示列表式图形元素上的解析结果控制相应的第二图形元素,以使其执行相应的功能。

步骤s110:利用列表式图形元素上的解析结果控制第三函数执行相应的功能。

例如,在建立第二图形元素与列表式图形元素之间的连接关系时,控制第三函数执行相应的功能,例如,工业视觉系统中,在编程界面上显示第二图形元素时,系统内调用第三函数,执行相应的功能,例如,开启摄像机、选择相应的程序等。

值得注意的是,上述第一图形元素、列表式图形元素以及第二图形元素均是可以预先设置的,其形状各不相同或者部分相同,均可设置于编程界面的工具栏上,在需要使用时,直接将其拖拉到编程界面上,并进行显示,同时,在编程界面上对其进行操作时,例如单击或者双击,即可在编程界面上显示其对应的函数的参数,若用户需要对函数的参数进行修改,在编程界面上即可进行,方便简洁。

本实施例中,在编程界面上,列表式图形元素对应的第二函数对第一图形元素对应的第一函数的运行结果进行解析,将解析结果显示在列表式图形元素上,方便编程人员了解输入的操作,进而,在第二图形元素与解析结果建立连接关系时,控制第二图形元素对应的第三函数执行相应的功能,实现清晰的操作可视化。

进一步地,第一函数获取到的编程所需要的信息中包含逻辑变量,逻辑变量对应地表示编程所需要的信息中是否包含相应的信息项,这样通过逻辑变量来表达后续编程处理,使得编程界面直观且简洁,其中,逻辑变量可以用布尔值来表示,例如,1表示获取到的编程所需要的信息中包含相应的信息项,0表示获取到的编程所需要的信息中不包含相应的信息项,即无相应的信息项,当然逻辑变量还可以用其他来表示,比如多位二进制数。当然,在其他实施例中,第一函数获取到的编程所需要的信息中还可以包含其他表述变量,例如字母变量,即用字母来表示编程所需要的信息中是否包含相应的信息项。进而,上述步骤s106包括:利用第二函数对第一函数的运行结果中的逻辑变量进行解析,并将逻辑变量显示在列表式图形元素上。本实施例中,将逻辑变量显示到列表式图形元素上,这样,在列表式图形元素上可直观了解到列表式图形元素之后的图形化编程中所需要的信息项。

具体地,在一个实施例中,在工业视觉系统中,第一函数用于获取来自机器人或外部输入/输出设备的外部信息,即第一函数的运行结果是获取到的外部信息,此时,利用第二函数对第一函数的运行结果中的逻辑变量进行解析,并将逻辑变量显示在列表式图形元素上,包括:利用第二函数对外部信息中的逻辑变量进行解析,并将逻辑变量显示在列表式图形元素上。

具体地,若第一函数获取到的编程所需要的信息中包含多个逻辑变量,此时,逻辑变量为多个,每个逻辑变量对应于一个后续所要处理的信息项,此时,利用第二函数对第一函数的运行结果中的逻辑变量进行解析,并将逻辑变量显示在列表式图形元素上,包括:根据用户的指定从多个逻辑变量中选择用户指定的逻辑变量,并将用户指定的逻辑变量显示在列表式图形元素上。这样,用户在编程时,可根据自身的选择将逻辑变量显示到列表式图形元素上,操作便捷。

具体地,在一个实施例中,列表式图形元素为逻辑列表,该逻辑列表可以包含一个或者多个逻辑变量,每个逻辑变量对应于一个列位,即逻辑列表的列,每个列位包含一个或者多个栏位。此时,利用第二函数对第一函数的运行结果中的逻辑变量进行解析,并将逻辑变量显示在列表式图形元素上,包括:利用第二函数对第一函数的运行结果中的逻辑变量进行解析,并将逻辑变量显示到逻辑列表的对应栏位内。

进一步地,在将逻辑变量显示到逻辑列表的对应栏位之后,上述步骤s108包括:显示第二图形元素与对应的栏位之间的连接关系。

进一步地,在列表式图形元素为逻辑列表的基础上,在上述步骤s106之前,还包括:根据用户的指定设置列表式图形元素中的栏位数量。用户可根据自己的编程习惯自定义列表式图形元素的栏位数量,例如,若用户指定列表式图形元素包含3个栏位,则其数量为3,如图2所示,其中,第一栏位表示信息项的布尔值,即用于显示逻辑变量,此时,将逻辑变量显示到逻辑列表的对应栏位内包括:根据用户的指定在对应的第一栏位内显示逻辑变量。进一步地,第二栏位表示第一栏位的逻辑变量所来源的第一图形元素,第三栏位表示用户针对逻辑变量所来源的第一图形元素的自定义描述,此时,将逻辑变量显示到逻辑列表的对应栏位内包括:根据用户的指定在对应的第二栏位内显示逻辑变量所来源的第一图形元素和/或在对应的第三栏位内显示用户的自定义描述。

进一步地,若用户指定列表式图形元素包含4个栏位,则其数量为4,如图3所示,第四栏位表示不同的逻辑变量进行运算后的值,此时,将逻辑变量显示到逻辑列表的对应栏位内进一步包括:根据用户的指定对逻辑列表中的不同的逻辑变量进行运算,并将运算结果显示到对应的第四栏位。

值得注意的是,根据用户的指定来在对应的栏位内显示相应的信息,在编程过程中,可由用户自行在逻辑列表中自行写入,并进行显示,例如,第二栏位内所显示的逻辑变量所来源的第一图形元素,或者,第三栏位内所显示的用户自定义描述,当然,也可在运行第二函数时,由系统自动写入,例如,第一栏位内所显示的逻辑变量。

如图3所示,在对逻辑列表中的不同的逻辑变量进行运算,并将运算结果显示到对应的第四栏位的基础上,步骤s108中,显示解析结果与第二图形元素之间的连接关系包括:显示第四栏位与第二图形元素之间的连接关系。相应地,步骤s110包括:利用运算结果控制第三函数执行相应的功能。

具体地,在一个实施例中,在第一函数获取到的编程所需要的信息中包含一个逻辑变量,此时,步骤s110包括:利用逻辑变量控制第三函数执行相应的控制功能或逻辑运算。例如,若某个信息项的逻辑变量为1,表示开启摄像机,此时,第三函数直接开启摄像机这一控制功能;若某两个信息项的逻辑变量需要均为1时,方进行后续处理,此时,第三函数将该两个信息项的逻辑变量进行逻辑运算,例如,逻辑与运算,进而,在该两个信息项的逻辑变量均为1时,方进行后续处理。

在其他实施例中,在第一函数获取到的编程所需要的信息中包含多个逻辑变量,此时,步骤s110包括:根据逻辑变量控制第三函数执行相应的控制功能、逻辑运算和/或逻辑判断。若某个信息项的逻辑变量为1,表示程序选择,此时,第三函数执行逻辑判断,若逻辑判断的结果是0,则选择执行某一个程序,若逻辑判断的结果是1,则选择执行另一个程序。控制第三函数执行相应的控制功能和逻辑运算,已在上面进行说明,不再赘述。

具体地,在一个实施例中,同一列表式图形元素连接至少两个第一图形元素,其中至少两个第一图形元素所对应的第一函数不同。例如,在工业视觉系统中,需要同时获取机器人的外部信息和外部输入/输出设备的外部信息,此时,需要使用两个第一图形元素分别获取机器人的外部信息和外部输入/输出设备的外部信息,进而,此两个第一图形元素与一个列表式图形元素连接。进而,在利用第二函数对第一函数的运行结果中的逻辑变量进行解析之后,将逻辑变量显示在列表式图形元素上包括:将对至少两个第一图形元素所对应的第一函数解析出的逻辑变量同时显示在列表式图形元素上。

进一步地,该方法进一步包括:在编程界面上显示第三图形元素,并显示第三图形元素与第二图形元素之间的连接关系,其中第三图形元素对应于第四函数,其中第四函数对应于编程所需要的程序,例如,在工业视觉系统中,需要获取机器人的外部信息时,对机器人的外部信息进行编程所对应需要选择的某个程序,该某个程序在编程界面上设定为某个工具箱,调用该工具箱时,即执行该工具箱所对应的程序。进一步地,本实施例中,该方法包括:响应用户对第三图形元素的操作,在编程界面上显示一对话框,并在对话框中显示第四函数所对应的执行信息。这样,使得图形化编程更加直观简洁,方便用户查看执行结果。在一个实施例中,用户对第三图形元素的操作包括单击第三图形元素、获取焦点等,但不限于此,在其他实施例中,用户对第三图形元素的操作包括双击第三图形元素等。本实施例中,执行信息包括第四函数的设置参数、中间数据以及执行结果中的至少一种或组合,其中,执行信息的呈现形式包括文字、图形以及列表中的任意一种或组合。如图4所示,是一种对话框的示意图,执行信息按照纵向分布,其中,ture/false表示执行结果,data表示中间数据,roi和para分别表示设置参数,roi表示第四函数所作用的区域,para表示具体的相关参数。当然,在本领域技术人员的理解范围之内,该对话框还可以为其他布局。值得注意的是,上述第三图形元素也可设置于编程界面的工具栏上,在需要使用时,直接将其拖拉到编程界面上,同时,在编程界面上对其进行操作时,例如单击或者双击,即可在编程界面上显示其对应的函数的参数,若用户需要对函数的参数进行修改,在编程界面上即可进行,方便简洁。

若执行信息为多个;该方法进一步包括:根据用户的指定在多个执行信息中选择用户指定的执行信息,关闭对话框,并将用户指定的执行信息显示于对应的第三图形元素的周围。进一步方便用户查看执行结果。例如,如图5所示,将中间数据显示在第三图形元素的周围。

下面结合多个具体应用场景对实行上述方法所得到的图形化编程的过程进行详细说明。

首先,以工业视觉系统为例,对采用上述方法进行编程的输入量进行说明,假设,需要同时获取机器人的外部信息和外部输入/输出设备的外部信息,即输入量有2个,其中,列表式图形元素为逻辑列表。

如图5所示,是第一应用场景,首先,在编程界面上显示两个第一图形元素,其中,第一图形元素message对应的第一函数获取机器人的外部信息,列表式图形元素i/o对应的第一函数获取外部输入/输出设备的外部信息,在显示列表式图形元素,并显示第一图形元素与列表式图形元素之间的连接关系,即分别采用一直线将第一图形元素message与列表式图形元素之间,以及第一图形元素i/o与列表式图形元素之间进行连接,此时,运行不同的第一函数,随后,列表式图形元素上显示不同第一函数的运行结果,包括逻辑变量、逻辑变量所来源的第一图形元素以及用户自定义的描述。随后,根据逻辑变量显示第二图形元素,例如,根据逻辑列表中的所显示的自定义描述为controlcamera,显示第二图形元素opencamera;又例如,根据逻辑列表中的所显示的自定义描述为programselect,显示相应的第二图形元素,即图中逻辑判断部分select,其包含直线0、直线1以及与直线0和直线1均连接的黑色圆点,接着,显示列表式图形元素的各个栏位与第二图形元素之间的连接关系,例如,采用一直线显示将自定义描述为controlcamera的栏位与第二图形元素opencamera之间的连接关系,又例如,采用两直线分别显示将自定义描述为programselect的栏位与逻辑判断部分select中的黑色圆点之间的连接关系,此时,执行不同第二图形元素对应的不同第三函数,如图5所示,即是打开摄像机、执行逻辑判断。最后,显示第三图形元素,例如,第三图形元素pattern和blob,其为编程信息所需要的程序,即programselect所指向的程序,随后,显示第三图形元素与第二图形元素之间的连接关系,例如,如图5所示,将直线0指向第三图形元素pattern,将直线1指向第三图形元素blob,此时,执行第三图形元素对应的第四函数。同时如图4所示,在点击第三图形元素blob时,显示第四函数所对应的执行信息,关闭对话框,将用户指定的执行信息显示于对应的第三图形元素的周围。

如图6所示,是第二应用场景,与第一应用场景的区别在于,在编程过程中,列表式图形元素中显示了不同的逻辑变量进行运算后的运行结果,即逻辑列表中的所显示的自定义描述均为programselect所对应的两个逻辑变量进行逻辑与运算后的运算结果显示到列表式图形元素的第四栏位内,进而,显示第四栏位与第二图形元素之间的连接关系时控制第三函数执行相应的逻辑判断。

从图5和图6中编程界面上的图形化编程可以看出,使用的直线比较少,并且可直观了解到编程所执行的处理,实现操作可视化,表达直观,相互之间不存在连接关系的交叉,执行依赖关系清晰,而相对于图5中的图形化,图6中的图形化所使用的连接线更少,进而说明,使用逻辑列表可以简化执行关系,进一步使得编程界面表达直观,实现清晰的操作可视化。

如图7所示,是本发明的图形化编程装置一实施例的结构示意图,该图形化编程装置700可应用于工业视觉设计中,包括存储器710、处理器720和总线730。

存储器710用于存储被配置为被处理器720执行的计算机指令以及在处理器720工作过程中所需保存或缓存的数据。

在本实施例中,处理器720通过调用存储器710存储的计算机指令,用于执行:

在编程界面上显示第一图形元素,其中第一图形元素对应于第一函数;

在编程界面上显示列表式图形元素,并显示列表式图形元素与第一图形元素之间的连接关系,其中列表式图形元素对应于用于对第一函数的运行结果进行解析的第二函数;

利用第二函数对第一函数的运行结果进行解析,并将解析结果显示在列表式图形元素上;

在编程界面上显示第二图形元素,并显示解析结果与第二图形元素之间的连接关系,其中第二图形元素对应于第三函数。

需要说明的是,上述处理器720可对应用于执行上述方法实施例中的各个步骤,具体说明请参阅上述方法实施例的描述。

上述处理器720还可以称为cpu(centralprocessingunit,中央处理单元)。存储器710可以包括只读存储器和随机存取存储器,并向处理器720提供指令和数据。存储器710的一部分还可以包括非易失性随机存取存储器(nvram)。具体的应用中,移动终端的上述各个组件通过总线730耦合在一起,其中总线730除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线730。

上述本发明实施例揭示的方法可以应用于处理器720中,或者由处理器720实现。处理器720可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器720可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器710,处理器720读取存储器710中的信息,结合其硬件完成上述方法的步骤。

为此,本发明还提供了计算机可读存储介质,该计算机可读存储介质具体可用作如图7所示的存储器710,其存储有可在处理器720上运行的计算机指令,具体地,在本实施例中,计算机指令能够被执行以实现上述实施例中的图形化编程方法。

需要注意的是,计算机可读存储介质存储有可在处理器730上运行的计算机指令对应于上述方法实施例中的步骤。

本实施例中,在编程界面上,列表式图形元素对应的第二函数对第一图形元素对应的第一函数的运行结果进行解析,将解析结果显示在列表式图形元素上,方便编程人员了解输入的操作,进而,在第二图形元素与解析结果建立连接关系时,控制第二图形元素对应的第三函数执行相应的功能,实现清晰的操作可视化。

另外,本发明还可以提供了一种视觉系统,该系统可以应用于工业视觉设计中,包括上述实施例所述的图形化编程装置,实现操作可视化。当然,在其他实施例中,该系统还包括图像采集装置和图像处理装置,其中,图像采集装置和图像处理装置分别对工业视觉设计中的机器人进行相关信息采集和处理。

以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1