可编程序控制器应用程序的自动生成方法及装置的制作方法

文档序号:6273731阅读:198来源:国知局
专利名称:可编程序控制器应用程序的自动生成方法及装置的制作方法
技术领域
本发明涉及自动控制及人工智能领域,尤其涉及一种可编程序控制器(PLC)的应用程序的自动生成方法及装置。
背景技术
自从可编程序控制器(PLC)问世以来,已有300多种可编程序控制器应用于世界的军事、航空航天和汽车制造等领域。控制系统的各受控设备之间根据所处的位置、完成的功能以及设备本身参数的不同,其控制逻辑各有不同。以往,控制软件开发过程中的所有工作都是人工完成的,包括对控制系统的分析、综合、直到转化到某种机型的语言、输入到计算机,而这一过程是相当复杂和严格的。并且,由于PLC的生产厂家众多、品种繁杂,各种技术性能、指令系统、编程语言、编程环境、通讯协议等也都不同,用户在使用前需要学习所购PLC的编程语言、熟悉产品的各种参数、了解产品的使用条件和使用环境等内容,其次还要准确地分析、归纳控制设备之间的各种逻辑关系,才能编写出适合这个生产过程的应用程序,而这需要花费大量的时间。

发明内容
针对现有技术中的问题,本发明的目的是提供了一种可编程序控制器应用程序的自动生成方法及装置,可以根据用户设定的技术参数、控制逻辑等要求,自动生成规范、可靠的PLC应用程序。通过本发明的应用,可以大大提高了 PLC软件的生成效率,缩短了 PLC的开发周期。 为了实现上述目的,本发明提供了一种可编程序控制器应用程序的自动生成方法,该方法包括:知识库生成步骤,该步骤基于多种PLC机型应用程序在功能、实现算法、编程模式等方面的共性,利用面向对象的理论,归纳抽象出描述该些共性的基本知识库,以便于生成应用程序的基本程序模块,并根据生产环节不同设备的特殊情况,归纳抽象出描述该些特殊情况的辅助知识库,以便于生成应用程序的辅助程序模块;逻辑表达式输入步骤,该步骤通过人机对话的方式,输入描述用户技术参数要求的逻辑表达式;应用程序生成步骤,该步骤将输入的逻辑表达式描述的技术参数与基本知识库、辅助知识库中的知识进行匹配,生成相应的若干基本程序模块和辅助程序模块,然后将该些程序模块予以集成和修正,最后生成PLC应用程序。其中,所述应用程序生成步骤进一步包括:词法分析和解释步骤,该步骤对用户输入的逻辑表达式和技术要求进行分析;知识匹配步骤,该步骤根据词法分析得到的某台设备所处的位置和顺序的不同,依次到基本知识库和辅助知识库中进行匹配,并分别提取与其相应基本程序模块和辅助程序模块;集成与修正步骤,该步骤将提取的各基本程序模块和辅助程序模块实例化,利用面向对象方法的继承性和多态性实现单个模块队列到应用程序的集成和修正。进一步的,所述逻辑表达式输入步骤中输入的逻辑表达式为用来描述各受控设备之间连接顺序和闭锁关系的自定义表达式。进一步的,所述的逻辑表达式通过人机交互界面输入。为了实现上述目的,本发明还提供了一种可编程序控制器应用程序的自动生成装置,该装置包括:知识库生成单元,该单元基于多种PLC机型应用程序在功能、实现算法、编程模式等方面的共性,利用面向对象的理论,归纳抽象出描述该些共性的基本知识库,以便于生成应用程序的基本程序模块,并根据生产环节不同设备的特殊情况,归纳抽象出描述该些特殊情况的辅助知识库,以便于生成应用程序的辅助程序模块;逻辑表达式输入单元,该单元通过人机对话的方式,输入描述用户技术参数要求的逻辑表达式;应用程序生成单元,该单元将输入的逻辑表达式描述的技术参数与基本知识库、辅助知识库中的知识进行匹配,生成相应的若干基本程序模块和辅助程序模块,然后将该些程序模块予以集成和修正,最后生成PLC应用程序;其中,所述应用程序生成单元进一步包括:词法分析和解释子单元,该子 单元对用户输入的逻辑表达式和其他技术要求进行分析;知识匹配子单元,该子单元根据词法分析得到的某台设备所处的位置和顺序的不同,依次到基本知识库和特殊知识库中进行匹配,并分别提取与其相应的基本程序模块和辅助程序模块;集成与修正子单元,该子单元将提取的各程序模块实例化,利用面向对象方法的继承性和多态性实现单个模块队列到应用程序的集成和修正。进一步的,所述逻辑表达式输入单元所输入的逻辑表达式为用来描述各受控设备之间连接顺序和闭锁关系的自定义表达式。进一步的,所述的逻辑表达式通过人机交互界面输入。本发明的有益效果如下:根据用户输入的自定义表达式和应用要求,可以快速地自动生成一个可编程序控制器应用程序,并且生成的应用程序快速可靠、规范合理、且易于维护。


