一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于FBD的组态软件编程方法、装置及设备与流程

2022-03-04 23:35:49 来源:中国专利 TAG:

基于fbd的组态软件编程方法、装置及设备
技术领域
1.本技术涉及组态编程技术领域,具体涉及一种基于fbd的组态软件编程方法、装置及设备。


背景技术:

2.相关技术中,iec61131-3作为可编程逻辑控制器(plc)组态语言中规范plc编程语言的标准,定义了程序组织单元(pou)包括功能块(fb)。主流的plc编程软件大多遵循iec61131-3,提供了功能块这类pou。功能块程序图形化编程(function block diagram,fbd)可以编写pou中相对简单的控制逻辑。然而,在使用fbd编程进行设计时,由于功能块图结构较为复杂,方向杂乱,常常影响设计效率,导致设计效率较低。


技术实现要素:

3.本技术提供一种基于fbd的组态软件编程方法、装置及设备,用于解决现有的fbd编程方法在使用时,设计效率还有待提升的技术问题。
4.为实现以上目的,本技术采用如下技术方案:
5.本技术的第一方面提供一种基于fbd的组态软件编程方法,包括:
6.获取功能块图像;
7.对所述功能块图像进行识别,得到每个功能块的fbd识别信息;
8.根据所述fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制所述功能块实例的代码。
9.可选的,所述根据所述fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制所述功能块实例的代码,包括:
10.检测所述fbd识别信息是否满足信息完备条件;
11.若所述fbd识别信息满足所述信息完备条件,根据信息完备的所述fbd识别信息,在pou的变量声明区建立对应的第一功能块实例,并在pou的代码区绘制所述第一功能块实例的代码。
12.可选的,所述信息完备条件包括:所述fbd识别信息中包括基本信息;所述基本信息包括:功能块类型、功能块实例名和功能块的连接关系。
13.可选的,所述检测所述fbd识别信息是否满足信息完备条件,包括:
14.检测所述fbd识别信息中是否包括所述功能块类型、所述功能块实例名和所述功能块的连接关系;
15.若所述fbd识别信息中包括所述功能块类型、所述功能块实例名和所述功能块的连接关系,则所述fbd识别信息满足所述信息完备条件;反之,则所述fbd识别信息不满足所述信息完备条件。
16.可选的,所述检测所述fbd识别信息是否满足信息完备条件之后,所述方法还包括:
17.若所述fbd识别信息不满足所述信息完备条件,基于所述fbd识别信息和所述基本信息,确定缺失信息;
18.根据所述缺失信息,补全所述fbd识别信息,以使得所述fbd识别信息满足所述信息完备条件。
19.可选的,所述根据所述缺失信息,补全所述fbd识别信息,包括:
20.根据所述fbd识别信息,从预先构建的信息库中获取与所述fbd识别信息对应的信息,将对应的信息补充到所述fbd识别信息中所述缺失信息的位置。
21.可选的,所述根据所述缺失信息,补全所述fbd识别信息,还包括:
22.根据所述缺失信息和所述fbd识别信息,生成提示信息,并发送给用户;
23.接收所述用户发送的反馈信息,将所述反馈信息补充到所述fbd识别信息中所述缺失信息的位置。
24.可选的,所述检测所述fbd识别信息是否满足信息完备条件之后,所述方法还包括:
25.若所述fbd识别信息不满足所述信息完备条件,根据信息不完备的所述fbd识别信息,在pou的变量声明区建立对应的第二功能块实例,并在pou的代码区绘制所述第二功能块实例的代码。
26.可选的,所述对所述功能块图像进行识别,得到每个功能块的fbd识别信息,包括:
27.基于计算机视觉技术,对所述功能块图像进行识别,得到所述fbd识别信息。
28.可选的,所述根据所述fbd识别信息,在pou的变量声明区建立对应的功能块实例之前,所述方法还包括:
29.在所述pou的变量声明区中,检测是否存在与所述fbd识别信息对应的功能块实例;
30.若所述pou的变量声明区中不存在与所述fbd识别信息对应的功能块实例,则执行后续步骤。
31.可选的,所述方法还包括:
32.接收用户发送的编辑信息;
33.根据所述编辑信息,更新所述pou的变量声明区的声明和所述pou的代码区的代码。
34.本技术的第二方面提供一种基于fbd的组态软件编程装置,包括:
35.获取模块,用于获取功能块图像;
36.识别模块,用于对所述功能块图像进行识别,得到每个功能块的fbd识别信息;
37.建立与绘制模块,用于根据所述fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制所述功能块实例的代码。
38.本技术的第三方面提供一种基于fbd的组态软件编程设备,包括:
39.处理器,以及与所述处理器相连接的存储器;
40.所述存储器用于存储计算机程序;
41.所述处理器用于调用并执行所述存储器中计算机程序,以执行如本技术的第一方面所述的方法。
42.本技术提供的技术方案可以包括以下有益效果:
43.本技术的方案中,首先获取功能块图像,其中,功能块图像携带有基本信息。对功能块图像进行识别,得到功能块图像中每个功能块的fbd识别信息。继而根据fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制功能块实例的代码。如此,将功能块图像直接导入到组态软件中,实现了fbd图像到fbd程序的自动转化,在提高了设计效率的同时,避免了时间、地点以及网络的限制,增加了设计过程的灵活性,给用户带来了更多的便利。
附图说明
44.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1是本技术一个实施例提供的一种基于fbd的组态软件编程方法的流程图。
46.图2是本技术另一个实施例提供的一种基于fbd的组态软件编程装置的结构示意图。
47.图3是本技术另一个实施例提供的一种基于fbd的组态软件编程设备的结构示意图。
具体实施方式
48.为使本技术的目的、技术方案和优点更加清楚,下面将对本技术的技术方案进行详细的描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本技术所保护的范围。
49.参见图1是本技术一个实施例提供的一种基于fbd的组态软件编程方法的流程图。本技术的实施例提供一种基于fbd的组态软件编程方法,如图所示,该方法至少可以包括如下步骤:
50.步骤11、获取功能块图像。
51.考虑到手工绘制的fbd草图更加简单明了,在实施时,功能块图像可以是手工绘制的fbd图像,以提升设计效率。
52.需要说明的是,功能块图像还可以是采用其他方式绘制或者采集的功能块的图像。
53.步骤12、对功能块图像进行识别,得到每个功能块的fbd识别信息。
54.步骤13、根据fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制功能块实例的代码。
55.本实施例中,首先获取功能块图像,其中,功能块图像携带有基本信息。对功能块图像进行识别,得到功能块图像中每个功能块的fbd识别信息。继而根据fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制功能块实例的代码。如此,将功能块图像直接导入到组态软件中,实现了fbd图像到fbd程序的自动转化,在提高了设计效率的同时,避免了时间、地点以及网络的限制,增加了设计过程的灵活性,给用户带来
了更多的便利。
56.在实际应用中,在对功能块图像进行识别时,受多重因素的影响,识别得到的fbd识别信息很可能并不完备,这就容易导致最终导入的fbd程序并不完备,为此,在根据fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制所述功能块实例的代码时,可以首先检测fbd识别信息是否满足信息完备条件;若fbd识别信息满足信息完备条件,根据信息完备的fbd识别信息,在pou的变量声明区建立对应的第一功能块实例,并在pou的代码区绘制第一功能块实例的代码。
57.其中,信息完备条件可以设置为:fbd识别信息中包括基本信息。基本信息可以包括:功能块类型、功能块实例名和功能块的连接关系。功能块的连接关系是指功能块图像中各个功能块之间的连接关系,用来确定后续建立的功能块实例之间的调用关系。也就是说,满足信息完备条件的情况是:识别得到的fbd识别信息中,必须包括功能块类型、功能块实例名和功能块的连接关系。只有当fbd识别信息中包括这三种信息时,才在pou的变量声明区建立对应的第一功能块实例,并在pou的代码区绘制第一功能块实例的代码。
58.其中,功能块类型和功能块实例名相当于识别某个类及对象,而功能块的连接关系,则用来确定功能块实例之间的调用关系。
59.实施时,基本信息还可以包括功能块的所有输入/输出所连接的变量。
60.基于此,在检测fbd识别信息是否满足信息完备条件时,可以检测fbd识别信息中是否包括功能块类型、功能块实例名和功能块的连接关系;若fbd识别信息中包括功能块类型、功能块实例名和功能块的连接关系,则fbd识别信息满足信息完备条件;反之,则fbd识别信息不满足信息完备条件。
61.为了确保fbd识别信息能够满足信息完备条件,一些实施例中,在fbd识别信息不满足信息完备条件时,可以基于fbd识别信息和基本信息,确定出fbd识别信息中的缺失信息,如此,就可以根据确定的缺失信息,补全fbd识别信息,以使得fbd识别信息满足信息完备条件。
62.其中,在根据缺失信息,补全fbd识别信息时,可以根据fbd识别信息,从预先构建的信息库中获取与fbd识别信息对应的信息,将对应的信息补充到fbd识别信息中缺失信息的位置。
63.实施时,可以采集多种功能块,利用不同功能块的功能块类型、功能块实例名和功能块的连接关系构建信息库,使得每种功能块的功能块类型、功能块实例名和功能块的连接关系一一对应,基于此,在fbd识别信息不完备时,可以根据识别得到的部分信息确定出完整信息。
64.具体的,建立信息库,以及利用信息库补全缺失信息的实现方式可以参考现有技术,此处不再赘述。
65.一些实施例中,在根据缺失信息,补全fbd识别信息时,也可以根据缺失信息和fbd识别信息,生成提示信息,并发送给用户;接收用户发送的反馈信息,将反馈信息补充到fbd识别信息中缺失信息的位置。这一步操作是在确定fbd识别信息并不满足信息完备条件时,可以发送提示信息给用户,以便于用户可以及时补充缺失信息到fbd识别信息中,以使得fbd识别信息能够满足信息完备条件。如此,fbd识别信息满足信息完备条件,就可以根据完备的fbd识别信息,在在pou的变量声明区建立对应的第一功能块实例,并在pou的代码区绘
制第一功能块实例的代码。
66.一些实施例中,在上述检测fbd识别信息是否满足信息完备条件之后,基于fbd的组态软件编程方法还可以包括:若fbd识别信息不满足信息完备条件,根据信息不完备的fbd识别信息,在pou的变量声明区建立对应的第二功能块实例,并在pou的代码区绘制第二功能块实例的代码。也就是说,即使获取到的fbd识别信息是不完备的,也可以根据已有的信息去完成组态软件的导入。例如,fbd识别信息中的识别内容只有功能块类型和功能块的连接关系,没有功能块实例名,那么,也可以基于识别内容中的功能块类型和功能块的连接关系在pou的变量声明区声明并在代码区完成绘制,只是完成的声明与绘制中,缺少功能块实例名。
67.上述步骤12中,在对功能块图像进行识别,得到每个功能块的fbd识别信息时,可以基于计算机视觉技术,对功能块图像进行识别,得到各个功能块的fbd识别信息。
68.从上至下,从左至右是iec61131-3规范规定的fbd程序执行顺序。本实施例中,可以按照iec61131-3规范规定的fbd程序执行顺序识别功能块图像。在这里识别的信息是单个功能块,其具体fbd识别信息可以包括其输入/输出直线数量和位置、输入/输出所连接的变量名、功能块矩形框的左上角坐标及矩形大小(便于代码绘制时计算中心位置)、功能块类型和功能块实例名。
69.其中,识别的方式可以采用机器学习方法或深度学习方法,从功能块图像中进行物体的识别和分类。
70.具体实施时,可以先对训练数据集图片中的功能块进标注,然后使用机器学习的分类算法或是深度学习来完成训练过程,得到识别模型。此外,也可以使用模板匹配方式(预定义好一些fb的模板),先完成功能块图像的分割,获得各个功能块及相对位置、连接关系;然后再对功能块进行二次分割,获得文字区域(功能块类型、功能块实例名、输入/输出变量名);最后识别功能块的输入/输出直线、连接关系。
71.具体的,识别功能块图像得到各个功能块的fbd识别信息的具体实现方式可以参考现有相关技术,此处不再赘述。
72.一些实施例中,fbd识别信息可以包括:识别内容和对应的功能块位置信息。相应的,在根据fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制所述功能块实例的代码时,可以遍历fbd识别信息,根据识别内容在pou的变量声明区进行声明,建立对应的功能块实例;遍历fbd识别信息,根据识别内容和功能块位置信息在pou的代码区绘制功能块实例的代码。
73.实际应用中,在fbd识别信息满足信息完备条件时,fbd识别信息的识别内容就包括基本信息,即fbd识别信息可以包括基本信息和功能块位置信息。识别完成后,功能块的连接关系可以保存到对应的功能块的信息中。假设连接线两端分别连接功能块fb a和fb b,fb a要保存的功能块连接关系的信息元素就包括入度(有几根连接线连接到fb a的输入)、出度(有几根线从fb a输出连接至下游的功能块)、连接线所连接的输入/输出。
74.具体实施时,遍历fbd识别信息,在pou的变量声明区声明变量。另外,在遍历时,汇总每个功能块的输入/输出上所连接的变量,确定出pou的输入/输出变量,并在完成对应的声明。具体的,在pou的变量声明区声明变量的具体实现方式可以参考现有技术,此处不过多赘述。
75.同样的,在上述根据识别内容和功能块位置信息在pou的代码区绘制功能块实例的代码时,可以根据识别内容,确定各个功能块实例的代码;根据功能块位置信息和功能块实例的代码,在pou的代码区完成代码绘制。
76.具体实施时,遍历fbd识别信息,在pou的代码区绘制功能块实例的规范化图例,填充图例对应的功能块类型、功能块实例名以及功能块的输入/输出变量,并根据功能块的连接关系,在功能块实例的图例之间绘制连接线,以完成功能块图像至组态软件fbd pou程序的导入。具体的,在pou的代码区完成代码绘制的具体实现方式可以参考现有技术,此处不过多赘述。
77.一些实施例中,为了防止声明变量区出现重复声明,在根据fbd识别信息,在pou的变量声明区建立对应的功能块实例之前,基于fbd的组态软件编程方法还可以包括:在pou的变量声明区中,检测是否存在与fbd识别信息对应的功能块实例;若pou的变量声明区中不存在与fbd识别信息对应的功能块实例,则执行后续步骤。即,在创建变量声明之前,先检查该变量声明是否已经被创建,只有在确定该变量声明没有被创建的情况下,才继续执行后续创建变量声明的过程。如果该变量声明已经被创建,则无需继续创建,以避免出现重复声明。
78.一些实施例中,基于fbd的组态软件编程方法还可以包括:接收用户发送的编辑信息;根据编辑信息,更新pou的变量声明区的声明和pou的代码区的代码。也就是说,可以将导入后的fbd pou程序作为项目资源进行保存,如此,用户就可以通过显示器查看、编辑和使用,以更大程度地满足用户的设计需求。例如,可以根据用户的输入信息,补全某些功能块中的缺失信息。另外,也可以在已经导入的功能块的基础上,操作生成一个全新的功能块。
79.基于相同的技术构思,本技术的实施例提供一种基于fbd的组态软件编程装置,如图2所示,该装置可以包括:获取模块201,用于获取功能块图像;识别模块202,用于对功能块图像进行识别,得到每个功能块的fbd识别信息;建立与绘制模块203,用于根据fbd识别信息,在pou的变量声明区建立对应的第一功能块实例,并在pou的代码区绘制第一功能块实例的代码。
80.可选的,在根据fbd识别信息,在pou的变量声明区建立对应的功能块实例,并在pou的代码区绘制功能块实例的代码时,建立与绘制模块203,具体可以用于:检测fbd识别信息是否满足信息完备条件;若fbd识别信息满足信息完备条件,根据信息完备的fbd识别信息,在pou的变量声明区建立对应的第一功能块实例,并在pou的代码区绘制第一功能块实例的代码。
81.其中,信息完备条件可以包括:fbd识别信息中包括基本信息;基本信息可以包括:功能块类型、功能块实例名和功能块的连接关系。相应的,在检测fbd识别信息是否满足信息完备条件时,建立与绘制模块203,具体可以用于:检测fbd识别信息中是否包括功能块类型、功能块实例名和功能块的连接关系;若fbd识别信息中包括功能块类型、功能块实例名和功能块的连接关系,则fbd识别信息满足信息完备条件;反之,则fbd识别信息不满足信息完备条件。
82.可选的,在检测fbd识别信息是否满足信息完备条件之后,建立与绘制模块203,还可以用于:若fbd识别信息不满足信息完备条件,基于fbd识别信息和基本信息,确定缺失信
息;根据缺失信息,补全fbd识别信息,以使得fbd识别信息满足信息完备条件。
83.可选的,在根据缺失信息,补全fbd识别信息时,建立与绘制模块203,可以用于:根据fbd识别信息,从预先构建的信息库中获取与fbd识别信息对应的信息,将对应的信息补充到fbd识别信息中缺失信息的位置。
84.可选的,在根据缺失信息,补全fbd识别信息时,建立与绘制模块203,具体可以用于:根据缺失信息和fbd识别信息,生成提示信息,并发送给用户;接收用户发送的反馈信息,将反馈信息补充到fbd识别信息中缺失信息的位置。
85.可选的,在检测fbd识别信息是否满足信息完备条件之后,建立与绘制模块203,还可以用于:若fbd识别信息不满足信息完备条件,根据信息不完备的fbd识别信息,在pou的变量声明区建立对应的第二功能块实例,并在pou的代码区绘制第二功能块实例的代码。
86.可选的,在对功能块图像进行识别,得到每个功能块的fbd识别信息时,识别模块202,具体可以用于:基于计算机视觉技术,对功能块图像进行识别,得到fbd识别信息。
87.可选的,基于fbd的组态软件编程装置还可以包括检测模块,检测模块具体可以用于:在pou的变量声明区中,检测是否存在与fbd识别信息对应的功能块实例;若pou的变量声明区中不存在与fbd识别信息对应的功能块实例,则执行后续步骤。
88.可选的,基于fbd的组态软件编程装置还可以包括编辑模块,编辑模块,具体可以用于:接收用户发送的编辑信息;根据编辑信息,更新pou的变量声明区的声明和pou的代码区的代码。
89.本技术实施例提供的基于fbd的组态软件编程装置的具体实施方案可以参考以上任意例所述的基于fbd的组态软件编程方法的实施方式,此处不再赘述。
90.基于相同的技术构思,本技术的实施例提供一种基于fbd的组态软件编程设备,如图3所示,该设备可以包括:处理器301,以及与处理器301相连接的存储器302;存储器302用于存储计算机程序;处理器301用于调用并执行存储器302中计算机程序,以执行如以上任意实施例所述的基于fbd的组态软件编程方法。
91.本技术实施例提供的基于fbd的组态软件编程设备的具体实施方案可以参考以上任意例所述的基于fbd的组态软件编程方法的实施方式,此处不再赘述。
92.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
93.需要说明的是,在本技术的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本技术的描述中,除非另有说明,“多个”的含义是指至少两个。
94.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
95.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下
列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
96.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
97.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
98.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
99.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
100.尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献