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

基于模型的PLC控制代码生成方法、系统、装置及存储介质与流程

2021-10-24 07:21:00 来源:中国专利 TAG:生成 装置 模型 代码 控制

基于模型的plc控制代码生成方法、系统、装置及存储介质
技术领域
1.本发明涉及plc程序代码生成技术领域,尤其是一种基于模型的plc控制代码生成方法、系统、装置及存储介质。


背景技术:

2.plc编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。可编程序控制器及其有关设备,都应按易于使工业控制系统形成一个整体,易于扩充其功能的原则设计。
3.随着微处理器、计算机和数字通信技术的飞速发展,计算机控制已扩展到了几乎所有的工业领域。现代社会要求制造业对市场需求作出迅速的反应,生产出小批量、多品种、多规格、低成本和高质量的产品,为了满足这一要求,生产设备和自动生产线的控制系统必须具有极高的可靠性和灵活性,plc编程正是顺应这一要求出现的,它是以微处理器为基础的通用工业控制装置。
4.但是,目前plc编程大都依靠专业程序员通过手动输入plc程序代码完成,这个过程需要消耗大量的时间,编程效率低下,且容易出错。


技术实现要素:

5.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于模型的plc控制代码生成方法、系统、装置及存储介质。
6.本发明所采取的技术方案是:
7.一方面,本发明实施例包括一种基于模型的plc控制代码生成方法,包括:
8.创建plc控制对象模型库;
9.建立plc控制对象识别机制;
10.根据所述plc控制对象识别机制和所述plc控制对象模型库,生成相应的plc控制对象模型实例;
11.根据不同plc控制对象模型的属性创建相应的电气接口模块,并建立所述电气接口模块与所述plc控制对象模型实例接口的映射关系;
12.根据不同plc控制对象模型的属性类型,生成plc控制对象变量名;
13.识别不同plc控制对象模型的代码生成规则,并根据所述代码生成规则生成相应的plc控制代码。
14.进一步地,所述创建plc控制对象模型库具体为:
15.通过抽象法,将不同的plc控制对象抽象成相应的plc控制对象模型,以创建得到plc控制对象模型库。
16.进一步地,建立plc控制对象识别机制这一步骤,包括:
17.获取命名规则;
18.将所述plc控制对象按照所述命名规则进行命名。
19.进一步地,根据所述plc控制对象识别机制和所述plc控制对象模型库,生成相应的plc控制对象模型实例这一步骤,包括:
20.通过信息表获取plc控制对象信息,所述信息表包括电气io表或电气信息表;
21.根据所述plc控制对象信息和所述plc控制对象识别机制,在所述plc控制对象模型库中进行匹配,生成相应的plc控制对象模型实例。
22.进一步地,所述根据不同plc控制对象模型的属性创建相应的电气接口模块,并建立所述电气接口模块与所述plc控制对象模型实例接口的映射关系这一步骤,包括:
23.识别不同plc控制对象模型对应的电气接口属性;
24.根据不同plc控制对象模型对应的电气接口属性,生成相应的电气接口模块;
25.将所述电气接口模块自动链接到相应的plc控制对象模型实例接口,以建立相应的接口映射关系。
26.进一步地,所述根据不同plc控制对象模型的属性类型,生成plc控制对象变量名这一步骤,包括:
27.识别不同plc控制对象模型的属性类型;
28.获取词典规则;
29.根据不同plc控制对象模型的属性类型和所述词典规则,生成plc控制对象变量名,所述plc控制对象变量名为plc控制对象识别码。
30.另一方面,本发明实施例还包括一种基于模型的plc控制代码生成系统,包括:
31.创建模块,用于创建plc控制对象模型库;
32.建立模块,用于建立plc控制对象识别机制;
33.第一生成模块,用于根据所述plc控制对象识别机制和所述plc控制对象模型库,生成相应的plc控制对象模型实例;
34.创建及建立模块,用于根据不同plc控制对象模型的属性创建相应的电气接口模块,并建立所述电气接口模块与所述plc控制对象模型实例接口的映射关系;
35.第二生成模块,用于根据不同plc控制对象模型的属性类型,生成plc控制对象变量名;
36.第三生成模块,用于识别不同plc控制对象模型的代码生成规则,并根据所述代码生成规则生成相应的plc控制代码。
37.进一步地,所述建立模块包括:
38.获取单元,用于获取命名规则;
39.命名单元,用于将所述plc控制对象按照所述命名规则进行命名。
40.另一方面,本发明实施例还包括一种基于模型的plc控制代码生成装置,包括:
41.至少一个处理器;
42.至少一个存储器,用于存储至少一个程序;
43.当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的基于模型的plc控制代码生成方法。
44.另一方面,本发明实施例还包括计算机可读存储介质,其上存储有处理器可执行
的程序,所述处理器可执行的程序在被处理器执行时用于实现所述的基于模型的plc控制代码生成方法。
45.本发明的有益效果是:
46.本发明通过创建plc控制对象模型库和建立plc控制对象识别机制;根据plc控制对象识别机制和plc控制对象模型库,生成相应的plc控制对象模型实例;然后根据不同plc控制对象模型的属性创建相应的电气接口模块,并建立电气接口模块与plc控制对象模型实例接口的映射关系;再根据不同plc控制对象模型的属性类型,生成plc控制对象变量名;最后识别不同plc控制对象模型的代码生成规则,并根据代码生成规则生成相应的plc控制代码;使得在plc编程的过程中不再需要一一手动输入代码,节省了工作时间,提升了编程效率,同时通过机器自动生成相应代码也可避免由于人工手动输入造成的容易出错的问题。
47.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
48.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
49.图1本发明实施例所述基于模型的plc控制代码生成方法的步骤流程图;
50.图2为本发明实施例所述气缸模型的示例图;
51.图3为本发明实施例所述电气信息表的示例图;
52.图4为本发明实施例所述io表的示例图;
53.图5为本发明实施例所述生成的plc控制代码的示例图;
54.图6为本发明实施例所述基于模型的plc控制代码生成装置的结构示意图。
具体实施方式
55.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
56.在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
57.在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
58.本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
59.下面结合附图,对本技术实施例作进一步阐述。
60.参照图1,本发明实施例提供一种基于模型的plc控制代码生成方法,包括但不限于以下步骤:
61.s100.创建plc控制对象模型库;
62.s200.建立plc控制对象识别机制;
63.s300.根据plc控制对象识别机制和plc控制对象模型库,生成相应的plc控制对象模型实例;
64.s400.根据不同plc控制对象模型的属性创建相应的电气接口模块,并建立电气接口模块与plc控制对象模型实例接口的映射关系;
65.s500.根据不同plc控制对象模型的属性类型,生成plc控制对象变量名;
66.s600.识别不同plc控制对象模型的代码生成规则,并根据代码生成规则生成相应的plc控制代码。
67.本实施例中,关于步骤s100,也就是创建plc控制对象模型库这一步骤,具体为:通过抽象法,将不同的plc控制对象抽象成相应的plc控制对象模型,以创建得到plc控制对象模型库。
68.具体地,通过抽象法,舍弃原模型中非本质的、次要的、与研究宗旨无关的因素,只保留原模型中本质的、主要的与研究宗旨密切相关的因素。以气缸模型为例,将气缸缸径、行程、材质、形状等与气缸动作控制无关的因素舍弃;而将气缸阀块接口信息、感应器配置信息等主要信息保留。在创建plc控制对象模型库的过程中,主要是把常用plc控制对象比如气缸、伺服/步进电机、真空调速电机、扫码枪、传感器等抽象成模型。一般地,模型包含常见属性及方法:plc名称、模型名称、接口类型、工位描述、所属工站、id、图标、接口映射信息、报警方法、功能块调用方法、警告方法等。具体地,模型库中包括气缸模型、伺服/步进电机模型、真空调速电机模型、扫码枪模型、传感器模型等其他模型;其中,同样以气缸模型为例,参照图2,图2为气缸模型示例图,如图2所示,该气缸模型名称为电气翻转气缸,其还相应包含了io接口类型信息、io映射配置信息等其他信息。
69.本实施例中,关于步骤s200,也就是建立plc控制对象识别机制这一步骤,具体包括:
70.s201.获取命名规则;
71.s202.将plc控制对象按照命名规则进行命名。
72.本实施例中,先获取plc控制对象的命名规则,然后按照该命名规则进行命名。具体地,可从creo电气参数命名插件上导出电气信息表,导出的电气信息表中规划了对象名称、对象所属工站、对象关联件信息等其他信息的对应关系,参照图3,图3为电气信息表的示例图。本实施例中,先确定plc控制对象,比如plc控制对象为气缸,通过电气信息表可查找得到气缸对应的所属信息,然后按照命名规则“工站编号 动作名称 器件名称”对该气缸进行命名,比如可命名为“st01电芯上料气缸”,其中,“st01”代表工站编号,“电芯上料”代表动作名称,“气缸”代表器件名称。按照这种命名规则,可对常用plc控制对象进行相应命名,进而可建立plc控制对象的识别机制。
73.本实施例中,关于步骤s300,也就是根据plc控制对象识别机制和plc控制对象模型库,生成相应的plc控制对象模型实例这一步骤,具体包括:
74.s301.通过信息表获取plc控制对象信息,信息表包括电气io表和电气信息表;
75.s302.根据plc控制对象信息和plc控制对象识别机制,在plc控制对象模型库中进行匹配,生成相应的plc控制对象模型实例。
76.本实施例中,由于电气io表和电气信息表会包含plc控制对象的所属信息,因此,可先导入电气io表和电气信息表,然后在电气io表和电气信息表中查找不同的plc控制对象对应的信息,再根据步骤s200得到的识别机制对plc控制对象进行识别。其中,电气io表参照图4,图4为电气io表的示例图。具体地,可通过解析io表/电气信息表上的工站信息,然后在工站所属区域内识别出plc控制对象的关键字,然后结合plc控制对象模型库进行匹配,即在plc控制对象模型库中找出plc控制对象关键字对应的模型,最后生成相应的plc控制对象模型实例。
77.本实施例中,关于步骤s400,也就是根据不同plc控制对象模型的属性创建相应的电气接口模块,并建立电气接口模块与plc控制对象模型实例接口的映射关系这一步骤,具体包括:
78.s401.识别不同plc控制对象模型对应的电气接口属性;
79.s402.根据不同plc控制对象模型对应的电气接口属性,生成相应的电气接口模块;
80.s403.将电气接口模块自动链接到相应的plc控制对象模型实例接口,以建立相应的接口映射关系。
81.本实施例中,首先识别不同plc控制模型的电气接口属性,比如识别气缸模型需要两个输入接口i及两个输出接口q。然后按所属区域自动生成相应的电气接口模块,比如在气缸所属工站的所属区域内自动生成两个输入接口i和两个输出接口q对应的电气接口模块。最后将生成的电气接口模块动链接到相应的plc控制对象模型实例接口,以建立相应的接口映射关系,比如将生成的气缸的两个输入接口i和两个输出接口q对应的电气接口模块自动链接到气缸模型实例接口,以建立映射关系。从而实现程序控制接口、对象接口、终端电气接口的分离。比如,因为气缸对象接口在程序中使用次数较多,如果直接使用物理io接口,当物理io接口出现损坏需要更改时会导致程序上使用的io接口变量多处修改。而让气缸对象接口和物理io接口分离,当物理接口损坏时只需要更改映射关系就可以,不需要更改程序代码。具体地,如果建立的映射关系为气缸对象接口1—i0100.00(物理io接口),气缸对象接口2—i0100.01(物理io接口)。当物理io接口i0100.00和i0100.01接口出现损坏时,只需要变更映射关系,即建立新的新映射关系,比如气缸对象接口1—i0100.02(物理io接口),气缸对象接口2—i0100.03(物理io接口)。
82.本实施例中,关于步骤s500,也就是根据不同plc控制对象模型的属性类型,生成plc控制对象变量名这一步骤,具体包括:
83.s501.识别不同plc控制对象模型的属性类型;
84.s502.获取词典规则;
85.s503.根据不同plc控制对象模型的属性类型和所述词典规则,生成plc控制对象变量名,plc控制对象变量名为plc控制对象识别码。
86.本实施例中,首先识别不同plc控制对象模型的属性类型,比如识别气缸模型的属性类型为obj_cylinder,伺服/步进电机模型的属性类型为obj_axis、真空模型的属性类型
为obj_vacuum,调速电机模型的属性类型为obj_iomotor,扫码枪模型的属性类型为obj_scaner,传感器模型的属性类型为obj_sensor。然后从词典规则表中查找词典规则,词典规则为“工站代号 对象代号 对象名称”。比如,识别得到气缸模型的属性类型中包括以下信息:id、plc名称、对象名称、对象描述、io接口映射信息、io接口类型、io接口分配完成状态、图标、报警方法、功能块调用方法、警告方法、所属工站、所属工站id等。从词典规则表中查找得到该气缸模型对应的词典规则为“st01v.cy01_movingcell”,其中,“st01v”表示气缸模型所属工站的代号,“cy01”为气缸代号,“movingcell”为气缸名称。按照这种形式,自动生成不同plc控制对象模型对应的变量名,变量名可作为plc控制对象的唯一识别码。
87.本实施例中,在前序准备工作完成之后,即在完成了s100

