控制器系统
文献发布时间:2023-06-19 19:18:24
技术领域
本发明涉及工业控制系统技术领域,尤其涉及一种控制器系统。
背景技术
在各种工业领域中,存在对控制机器或机器的系统的需要。例如,在自动化环境,如对数控系统或机器人的控制越来越重要,因此,采用工业控制器对机器或机器的系统进行控制运行,工业控制器的系统架构包括脚本语言、脚本解析器和插补器。其中,工业控制器依赖于预先设定好的脚本语言运行,即所运行的功能也固定,而当所需功能发生变化更新,则需要编辑修改脚本语言。目前工业控制器中功能的编辑修改过程复杂,对用户的要求高,用户使用不便。因此,如何提高控制器系统操作的便捷性成为亟需解决的问题。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种控制器系统,能够提高控制器系统操作的便捷性。
第一方面,本发明实施例提供一种控制器系统,包括:
编辑器,包括模块库区域和创建显示区域,其中,所述模块库区域包括用于构建应用程序的多个程序模块,所述程序模块包括用于描述所述应用程序起始点的开始模块、用于描述目标行为动作的功能模块以及用于描述各个所述程序模块之间的逻辑关系的逻辑控制模块,所述创建显示区域用于图形化显示从所述模块库区域被选中确认后的所述程序模块,所述编辑器用于根据所述创建显示区域内的所述程序模块创建目标应用程序,并在所述创建显示区显示所述目标应用程序的逻辑结构,所述目标应用程序用于描述所述控制器系统执行行为动作的执行过程;
执行器,与所述编辑器连接,所述执行器用于获取、执行及调试来自于所述编辑器的目标应用程序,以使所述控制器系统执行相应的目标行为动作,所述执行器还用于监测所述目标应用程序在调试过程中的执行信息;
插补器,与所述执行器连接,所述插补器用于接收和发送所述执行信息。
根据本发明实施例提供的控制器系统,至少具有如下有益效果:编辑器中的模块库区域内存储有程序模块,程序模块包括有开始模块、功能模块和逻辑控制模块,通过从模块库区域内选中确认所需的程序模块,即选中所需执行的目标行为动作以及各个目标行为动作之间的逻辑关系,能够图形化显示于编辑器中的创建显示区域中,并能够根据当前创建显示区域内的所有程序模块进行应用程序的构建,生成目标应用程序,即生成控制器系统对当前目标行为动作的执行过程,并图形化显示目标应用程序的逻辑结构。执行器能够获取编辑器中创建好的目标应用程序,并进行相应的执行调试处理,使得控制系统执行相应的目标行为动作,在调试目标应用程序的过程中还能够监测目标应用程序中的执行信息。而插补器能够接收来自于应用程序接收器的执行信息,并向应用程序接收器发送执行信息。相对于相关技术中采用晦涩难懂的脚本语言和脚本语言解释器来构建控制器系统架构的方案,本发明实施例利用具有逻辑完备性的应用程序来构建控制器系统中的功能,并且采用图形化的方式进行显示和编辑应用程序,有助于直观了解当前目标应用程序,对用户要求低,提高了控制器系统操作的便捷性。
在上述的控制器系统,所述编辑器还用于:
响应于对目标模块的第一操作指令,获取所述目标模块的模块属性信息,所述目标模块表征为所述模块库区域中选中的开始模块、功能模块或逻辑控制模块;
获取所述创建显示区域中的所述目标应用程序;
根据所述模块属性信息和所述目标应用程序,生成新的目标应用程序,将所述新的目标应用程序显示于所述创建显示区域。
当模块库区域中的程序模块即开始模块、功能模块或逻辑控制模块被选中为目标模块,且接收到对目标模块的第一操作指令,可以认为目标模块被选中确认,即利用目标模块进行构建应用程序,因此分别获取目标模块的模块属性信息和创建显示区域内已存在的目标应用程序。根据模块属性信息,将目标模块插入目标应用程序中,从而生成新的目标应用程序,并且采用图形化的方式将新的目标应用程序显示在创建显示区域,通过相应的操作指令即可选中确认所需目标模块,更新并显示目标应用程序,操作简便。
在上述的控制器系统,所述第一操作指令为拖拽指令;所述编辑器用于:
响应于对目标模块的拖拽指令,获取所述目标模块的模块属性信息,所述目标模块表征为所述模块库区域中选中的开始模块、功能模块或逻辑控制模块;
响应于所述创建显示区域中对所述目标模块的停止拖拽指令,获取停止拖拽的目标位置信息和所述创建显示区域中的目标应用程序;
根据所述目标位置信息、所述模块属性信息和所述目标应用程序,生成新的目标应用程序,将所述新的目标应用程序显示于所述创建显示区域。
当模块库区域内的程序模块即开始模块、功能模块或逻辑控制模块被选中为目标模块,并且接收到对目标模块的拖拽指令,即可以认为采用拖拽的方式表示该目标模块被选中确认,从而获取该目标模块的模块属性信息已进行后续的应用程序构建操作。当接收到目标模块在创建显示区域的停止拖拽指令,则认为确定采用目标模块进行构建目标应用程序,并根据停止拖拽的目标位置,将目标模块加入至目标应用程序中的相应位置,形成新的目标应用程序。基于图形化的简单操作,即能够达到采用所需模块构建所需应用程序,以实现所需功能的效果,提高了控制器系统操作的便捷性。
在上述的控制器系统,所述控制器系统还包括推荐引导模块,所述推荐引导模块用于:
获取所述模块属性信息;
根据所述模块属性信息,从所述模块库区域的所有所述程序模块中确定出推荐模块;
在所述模块库区域中对所述推荐模块进行标记提示。
由于应用程序的构建流程具有逻辑性,推荐引导模块可以获取创建显示区域内当前存在的所有程序模块的模块属性信息,即当前目标应用程序的状态信息,判断目标应用程序的构建流程是否完整,避免出现目标应用程序的构建逻辑错误,从而根据所有程序模块的模块属性信息,从模块库区域内所有程序模块即从开始模块、所有的功能模块和所有的逻辑控制模块中确定出推荐模块,即认为可以采用推荐模块加入目标应用程序且不会引发应用程序构建流程的逻辑错误。另外,还能够在模块库区域内对相应的推荐模块进行标记提示,具有引导用户操作的作用,提高控制器系统操作的便捷性。
在上述的控制器系统,所述推荐引导模块还用于:
根据所述模块属性信息,利用知识图谱算法从所述模块库区域的所有所述程序模块中确定出推荐模块。
推荐引导模块能够根据当前目标应用程序中各个程序模块的模块属性信息,利用知识图谱算法能够确定出当前多个程序模块所对应的推荐应用程序,从而根据推荐应用程序从模块库区域中确定出相应的推荐模块。利用知识图谱算法进行模块推荐能够辅助应用程序的构建,提高应用程序构建操作的简便性。
在上述的控制器系统,所述编辑器还用于:
响应于所述模块库区域中对选中的目标模块的第二操作指令,获取所述目标模块的模块属性信息,所述目标模块表征为所述模块库区域中选中的开始模块、功能模块或逻辑控制模块;
响应于配置数据的导入指令,获取所述配置数据;
向所述执行器发送所述模块属性信息和所述配置数据。
当模块库区域内的程序模块被选中为目标模块,并且接收到对目标模块的第二操作指令,可以认为需要对目标模块的模块属性信息进行编辑,即进入自定模块的状态,因此获取目标模块的模块属性信息,并且等待配置数据的导入指令响应,将配置数据和模块属性信息发送至执行器,使得执行器根据配置数据和模块属性信息进行模块构建,实现便捷构建自定模块。
在上述的控制器系统,所述编辑器还包括属性面板框;
所述编辑器还用于:
响应于对所述目标模块的第二操作指令,获取所述目标模块的模块属性信息,并将所述模块属性信息显示于所述属性面板框。
在模块库区域内的程序模块被选中为目标模块,并且接收到对目标模块的第二操作指令的情况下,获取目标模块的模块属性信息,并通过属性面板框将模块属性信息进行显示,从而能够直观了解各个程序模块的模块属性信息,为后续进行应用程序构建或自定模块的操作提供便利,降低对用户的使用要求。
在上述的控制器系统,所述配置数据包括以下情况之一:
与所述控制器系统连接的外部设备所导入的配置文件;
或者,
来自于信息输入框的输入信息;
其中,所述编辑器还包括所述信息输入框。
控制器系统可以与外部设备连接,如控制器系统可以与第三方系统或者另一个控制器系统连接,接收外部导入的配置文件,配置文件包含有构建自定模块的配置数据,即自定模块对应的模块属性信息,从而可以利用配置文件进行构建自定模块。另外,在编辑器还设置有信息输入框,可以接收来自于信息输入框的输入信息,输入信息内含有相应的配置数据,以用于自定模块的构建。
在上述的控制器系统,所述执行器还用于:
获取来自于所述编辑器的所述模块属性信息和所述配置数据;
根据所述配置数据对所述模块属性信息进行更新,生成自定模块,并向所述编辑器返回模块生成数据,以使所述自定模块显示于所述模块库区域内。
执行器能够接收编辑器所发送的模块属性信息和配置数据,从而能够利用配置数据对模块属性信息进行更新,生成自定模块,并将编辑器返回模块生成数据,模块生成数据可以包括自定模块所对应的模块属性信息,构建后的自定模块能够作为程序模块显示在模块库区域内以供选择构建应用程序,实现自定义模块的功能,便于应用程序构建。
在上述的控制器系统,所述模块库区域中还包括由多个所述程序模块构建而成的应用子程序。
模块库区域内还包括有应用子程序,应用子程序由程序模块构建而成,即可以选择应用子程序直接加入至创建显示区域内进行目标应用程序的快速构建,提高控制器系统操作的便捷性。
在上述的控制器系统,所述控制器系统还包括推荐引导模块,所述推荐引导模块用于:
获取来自于所述执行器的历史执行信息;
根据所述历史执行信息,确定出推荐应用程序;
将所述推荐应用程序作为所述应用子程序存储于所述模块库区域内。
推荐引导模块还可以根据执行器中执行应用程序的历史记录,即历史执行信息,从历史所执行的应用程序中可以判断出常用应用程序,并将常用应用程序确定为推荐应用程序,认为采用推荐应用程序构建目标应用程序能够满足用户使用需求,将推荐应用程序作为应用子程序存储并显示在模块库区域内,便于选中及应用,提高操作的便捷性。
在上述的控制器系统,所述编辑器还用于:
将所述目标应用程序作为所述应用子程序并存储于所述模块库区域内。
在创建显示区域内构建出所需的目标应用程序之后,可以将目标应用程序保存至模块库区域内,即将创建好的目标应用程序作为应用子程序,可供后续创建直接选择使用,提高操作的便捷性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书以及附图中所特别指出的结构来实现和获得。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1是本发明一个实施例提供的控制器系统的结构示意图;
图2是本发明一个实施例提供的执行器执行流程的示意图;
图3是本发明一个实施例提供的编辑器显示界面的示意图;
图4是本发明一个实施例提供的控制注塑机械手进行点到点运动应用程序的创建过程流程图;
图5是本发明一个实施例提供的控制注塑机械手的应用程序的编辑器显示界面的示意图;
图6是本发明一个实施例提供的属性面板框显示界面的示意图。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
在本发明实施例的描述中,参考术语“一个实施例/实施方式”、“另一实施例/实施方式”或“某些实施例/实施方式”、“在上述实施例/实施方式”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本公开的至少两个实施例或实施方式中。在本公开中,对上述术语的示意性表述不一定指的是相同的示实施例或实施方式。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。
需要说明的是,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
首先,对本发明中涉及的若干名词进行解析:
行为树,是一种形式化的图形建模语言,主要用于系统和软件工程。行为树采用明确定义的符号来明确表示数百甚至数千种自然语言需求,这些需求通常用于表达大规模软件集成系统的利益相关者需求。
知识图谱,在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。本质上,知识图谱旨在描述真实世界中存在的各种实体或概念及其关系,其构成一张巨大的语义网络图,模块表示实体或概念,边则由属性或关系构成。
NC代码,即数字信息控制机械控制器能识别的代码,例如数控切割设备上有G代码、ESSI码、EIA码等,NC代码根据不同品牌的控制器所构成的结构也不相同。
JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(European Computer Manufacturers Association,欧洲计算机协会制定的JavaScript规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。JSON格式文件易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
相关技术中,采用脚本语言和脚本解析器进行数控系统或者机器人系统,即工业控制系统架构的搭建,而在数控系统中的脚本语言通常采用NC代码,且NC代码在不同品牌的控制器所构成的结构也不同,另外在部分机器人控制系统中的脚本语言会采用独立设计的编程语言,导致脚本语言的种类繁多复杂,晦涩难懂,用户难以理解,对用户的要求高,不利于修改调整。另外,采用脚本语言无法支持多个程序并行执行,并且由于不同控制设备采用不同的脚本语言,导致难以与外部设备连接进行扩展,限制了控制器系统的通用性和兼容性,难以使用。因此,如何提高控制器系统操作的便捷性成为亟需解决的问题。
基于此,本发明实施例提供了一种控制器系统,旨在基于行为树进行系统架构的构建,从而提高控制器系统操作的便捷性。
本发明实施例提供了一种控制器系统,控制器系统包括有编辑器、执行器和插补器,其中编辑器包括模块库区域和创建显示区域,其中,模块库区域包括用于构建应用程序的多个程序模块,程序模块包括用于描述应用程序起始点的开始模块、用于描述目标行为动作的功能模块以及用于描述各个程序模块之间的逻辑关系的逻辑控制模块,创建显示区域用于图形化显示从模块库区域被选中确认后的程序模块,编辑器用于根据创建显示区域内的程序模块创建目标应用程序,并在创建显示区显示目标应用程序的逻辑结构,目标应用程序用于描述控制器系统执行行为动作的执行过程;执行器与编辑器连接,执行器用于获取、执行及调试来自于编辑器的目标应用程序,并监测目标应用程序在调试过程中的执行信息,以使控制器系统执行相应的目标行为动作;插补器与执行器连接,插补器用于接收和发送执行信息。
下面结合附图,对本发明实施例作进一步阐述。
参考图1,本发明的一个实施例提供的控制器系统100的结构示意图。
在图1的示例中,控制器系统100应用于工业控制系统中,如数控系统或者家电设备。控制器系统100基于行为树进行构建用于实现所需功能的应用程序,实现系统架构的构建。控制器系统100包括有编辑器110、执行器120和插补器130。编辑器110与执行器120通信连接,而插补器130与执行器120通信连接。
编辑器110包括有多个分区,即模块库区域和创建显示区域。模块库区域内存储并显示有多个程序模块,程序模块中包括有开始模块、功能模块和逻辑控制模块,开始模块能够描述应用程序的起始点,功能模块能够描述目标行为动作,逻辑控制模块能够描述各个程序模块之间的逻辑关系,尤其是各个目标行为动作之间的逻辑关系。其中,功能模块包括有多个,各个功能模块能够表征各个不同的目标行为动作,而逻辑控制模块也包括有多个,各个功能模块能够表征不同的逻辑关系。
因此,开始模块、功能模块和逻辑控制模块均为构建应用程序的元素,从模块库区域内可以选择所需的开始模块、功能模块和逻辑控制模块进行构建目标应用程序,采用不同的程序模块即功能模块和逻辑控制模块所构建得出的功能不同,因此,提高控制器系统100构建功能的多样性,同时直观展示的方式能够有助于系统架构的构建。其中,程序模块是通过执行器120创建相应模块后显示于模块库区域内。因此,可以直接选用所需的程序模块即可构建应用程序,提高操作的便捷性。
创建显示区域能够图形化显示从模块库区域内被选中的程序模块,即将开始模块、功能模块和逻辑控制模块分别采用不同的形状进行显示,位于创建显示区域中的程序模块可以表示为已选中并确定用于进行构建目标应用程序中的模块。因此,编辑器110可以利用位于创建显示区域中内的程序模块进行应用程序构建,生成目标应用程序,并在创建显示区域内显示出目标应用程序,即能够图形化显示目标应用程的逻辑结构,直观展示控制器系统100对当前目标行为动作的执行过程。另外,位于创建显示区域中的程序模块也可以表示为目标应用程序中的模块,且由于应用程序具有逻辑完备性的特点,因此目标应用程序中的模块可以根据逻辑流程进行排列显示,从而能够直观了解当前的应用程序构建进度及系统架构的功能。
其中,由于各个程序模块具有相应的模块属性,即不同程序模块的逻辑顺序性不同,编辑器110可以根据程序模块中的逻辑顺序性自动进行目标应用程序构建,另外,程序模块的逻辑顺序性也可以根据各个程序模块被选中确定的时间顺序进行确定,例如,当第一模块被选中确定的时间早于第二模块被选中确定的时间,则可以分别向第一模块和第二模块赋予不同的逻辑顺序性,使得第一模块的优先级比第二模块的优先级更高。另外,程序模块的逻辑顺序性还可以根据各个程序模块在创建显示区域内的排列顺序进行调整,例如,将第一模块的排列顺序调整至第二模块的排列顺序的前面,则可以赋予第一模块更高的优先级。因此,可以通过图形化编辑创建显示区域内的模块,即能够编辑目标应用程序,实现利用构建树形应用的图形化编程来编辑构建系统架构的效果。
执行器120内存储有与编辑器110中所有程序模块即包括开始模块、功能模块和逻辑控制模块,同时包括创建显示区域内的程序模块以及模块库区域内的程序模块。执行器120可以获取编辑器110中创建好的目标应用程序,从而可以根据目标应用程序初始化相应的模块,并且根据目标应用程序的逻辑顺序依次执行各个模块,例如根据逻辑控制模块所描述的逻辑关系依次执行各个功能模块。由于在执行应用程序过程中,各个模块会返回相应的执行状态信息,即执行信息中的部分信息,编辑器110能够监测各个模块所返回的执行状态信息,判断目标应用程序的逻辑是否存在错误,达到调试应用程序的效果,并且所返回的执行状态信息存储与插补器130中。其中,执行器120中执行应用程序是基于时间驱动的,即在系统所需时长内触发执行应用程序遍历,当未完成执行应用程序的操作,则停留等待执行操作,直至满足触发周期继续执行应用程序遍历,即达到系统所需时长继续执行应用程序遍历。当执行应用程序遍历的操作完成,则退出结束执行操作,将执行结果发送至插补器130,并从插补器130中获取执行状态信息,判断是否存在逻辑错误,并对应用程序进行修正。
另外,参考图2,图2表示为本发明的一个实施例提供的执行器120执行流程的示意图,该执行流程具体为:
步骤S201,从编辑器中获取并创建应用程序;
步骤S202,加载应用程序;
步骤S203,初始化(实例化)应用程序的程序模块;
步骤S204,根据控制逻辑执行应用程序中的程序模块,并向插补器进行信息交互;
判断C201,该应用程序是否执行完毕?若是,执行步骤S205;若否,执行判断C202;
步骤S205,应用程序执行结束;
判断C202,该触发周期是否满足?若是,返回步骤S204;若否,执行步骤S206;
步骤S206,等待,并返回判断C202。
相对于相关技术中采用晦涩难懂的脚本语言和脚本语言解释器来构建工业控制器系统100架构的方案,本发明实施例利用具有逻辑完备性的应用程序即行为树来构建工业控制器的系统架构,并且采用图形化的方式进行显示和编辑应用程序,有助于直观了解当前目标应用程序,对用户要求低,提高了控制器系统100操作的便捷性。因此,通过选择确定所需的模块,则可以构建出能够实现所需功能的目标应用程序,即利用应用程序能够达到快速构建系统架构的效果,同时基于图形化的显示和操作,能够简化操作的复杂程度,提高控制器系统100操作的便捷性,降低控制器系统100对用户的使用要求。
可以理解的是,编辑器110中的程序模块包括多个类型,即开始模块、功能模块、逻辑控制模块和应用子程序,其中,各个程序模块均包含3种执行状态,即成功、失败以及执行中。其中,开始模块为应用程序的起始点,有且仅有一个,且仅包含有开始模块的应用程序才能够被执行,否则无法执行。当从模块库区域中选择推荐应用程序加入至创建显示区域中的目标应用程序,则根据两者的插入逻辑,从当前目标应用程序的开始模块和推荐应用程序的开始模块中选择一个作为新的目标应用程序的开始模块。
功能模块能够描述控制器系统100具体的功能操作,例如,当控制器系统100为注塑机械手的控制器,则功能模块可以包括有实现轴动作、堆叠、治具、塑机信号、辅助设备、预留、检测、等待、其他、条件、注释/标签、序列动作、待机点以及模组结束等14个功能。
逻辑控制模块用来控制应用程序的执行逻辑,且逻辑控制模块连接的子模块至少有一个,而逻辑控制模块也具有多个类型,例如顺序、选择、并行、取反、强制成功、强制失败、重复执行和重试等8种类型。其中,顺序模块的执行逻辑为按顺序执行子模块直到其中一个子模块返回失败状态或所有子模块返回成功状态。选择模块的执行逻辑为按顺序执行子模块直到其中一个子模块返回成功状态或所有子模块返回失败状态。而并行模块的执行逻辑为依次从头顺次遍历执行所有子模块,无论当前执行模块返回成功状态、失败状态或者执行中状态都继续执行下一个模块,分别记录返回三种结果的模块个数,直到至少预设数值的子模块返回成功状态或所有子模块返回失败状态。
而应用子程序则可以表示为多个行为动作的执行过程,通常为控制器系统100中多次执行的行为动作,例如,当控制系统为注塑机械手的控制器,应用子程序可以包括检测不良品、取样或者试产等功能。因此,可以选择不同的程序模块进行组合构建出不同的应用程序。
可以理解的是,当控制器系统100对实时性要求较高,执行器120可以基于C语言程序实现或者采用C++语言程序实现;而当控制器系统100为分布式系统或者控制器系统100对协作性要求较高,执行器120可以采用开源中间件实现。
可以理解的是,编辑器110可以响应于对目标模块的第一操作指令,获取目标模块的模块属性信息,目标模块表征为模块库区域中选中的开始模块、功能模块或逻辑控制模块;获取创建显示区域中的目标应用程序;根据模块属性信息和目标应用程序,生成新的目标应用程序,将新的目标应用程序显示于创建显示区域。
当接收到模块库区域中对选中的程序模块的第一操作指令,则可以认为目标模块被选中确认,即利用目标模块进行构建目标应用程序,其中,目标模块也可以是多个,即可以从开始模块、所有功能模块和所有逻辑控制模块同时选中多个。因此,分别获取目标模块的模块属性信息以及创建显示区域内已经存在的目标应用程序,其中,可以获取目标应用程序中各个模块的模块属性信息。从而根据各个模块的模块属性信息,将目标模块插入目标应用程序中,从而生成新的目标应用程序。因此,通过在模块库区域内显示预先设置好的程序模块,便于用户选择;同时响应目标模块的相应操作指令,即能够利用所需目标模块创建应用程序,或添加至应用程序中,提高操作的便捷性。其中,选中的程序模块,即目标模块可以是多个,也可以是由多个目标模块构成的应用子程序。因此,可以实现利用多个不同的应用子程序快速构建应用程序的功能,提高构建应用程序的便捷性。另外,在构建新的目标应用程序之后,采用图形化的方式将新的目标应用程序显示在创建显示区域内,通过图形化显示应用程序有助于直观了解应用程序的构建进度以及相应的模块和功能,辅助系统架构各个功能的构建。
其中,第一操作指令可以是对目标对象的拖拽指令,也可以是对目标对象的长按指令,还可以是对目标对象的点击指令。
可以理解的是,第一操作指令可以是拖拽指令,即对模块库区域中选中的目标模块的拖拽指令。编辑器110可以响应于对目标模块的拖拽指令,获取目标模块的模块属性信息,目标模块表征为模块库区域中选中的开始模块、功能模块或逻辑控制模块;响应于创建显示区域中对目标模块的停止拖拽指令,获取停止拖拽的目标位置信息和创建显示区域中的目标应用程序;根据目标位置信息、模块属性信息和目标应用程序,生成新的目标应用程序,将新的目标应用程序显示于创建显示区域。
当接收到对模块库区域内被选中的程序模块的拖拽指令,即可以认为采用拖拽的方式表示该目标模块被选中确认用于构建应用程序,因此,获取目标模块的模块属性信息以进行后续的应用程序构建操作。由于应用程序具有特定的逻辑顺序,而位于应用程序不同位置的模块所对应的执行顺序不同,即不同位置的目标行为动作的逻辑关系不同,因此,当接收到目标模块在创建显示区域的停止拖拽指令,则认为需要将目标模块添加至应用程序中的相应位置,即赋予目标模块相应的执行顺序,从而获取停止拖拽的目标位置,并根据目标位置,将目标模块插入至目标应用程序中,以对目标应用程序进行更新。在目标应用程序更新后,将新的目标应用程序通过图形化显示在创建显示区域内,有助于直观了解目标应用程序。基于图形化的简单操作,即能够达到采用所需模块构建所需应用程序,以实现所需功能的效果,提高了控制器系统100操作的便捷性。
其中,编辑器110可以以用户图形界面的方式呈现,以注塑机械手的控制器系统100为例,如图3所示,图3表示为编辑器110显示界面的示意图。编辑器110显示界面中包括有模块库区域和创建显示区域,而模块库区域位于创建显示区域的右侧。模块库区域中的各个程序模块可以根据模块类型进行分类显示,创建显示区域可以以图形化显示目标应用程序,即各个目标模块及其连接关系。而图3中所示的控制注塑机械手进行点到点运动应用程序可以通过如图4所示的步骤实现:
步骤S101,从模块库区域中选中拖拉“开始模块”至创建显示区域,创建“开始”程序模块;
步骤S102,从模块库区域中拖拉“顺序”的逻辑控制模块至创建显示区域,创建“顺序”程序模块;
步骤S103,从模块库区域中拖拉“轴动作”的功能模块至创建显示区域,生成“轴动作1”的程序模块;
步骤S104,从模块库区域中拖拉“轴动作”的功能模块至创建显示区域,生成“轴动作2”的程序模块。
即,控制注塑机械手进行点到点运动应用程序创建完毕。
另外,以注塑机械手的控制器系统100为例,控制注塑机械手的应用程序的编辑器110显示界面可以如图5所示。可以从模块库区域中依次选中拖拉“开始模块”、“重复执行(执行次数)”逻辑控制模块、“待机点”功能模块、“顺序”逻辑控制模块、“等待(等待开模完)”功能模块、“并行”逻辑控制模块、“轴动作(X1)”功能模块、“轴动作(Y1)”功能模块、“轴动作(Z1)”功能模块和“模组结束”功能模块至创建显示区域,生成注塑机械手相应的应用程序。
可以理解的是,控制器系统100还包括有推荐引导模块,推荐引导模块能够获取模块属性信息;根据模块属性信息,从模块库区域的所有程序模块中确定出推荐模块;在模块库区域中对推荐模块进行标记提示。
推荐引导模块可以设置于编辑器110中,也可以设置于执行器120中,还可以进行独立设置。由于应用程序的构建流程具有逻辑性,推荐引导模块可以获取创建显示区域内当前存在的所有目标模块的模块属性信息,即当前目标应用程序的状态信息,判断目标应用程序的构建流程是否完整,避免出现目标应用程序的构建逻辑错误,从而根据所有目标模块的模块属性信息,从模块库区域内所有程序模块中确定出推荐模块,推荐模块可以是功能模块或逻辑控制模块,即认为可以采用推荐模块加入目标应用程序且不会引发应用程序构建流程的逻辑错误。另外,还能够在模块库区域内对相应的推荐模块进行标记提示,具有引导用户操作的作用,提高控制器系统100操作的便捷性。
可以理解的是,为了提高应用程序构建的准确性,推荐引导模块能够根据模块属性信息,利用知识图谱算法从模块库区域的所有程序模块中确定出推荐模块。即,推荐引导模块能够根据当前目标应用程序中各个目标模块的模块属性信息,利用知识图谱算法能够确定出当前多个目标模块之间的关联性,以及当前多个目标模块与所有程序模块之间的关联性,从而确定出推荐模块,还可以通过确定多个目标模块相关联的推荐应用程序,从而根据推荐应用程序从模块库区域中确定出相应的推荐模块。利用知识图谱算法进行模块推荐能够辅助应用程序的构建,提高应用程序构建操作的简便性。
可以理解的是,编辑器110还可以响应于模块库区域中对选中的目标模块的第二操作指令,获取目标模块的模块属性信息,目标模块表征为模块库区域中选中的开始模块、功能模块或逻辑控制模块;响应于配置数据的导入指令,获取配置数据;向执行器120发送模块属性信息和配置数据。
其中,第二操作指令可以与第一操作指令相同,也可以与第一操作指令不同。
当模块库区域内的程序模块被选中为目标模块,并接收到对目标模块的第二操作指令,可以认为需要对目标模块的模块属性信息进行编辑,即进入自定模块的状态,因此获取目标模块的模块属性信息,并且等待配置数据的导入指令响应,将配置数据和模块属性信息发送至执行器120,使得执行器120根据配置数据和模块属性信息进行模块构建,实现便捷构建自定模块。
如图6所示,图6表示为属性面板框显示界面的示意图。可以理解的是,编辑器110还包括有属性面板框,从而编辑器110可以响应于模块库区域中对选中的目标模块的第二操作指令,获取目标模块的模块属性信息,并将模块属性信息显示于属性面板框。
在模块库区域内的程序模块被选中为目标模块,并且接收到对目标模块的第二操作指令的情况下,获取目标模块的模块属性信息,并通过属性面板框将模块属性信息进行显示,从而能够直观了解各个程序模块的模块属性信息,为后续进行应用程序构建或自定模块的操作提供便利,降低对用户的使用要求。以“轴动作”的功能模块为例,如图5所示,“轴动作”的功能模块所展示的模块属性信息包括有“选择需要运动的轴”、“目标位置”、“速度”以及“延时”,通过属性面板框可以直观了解得到各个模块属性信息的参数,并且可以通过属性面板框对其中的模块属性信息进行调整。
可以理解的是,由于程序模块以及目标应用程序均由JSON文件格式定义,控制器系统100可以与外部设备连接,并接收外部设备导入的以JSON文件格式的配置文件,从而可以从配置文件中直接提取出所需的配置数据,进行自定模块的构建。其中,模块库区域内所有的程序模块均已经通过执行器120以JSON文件格式进行定义创建,另外,应用子程序也通过JSON文件进行定义创建。
其中,外部设备可以是第三方系统或者另一个控制器系统100,如视觉系统,利用视觉系统导入相应的配置文件,构建用于获取视觉系统的分类信息的视觉模块,从而控制器系统100可以利用视觉模块获取视觉系统的分类信息,并根据分类信息将不同的物品分拣到不同的位置,实现控制器系统100接入视觉系统以进行分拣操作的功能。另外,编辑器110还可以设置有信息输入框,信息输入框可以接收外部触发的信息,并转化为输入信息,输入信息内包含有构建自定模块的配置数据,即自定模块对应的模块属性信息,从而可以利用来自于信息输入框的输入信息进行构建自定模块。其中,信息输入框中可以显示与模块属性信息相关的内容,从而能够有助于引导用户输入相应的信息。
由于在编辑器110中需要对所有的程序模块包括模块类型、名字以及模块属性信息均采用JSON文件进行定义,即程序模块相当于行为树中的节点。而应用程序和应用子程序也是通过JSON文件进行定义和保存,而且应用程序是根据各个程序模块以行为树的功能逻辑组织构成的,即一个应用程序相当于一个行为树,而应用程序中各个程序模块相当于行为树中的节点。
可以理解的是,执行器120还可以获取来自于编辑器110的模块属性信息和配置数据;根据配置数据对模块属性信息进行更新,生成自定模块,并向编辑器110返回模块生成数据,以使自定模块显示于模块库区域内。
执行器120能够接收编辑器110所发送的模块属性信息和配置数据,从而能够利用配置数据对模块属性信息进行更新,生成自定模块,并将编辑器110返回模块生成数据,模块生成数据可以包括自定模块所对应的模块属性信息,构建后的自定模块能够作为程序模块显示在模块库区域内以供选择构建应用程序,实现自定义模块的功能,便于应用程序构建。
可以理解的是,模块库区域中还可以包括有应用子程序,应用子程序是通过模块库区域内的多个程序模块构成的。因此,可以从模块库区域中选择应用子程序直接加入至创建显示区域内进行目标应用程序的快速构建,提高控制器系统100操作的便捷性。
可以理解的是,控制器系统100中的推荐引导模块还可以获取来自于执行器120的历史执行信息;根据历史执行信息,确定出推荐应用程序;将推荐应用程序作为应用子程序存储于模块库区域内。
推荐引导模块还可以根据执行器120中执行应用程序的历史记录,即历史执行信息,从历史所执行的应用程序中可以判断出常用应用程序,并将常用应用程序确定为推荐应用程序,认为采用推荐应用程序构建目标应用程序能够满足用户使用需求,将推荐应用程序作为应用子程序存储并显示在模块库区域内,便于选中及应用,提高操作的便捷性。其中,历史执行信息可以包括有历史执行次数和历史执行时间,可以选择历史执行次数最多的应用程序作为推荐应用程序,也可以选择历史执行次数超过预设次数数值的应用程序作为推荐应用程序,还可以选择历史执行时间距离当前时刻最近的应用程序作为推荐应用程序,还可以选择历史执行时间距离当前时刻的时长小于预设时长阈值的应用程序作为推荐应用程序。
可以理解的是,编辑器110还可以将目标应用程序作为应用子程序直接存储于模块库区域内。在创建显示区域内构建出所需的目标应用程序之后,可以将目标应用程序保存至模块库区域内,即将创建好的目标应用程序作为应用子程序,可供后续创建直接选择使用,提高操作的便捷性。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
- 可编程控制器系统、该可编程控制器系统的控制器
- 可编程控制器系统、该可编程控制器系统的控制器