图1是本发明第一实施例的可编程序控制器应用程序自动生成方法示意图;图2是程序模块的生成流程图;图3是本发明第二实施例的可编程序控制器应用程序自动生成装置示意图。
具体实施例方式下面结合附图和实施例,对本发明的技术方案作进一步的详细描述。
本发明的第一实施例为一种可编程序控制器应用程序的自动生成方法,参见附图1所示。该方法可以根据用户设定的技术参数、控制逻辑等要求,自动生成规范、可靠的PLC应用程序,其步骤主要包括知识库生成步骤、逻辑表达式输入步骤和应用程序生成步骤。各步骤的具体实现过程将结合附图1-3在以下内容中详细描述。一、知识库生成根据Omron、Simatic、Modicon、AB、GE等多种PLC机型的开发和应用经验,可以发现:a、各个PLC应用程序尽管控制的目标设备不同,但就其所要求实现的基本功能而言是大致相同的。比如:在运输控制系统中,设备必须是逆向启动、顺向关闭的,并且在启车和停车过程中必须具有闭锁功能。b、各个生产环节上不同设备的控制参数有多有少、有复杂有简单,但是基本控制逻辑是相同的,而且在实现这些操作的算法上,程序编写技巧上均可以进行优化、规范和统
一 O可见,各种PLC应用程序在功能上、实现算法上、编程模式等方面都存在着共同点,即共性。因此,可以利用面向对象的理论,抽象出描述这些共性的基本知识库,即基本类库,以产生应用程序的基本模块。另外,本发明根据各个生产环节上不同设备的特殊情况,即特性,归纳抽象出描述这些特性的辅助知识库,即辅助类库,以产生应用程序的辅助模块。 程序自动生成技术中,软件功能的描述问题是影响生成软件质量的主要因素,是软件自动生成技术中的关键性技术。以往的软件功能描述工具是将所有的描述命题录入到数据文件或者数据库中,在系统匹配时,需要进行逐条的筛选,最后产生结论。当软件功能描述的内容比较多时,遍历整个森林的时间是相当长的。根据第四代语言的最小时间原理和效果最佳原理,本发明提出了描述算子附加知识包的方法,以改善描述环境提高系统的生成速度。这个方法是由软件功能描述模型和附加知识包的描述算子集合两部分组成。a)软件功能描述模型软件生成器的目的是生成某个具体领域的应用程序源代码,其基本原理仍然是将若干子功能进行有机地组合,最终实现总体要求。随着结构化程序设计技术的发展,软件功能描述的可分解性得到了证明,特别是面向对象程序设计技术的发展,使软件功能描述方法更具灵活性和结合性。软件功能描述模型可以形式化的定义为:Degn= {Szno, Zsno, Indx}其中,Degn表示软件功能描述模型;Szno表示描述算子集合,每个描述算子对应一个具体的软件功能或者是经过分解的软件子功能;Zsno表示若干个知识包的集合,每个知识包中描述了关于描述算子之间存在的关系和描述算子本身的知识集合;Indx表示索引关系,利用它建立了知识和描述算子之间的连接关系,以提高遍历速度。b)描述算子集合的建立描述算子集合是基于对集控系统的技术要求进行统计分析的基础上而建立的,本发明将集控系统的设备,根据技术要求的不同划分为若干个不同的控制模块,并利用面向对象的方法分别建立了不同的描述算子和对应的知识包。
c)知识包的建立原则及其管理方法在描述算子附加知识包的方法中,知识包是面向描述算子集合中的具体描述算子而建立的知识集合。在建立知识包时,本发明主要依靠了下面的三个原则:归属原则:若知识用于解答某一描述算子所包括的问题,那么此知识就附加在这个描述算子的知识包中。冗余原则:若知识用于解答若干个描述算子所共同包含或者涉及的问题,那么此知识分别附加在这些描述算子的知识包中。归主原则:若知识用于解答描述算子之间的关系,或者涉及到若干描述算子的问题,那么此知识附加在主描述算子的知识包中。知识包的合理管理会更好的提高上述方法的使用效率。它的核心技术是利用描述算子索引知识包中的有关知识。当某个描述算子有效时(即被调用),所索引的或取出的就是它的附加知识包。本发明在制作这部分程序时,采用了动态连接技术,可以充分利用内存空间,进一步提闻知识库的利用率。一、逻辑表达式输入控制系统中各受控设备之间,根据所处的位置、完成的功能以及设备本身参数的不同,其控制逻辑各有不同。在本发明中,将各设备之间的连接顺序和闭锁关系,采用自定义的逻辑表达式进行描述,并通过人机交互界面输入。这个自定义的逻辑表达式既不是一般的代数表达式,也不是一般的布尔表达式。它是一种用来描述各受控设备之间连接顺序和闭锁关系的专用表达式。这种描述方法的优点是直观、易读、易修改,用户可以像编辑其他文本一样随意修改。由于这个表达式的描述含义是自定义的,因此用户在书写时必须遵循相关的规则:I表示设备(设备组)之间是并联的;-表示设备(设备组)之间是串联的;_表示分支设备组上的设备之间是串联的(下划线);O表不括号内的设备是一个设备组;-O表达式的结束标志(必须要有结束标志)。例如逻辑表达式为:(101_102_103_104) | (I O 5_ IO 6_ I O 7) - 108 - 109 - (1 10) | (111)-(112_113)I(114_115) - O该表达式所表示的设备连接顺序及闭锁关系为:控制系统受控设备包括并联的四个分支设备组(101_102_103_104)、(105_106_107) - 108 - 109 - (110)、(111) - (112_113)和(114_115);其中第一个分支设备组(101_102_103_104)中,101是该分支设备组的第一台设备,104是该分支设备组的末台 设备,102和103是中间设备。启车闭锁关系是:只有前面的设备启动以后,后面的设备才能启动;停车闭锁关系是:只有后面的设备停止以后,前面的设备才能停止。其他的技术参数和要求可以通过人机界面另外的对话框输入。二、应用程序生成本发明的方法包含的应用程序生成步骤将输入的逻辑表达式描述的技术参数与基本知识库、辅助知识库中的知识进行匹配,生成相应的若干基本程序模块和辅助程序模块,然后将该些程序模块予以集成和修正,最后生成PLC应用程序。其具体包括:词法分析与解释步骤、知识匹配步骤以及修正集成步骤。以下结合附图分别予以具体说明。( I)词法分析与解释步骤词法分析和解释器对用户输入的逻辑表达式进行逻辑推理,并得到控制系统中各受控设备所处的位置和连接关系、技术参数等信息。(2)知识匹配步骤根据词法分析得到的各种信息,依次到知识包中进行知识匹配,该知识包包括基本知识库和特殊知识库,并提取与其相应的程序模块,其包括基本程序模块和辅助程序模块。如前所述,以往的软件功能描述工具是将所有的描述命题录入到数据文件或者数据库中,在系统匹配时,需要进行逐条的筛选,最后产生结论。本发明则利用描述算子附加知识包的方法,以改善描述环境提高系统的生成速度。(3)修正与集成步骤如附图2所示,生成器以自定义表达式为生成路径,通过词法解释器对用户输入的自定义表达式和其他的技术要求进行分析,根据某台设备所处的位置和顺序的不同,依次到知识包中去匹配,并提取与其对·应的知识模块(包括基本模块和辅助模块),然后,将这个抽象的知识模块进行实例化(包括:生成应用程序的源代码;加入实际的启车延时和停车延时参数;合理分配PLC的定时器/计数器,I/O继电器接点等资源)。如果知识库中没有该模块,则检查上下文,如果上下文错误,则弹出警告窗口,等用户修改正确上下文以后,AG-PLC重新生成该段模块;反之,如果上下文正确,则说明知识库中没有该模块,AG-PLC将在对应的位置上输出无解***的字样,而该模块的生成则由系统的修正部分来完成。如此进行,直至自定义表达式结束。最后,将提取的各程序模块实例化,利用面向对象方法的继承性和多态性实现单个模块队列到应用程序的集成和修正,生成PLC的应用程序。下面对系统的集成与修正过程予以具体描述。上述过程仅产生了若干个抽象的模块,在这些模块中存在着属性和方法上的覆盖及多义性等问题,解决的原则如下(设A是基类,B是A的派生类,M、F是基类的属性和方法):.全部继承和覆盖原则如果模块号不同,但设备所处的相对位置相同(如都是分支上的第一台设备),则对于类B中的M、F就覆盖了在类A中的M、F,使得M在类的这个层次上具有自己的含义,F具有自己的定义。.多义性和优先继承的原则如果类B的基类不只一个,则有可能出现模块号不同,但描述算子相同的情况,则M在类B中具有多义性。系统将根据优先级选定一个M,F来继承。在生成器系统中离类B近的基类具有较高的优先权。基于上述原则,AG - PLC中利用面向对象方法的继承性和多态性实现了由单个的模块队列到成品应用软件的集成与修正。
对于模块生成过程中无解模块的处理,系统提供了以下两个方法:I)向知识库中增加模块,重新生成。如果这个模块是个常用模块,则用户可以打开ADD对话框,向知识库中增加该模块,然后重新运行AG-PLC系统,重新生成整个应用程序的所有模块。2)利用AG-PLC提供的MDI编辑器,进行手工编写。如果这个模块是个异常特殊的模块,则用户不必向知识库中增加该模块,可以在MDI编辑器中打开已生成的成品应用程序,找到无解***字样,进行手工编写。如果用户对已生成的成品应用程序有其他的任何要求,均可在MDI编辑器中完成。根据上述步骤,可以自动生成可编程序控制器的应用程序。本发明的另一个实施例是一种可编程序控制器应用程序的自动生成装置,其组成如附图3所示。该装置可以根据用户设定的技术参数、控制逻辑等要求,自动生成规范、可靠的PLC应用程序,其主要包括知识库生成单元、逻辑表达式输入单元和应用程序生成单元。该装置为本发明第一实施例所述的自动生成方法相对应的装置。由以上阐述可知,本发明提供的一种可编程序控制器应用程序的自动生成方法及装置,可以根据用户设定的技术参数、控制逻辑等要求,自动生成规范、可靠的PLC应用程序。通过本发明的应用,可以大大提高了 PLC软件的生成效率,缩短了 PLC的开发周期。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件和软件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上·述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
权利要求
1.一种可编程序控制器应用程序的自动生成方法,其特征在于,该方法包括: 知识库生成步骤,该步骤基于多种PLC机型应用程序在功能、实现算法、编程模式等方面的共性,利用面向对象的理论,归纳抽象出描述该些共性的基本知识库,以便于生成应用程序的基本程序模块,并根据生产环节不同设备的特殊情况,归纳抽象出描述该些特殊情况的辅助知识库,以便于生成应用程序的辅助程序模块; 逻辑表达式输入步骤,该步骤通过人机对话的方式,输入描述用户技术参数要求的逻辑表达式; 应用程序生成步骤,该步骤将输入的逻辑表达式描述的技术参数与基本知识库、辅助知识库中的知识进行匹配,生成相应的若干基本程序模块和辅助程序模块,然后将该些程序模块予以集成和修正,最后生成PLC应用程序; 其中,所述应用程序生成步骤进一步包括: 词法分析和解释步骤, 该步骤对用户输入的逻辑表达式和技术要求进行分析; 知识匹配步骤,该步骤根据词法分析得到的某台设备所处的位置和顺序的不同,依次到基本知识库和辅助知识库中进行匹配,并分别提取与其相应的基本程序模块和辅助程序模块; 集成与修正步骤,该步骤将提取的各基本程序模块和辅助程序模块实例化,利用面向对象方法的继承性和多态性实现单个模块队列到应用程序的集成和修正。
2.根据权利要求1所述的自动生成方法,所述逻辑表达式输入步骤中输入的所述逻辑表达式为用来描述各受控设备之间连接顺序和闭锁关系的自定义表达式。
3.根据权利要求2所述的自动生成方法,所述的逻辑表达式通过人机交互界面输入。
4.一种可编程序控制器应用程序的自动生成装置,其特征在于,该装置包括: 知识库生成单元,该单元基于多种PLC机型应用程序在功能、实现算法、编程模式等方面的共性,利用面向对象的理论,归纳抽象出描述该些共性的基本知识库,以便于生成应用程序的基本程序模块,并根据生产环节不同设备的特殊情况,归纳抽象出描述该些特殊情况的辅助知识库,以便于生成应用程序的辅助程序模块; 逻辑表达式输入单元,该单元通过人机对话的方式,输入描述用户技术参数要求的逻辑表达式; 应用程序生成单元,该单元将输入的逻辑表达式描述的技术参数与基本知识库、辅助知识库中的知识进行匹配,生成相应的若干基本程序模块和辅助程序模块,然后将该些程序模块予以集成和修正,最后生成PLC应用程序; 其中,所述应用程序生成单元进一步包括: 词法分析和解释子单元,该子单元对用户输入的逻辑表达式和其他技术要求进行分析; 知识匹配子单元,该子单元根据词法分析得到的某台设备所处的位置和顺序的不同,依次到基本知识库和特殊知识库中进行匹配,并分别提取与其相应的基本程序模块和辅助程序模块; 集成与修正子单元,该子单元将提取的各程序模块实例化,利用面向对象方法的继承性和多态性实现单个模块队列到应用程序的集成和修正。
5.根据权利要求4所述的自动生成装置,所述逻辑表达式输入单元中输入的所述逻辑表达式为用来描述各受控设备之间连接顺序和闭锁关系的自定义表达式。
6.根据权利要求5所述 的自动生成装置,所述的逻辑表达式通过人机交互界面输入。
全文摘要
可编程序控制器应用程序自动生成方法,包括知识库生成步骤,基于多种PLC机型应用程序在功能、实现算法、编程模式等方面的共性,利用面向对象的理论,归纳抽象出描述该些共性的基本知识库,生成应用程序的基本程序模块,根据生产环节不同设备的特殊情况,归纳抽象出描述特殊情况的辅助知识库,生成应用程序的辅助程序模块;逻辑表达式输入步骤,通过人机对话的方式,输入描述用户技术参数要求的逻辑表达式;应用程序生成步骤,将输入的逻辑表达式描述的技术参数与基本知识库、辅助知识库中的知识进行匹配,生成相应的基本程序模块和辅助程序模块,然后将该些模块予以集成和修正,最后生成PLC应用程序;提高了软件的生成效率,缩短了开发周期。
文档编号G05B19/05GK103235549SQ201310119780
公开日2013年8月7日 申请日期2013年4月8日 优先权日2013年4月8日
发明者牟永敏 申请人:北京信息科技大学, 牟永敏
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1