s500的所有步骤之后,由于需要将不同plc控制对象所具有的功能生成能够具有该项功能的相应代码,即需要将不同plc控制对象所具有的功能用plc编程语言实现,需要识别不同plc控制对象模型的代码生成规则,然后才能根据代码生成规则生成相应的plc控制代码。该过程主要是将plc控制对象所包含的信息,比如其接口信息、接口映射信息、报警方法、功能块调用方法、警告方法等翻译成相应的代码信息。具体地,参照图5,图5为生成的plc控制代码的其中一个示例图。
88.本发明实施例一种基于模型的plc控制代码生成方法具有以下技术效果:
89.本发明实施例通过创建plc控制对象模型库和建立plc控制对象识别机制;根据plc控制对象识别机制和plc控制对象模型库,生成相应的plc控制对象模型实例;然后根据不同plc控制对象模型的属性创建相应的电气接口模块,并建立电气接口模块与plc控制对象模型实例接口的映射关系;再根据不同plc控制对象模型的属性类型,生成plc控制对象变量名;最后识别不同plc控制对象模型的代码生成规则,并根据代码生成规则生成相应的plc控制代码;使得在plc编程的过程中不再需要一一手动输入代码,节省了工作时间,提升了编程效率,同时通过机器自动生成相应代码也可避免由于人工手动输入造成的容易出错的问题。
90.本发明实施例还提出一种基于模型的plc控制代码生成系统,包括:
91.创建模块,用于创建plc控制对象模型库;
92.建立模块,用于建立plc控制对象识别机制;
93.第一生成模块,用于根据plc控制对象识别机制和plc控制对象模型库,生成相应的plc控制对象模型实例;
94.创建及建立模块,用于根据不同plc控制对象模型的属性创建相应的电气接口模块,并建立电气接口模块与plc控制对象模型实例接口的映射关系;
95.第二生成模块,用于根据不同plc控制对象模型的属性类型,生成plc控制对象变量名;
96.第三生成模块,用于识别不同plc控制对象模型的代码生成规则,并根据代码生成规则生成相应的plc控制代码。
97.图1所示的方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与图1所示的方法实施例相同,并且达到的有益效果与图1所示的方法实施例所达到的有益效果也相同。
98.参照图6,本发明实施例还提供一种基于模型的plc控制代码生成装置600,具体包
括:
99.至少一个处理器610;
100.至少一个存储器620,用于存储至少一个程序;
101.当至少一个程序被至少一个处理器610执行,使得至少一个处理器610实现如图1所示的方法。
102.其中,存储器620作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。存储器620可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器620可选包括相对于处理器610远程设置的远程存储器,这些远程存储器可以通过网络连接至处理器610。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
103.可以理解到,图6中示出的装置结构并不构成对装置600的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图6所示的装置600中,处理器610可以调取存储器620中储存的程序,并执行但不限于图1所示实施例的步骤。
104.以上所描述的装置600实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现实施例的目的。
105.本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有处理器可执行的程序,处理器可执行的程序在被处理器执行时用于实现如图1所示的方法。
106.本技术实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
107.可以理解的是,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd

rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
108.上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