一种PLC程序生成方法、系统、设备及存储介质与流程

文档序号:22755085发布日期:2020-10-31 09:51阅读:164来源:国知局
一种PLC程序生成方法、系统、设备及存储介质与流程

本发明涉及工业控制软件开发领域,尤其涉及一种plc程序生成方法、系统、设备及存储介质。



背景技术:

作为控制自动化设备进而实现工业自动化的重要一环,plc程序的编写一直是工业控制领域关注的重点;由于行业差别较大,用于实现不同生产活动的自动化设备也千差万别,虽然在某些特定行业中针对plc程序已经实现了自动化编写,但仅适用于特定的执行标准或业务需求,无法普及到所有行业中;除这些特定行业之外,plc程序的编写大多依靠工程师手工进行,由于人工操作的原因,存在编写效率低且容易出现编写错误等弊端;所以,如何既能实现自动化编写plc程序又能将这种方法使用于通用的自动化设备是当前急需解决的技术问题。



技术实现要素:

为至少解决现有技术中存在的技术问题之一,本发明的目的在于提供一种plc程序生成方法、系统、设备及存储介质。

根据本发明实施例的第一方面,一种plc程序生成方法,包括以下步骤:

获取数据表格;所述数据表格中的数据包括信号名称、条件信号数据、相互关系信息以及附属信息;

读取所述数据表格,得到执行数据;

获取程序模板,输入所述执行数据至所述程序模板并进行转译排版,得到plc程序文件;所述程序模板具有plc程序规则。

进一步,所述读取所述数据表格,得到执行数据这一步骤,包括:

读取所述数据表格中的所述信号名称;

依次读取所述信号名称在所述数据表格中所处行的所述条件信号数据;

逐行读取直至所述数据表格内的所有数据读取完成,得到所述执行数据。

进一步,所述依次读取具体是指以所述信号名称为起点,向右依次读取该行的其他数据。

进一步,所述获取程序模板,输入所述执行数据至所述程序模板并进行转译排版,得到plc程序文件这一步骤,包括:

获取所述程序模板;

根据所述plc程序规则依次输入所述执行数据至所述程序模板并进行转译排版;

得到所述plc程序文件。

进一步,所述获取数据表格通过记录数据至excel表格实现。

根据本发明实施例的第二方面,一种plc程序生成系统,包括以下模块:

数据表格模块,用于获取数据表格;所述数据表格中的数据包括信号名称、条件信号数据、相互关系信息以及附属信息;

执行数据模块,用于读取所述数据表格,得到执行数据;

plc程序模块,用于获取程序模板,输入所述执行数据至所述程序模板并进行转译排版,得到plc程序文件;所述程序模板具有plc程序规则。

进一步,所述执行数据模块包括:

第一读取单元,用于读取所述数据表格中的所述信号名称;

第二读取单元,用于依次读取所述信号名称在所述数据表格中所处行的所述条件信号数据;

循环执行单元,用于逐行读取直至所述数据表格内的所有数据读取完成,得到所述执行数据。

进一步,所述plc程序模块包括:

数据获取单元,用于获取所述程序模板;

转译排版单元,用于根据所述plc程序规则依次输入所述执行数据至所述程序模板并进行转译排版;

文件生成单元,用于得到所述plc程序文件。

根据本发明实施例的第三方面,一种设备,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如第一方面所述的方法。

根据本发明实施例的第四方面,一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于实现第一方面所述的方法。

本发明的有益效果是:通过读取数据表格获得执行数据,输入执行数据至程序模板并进行自动转译排版生成plc程序文件,利用程序的自动化执行代替传统的人工操作,从而在工业控制软件开发领域既实现了plc程序的自动编写,又降低了plc程序的编写要求,使其能够应用于通用的自动化设备。

附图说明

为了更清楚地说明本发明实施例或者现有技术中的技术方案,下面对本方明实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员而言,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。

图1是本发明实施例提供的一种plc程序生成方法流程图;

图2是本发明实施例提供的程序生成流程示意图;

图3是本发明实施例提供的程序界面图;

图4是本发明实施例提供的系统结构框图;

图5是本发明实施例提供的一种设备接口框图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

首先,对本发明实施例中涉及的相关名词术语进行介绍和说明:

plc:programmablelogiccontroller,即可编程逻辑控制器,是一种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。

程序文件:属于plc编程软件可识别文件,可通过程序文件生成所需的plc控制程序。

本发明实施例提供了一种plc程序生成方法,该方法可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软体,例如具有图像颜色恒常性处理功能的应用程序等。参照图1,该方法包括以下步骤s100-s300:

s100、获取数据表格;需要特别说明的是,数据表格中的数据包括信号名称、条件信号数据、相互关系信息以及附属信息,上述数据类型及相应类型中包含的数据信息可以根据实际应用环境的需求进行增减或修改;在本发明实施例中,一般通过将数据记录在excel表格的方式来获取数据表格;

s200、读取数据表格,得到执行数据;

可选地,步骤s200可以通过以下步骤实现:

s201、读取数据表格中的信号名称;

s202、依次读取信号名称在数据表格中所处行的条件信号数据;需要特别说的是,依次读取具体是指以信号名称为起点,向右依次读取该行的其他数据;

s203、逐行读取直至数据表格内的所有数据读取完成,得到执行数据;

s300、获取程序模板,输入执行数据至程序模板并进行转译排版,得到plc程序文件;程序模板具有plc程序规则。

可选地,步骤s300可以通过以下步骤实现:

s301、获取程序模板;

s302、根据plc程序规则依次输入执行数据至程序模板并进行转译排版;

s303、得到plc程序文件。

参照表1,体现了在部分实施例中,以西门子plc程序作为应用场景,数据表格以excel表格作为应用基础,呈现出的记录形式:

表1

从上表中可以看出,第一行呈现了数据的类型,包含动作组名称、信号名称、采集点、开始信号点以及结束信号点;其中,一个动作组对应多个动作,每个动作对应不同的采集点,同一动作组内的动作具有相同的开始信号点,不同的信号点;以“v1_close_1”动作为例,其隶属于“v1_close”动作组,通过“d121.dbx0.0”采集点,于“q0.0”作为开始信号、“i0.1”作为结束信号;根据西门子的plc程序规则我们可以将关于“v1_close_1”的数据转译排版生成如下程序:

network;

title=v1_close_1;

aq0.0//取开始信号点数据;

sd121.dbx0.0//置位采集点,这是此采集点的值为1;

ai0.1//取结束信号点数据;

rd121.dbx0.0//复位采集点,这时此采集点的值为0。

其他行的数据也按同样的规则编写,java程序批量读取excel的数据,逐行展开数据,再按照上述规则进行排列输出;生成plc程序的过程即是对输入的数据按照上述规则进行转译排版的过程;在一种应用场景中,我们最终输出文件的文件格式为awl,这种文件格式是西门子plc软件可识别的文件;由此,原本由工程师全程负责的编写工作,现在仅需要完成数据表格的填写或生成即可,其他步骤均由系统自动完成。

在实际的应用过程中,我们可以根据车间生产工艺流程所涉及的设备进行工艺拆分,分离出每个设备的动作工序,例如:在零件的焊接工艺中,一般涉及夹具夹紧定位、焊接、夹具松开、出货等步骤,包含的设备有夹紧设备c1、c2,焊接设备w1,其中每一台设备至少参与1个工序,拆分出设备所做的工序依次为c1夹紧、c2夹紧、w1第一次焊接、w1第二次焊接、c1、c2同时打开;工序按先后顺序分步完成,当所有设备的工序都完成时,零件焊接成品,进入组装线;确定每个设备的每道工序开始与结束的信号点,填入前文提及的excel表格中的开始信号点与结束信号点,java程序读取该工序的开始与结束信号后做按plc的编程方式做逻辑运算处理,完成plc的自动编程。

而在一些较为复杂的生产工艺中,单个工序的信号点不唯一,而是多个信号逻辑运输的结果,例如:前文提及的焊接设备w1在第一次焊接工序的开始时需要夹具c1、c2均结束后才能进行,也就是说w1第一次焊接开始需要c1、c2的夹紧结束信号c1v2、c2v2做“与”逻辑运算,即c1v2&c2v2;针对逻辑运算只需要在标准excel表里面用相应的符号表示,“与”逻辑运算用符号‘&’、“或”逻辑运算用‘|’、“非”逻辑用‘!’等;根据不同的逻辑运算符号按plc程序标准写入plc程序文件中。

参照图2,所示为根据本发明实施例的程序生成流程,以标准excel表格作为数据的载体,进行数据填写之后,通过plc程序语法解析算法,最终转化生成可供plc软件识别的plc程序文件。

参照图3,所示为根据本发明实施例的程序界面,其展示的是西门子plc程序文件经过相应的软件识别后呈现的内容,经识别后,即可将该程序下载至西门子plc控制单元运行,进而完成相应的数据处理及控制工作。

本发明相对于现有技术具有以下有益效果:通过读取数据表格获得执行数据,输入执行数据至程序模板并进行自动转译排版生成plc程序文件,利用程序的自动化执行代替传统的人工操作,从而在工业控制软件开发领域既实现了plc程序的自动编写,又降低了plc程序的编写要求,使其能够应用于通用的自动化设备。

参照图4,本发明还提供了一种plc程序生成系统,包括以下模块:

数据表格模块401,用于获取数据表格;

执行数据模块402,与数据表格模块401连接实现交互,用于读取数据表格,得到执行数据;

可选地,执行数据模块402还包括以下单元:

第一读取单元,用于读取数据表格中的信号名称;

第二读取单元,用于依次读取信号名称在数据表格中所处行的条件信号数据;

循环执行单元,用于逐行读取直至数据表格内的所有数据读取完成,得到执行数据;

plc程序模块403,与执行数据模块402连接实现交互,用于获取程序模板,输入执行数据至程序模板并进行转译排版,得到plc程序文件;程序模板具有plc程序规则;

可选地,plc程序模块403还包括以下单元:

数据获取单元,用于获取程序模板;

转译排版单元,用于根据plc程序规则依次输入执行数据至程序模板并进行转译排版;

文件生成单元,用于得到plc程序文件。

参照图5,本发明还提供了一种设备,包括:

至少一个处理器501;

至少一个存储器502,用于存储至少一个程序;

当至少一个程序被至少一个处理器501执行,使得至少一个处理器501实现如图1所示的方法。

图1所示的方法实施例中的内容均适用于本系统实施例中,本设备实施例所具体实现的功能与图1所示的方法实施例相同,并且达到的有益效果与图1所示的方法实施例所达到的有益效果也相同。

本发明还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于实现如图1所示的方法。

图1所示的方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与图1所示的方法实施例相同,并且达到的有益效果与图1所示的方法实施例所达到的有益效果也相同。

可以理解的是,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

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