《一种将梯形图转化成PLC程序指令的方法.pdf》由会员分享,可在线阅读,更多相关《一种将梯形图转化成PLC程序指令的方法.pdf(19页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102354144A43申请公布日20120215CN102354144ACN102354144A21申请号201110263395022申请日20110906G05B19/0520060171申请人北京联合大学地址100101北京市朝阳区北四环东路97号72发明人王郁昕李红豫何宁74专利代理机构北京纪凯知识产权代理有限公司11245代理人徐宁54发明名称一种将梯形图转化成PLC程序指令的方法57摘要本发明涉及一种将梯形图转化成PLC程序指令的方法,其包括如下步骤1利用有向图表示梯形图的拓扑结构;2利用深度优先搜索的方法对转置图GLT遍历,将并联型顶点和线圈顶点的拓扑排序关系。
2、保存到队列Q;3对并联型顶点依照有向图GL的连接关系使用广度优先搜索,同时对其邻接的串联型顶点进行深度优先搜索,生成有向图GL的整条串联型通路上的AND表达式和并联型顶点的OR表达式;4生成并联型顶点的最大合并项的最终表达式;5利用Q对连接关系图GP进行广度优先搜索,计算出相对应并联型顶点的OR表达式并验证,最后将最大合并项构造成AND表达式形成最终结果;6判断队列Q是否为空;7对起始顶点进行处理。本发明可以广泛应用于将梯形图转化成PLC程序指令的过程中。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图7页CN102354153A1/2页21一种将梯形。
3、图转化成PLC程序指令的方法,其包括以下步骤1利用有向图表示梯形图的拓扑结构,并对有向图进行处理;2利用深度优先搜索的方法对转置图GLT遍历,将所有并联型顶点和线圈顶点的拓扑排序关系保存到队列Q中,且把所有线圈顶点的拓扑排序的顺序再单独地保存在Q中;3按照队列Q中并联型顶点和线圈顶点的排列顺序,对队列Q中的每一个并联型顶点依照有向图GL的连接关系使用广度优先搜索,同时对其邻接的所有的串联型顶点进行深度优先搜索,生成有向图GL的整条串联型通路上的AND表达式和并联型顶点的OR表达式,同时生成并联型顶点的连接关系图GP;4生成并联型顶点的最大合并项的最终表达式;5从队列Q出队一顶点,利用Q对连接关。
4、系图GP进行广度优先搜索,计算出相对应并联型顶点的OR表达式,对每一项OR表达式中的子式进行验证,看其是否达到了最大合并点,直到所有的并联型顶点都生成最大合并项,最后将最大合并项构造成AND表达式形成最终结果;6判断队列Q是否为空,如果不为空,继续重复上述5,直至Q为空;7对起始顶点进行处理,使其适合指令表的表达方式,将表达式除去不必要的括号以精简该表达式,然后为表达式添加必要的换行符号,使其与指令表的显示方式一致。2如权利要求1所述的一种将梯形图转化成PLC程序指令的方法,其特征在于所述步骤1利用有向图表示梯形图的拓扑结构,并对有向图进行处理,处理过程如下对有向图的顶点进行初始化;根据有向图。
5、GL的连接关系生成转置图GLT;根据有向图GL中每个顶点的属性ADJ和ADJT,计算出该顶点的度数,区分有向图GL中顶点的类型;对起始顶点的P属性进行设置。3如权利要求2所述的一种将梯形图转化成PLC程序指令的方法,其特征在于所述步骤对有向图的顶点进行初始化,定义顶点VERTEX的属性如下VERTEXNAME,TYPE,DEGREE,EAND,COLOR,P,PNO,EOR,ADJ,ADJT,其中,NAME为顶点的名称;TYPE为顶点的类型,DEGREE为顶点的度数,EAND用于记录串联型顶点AND表达式的生成结果,COLOR为一个辅助属性表示颜色,P是用于记录与某一顶点邻接的并联型顶点,PN。
6、O表示并联型顶点在拓扑排序中的次序编号,EOR属性以邻接列表或数组的形式保存并联型顶点OR表达式的生成结果,ADJ用于保存有向图的邻接关系;ADJT用于保存转置图的邻接关系。4如权利要求2所述的一种将梯形图转化成PLC程序指令的方法,其特征在于所述步骤对起始顶点进行设置,是指对起始顶点的P属性进行设置,如果起始顶点是串联型顶点则通过增大其度数的方法强制将其转换成并联型顶点,设置起始顶点属性P为自己指向自己。5如权利要求3所述的一种将梯形图转化成PLC程序指令的方法,其特征在于所述步骤对起始顶点进行设置,是指对起始顶点的P属性进行设置,如果起始顶点是串联型顶点则通过增大其度数的方法强制将其转换成。
7、并联型顶点,设置起始顶点属性P为自己指向自己。权利要求书CN102354144ACN102354153A2/2页36如权利要求1或2或3或4或5所述的一种将梯形图转化成PLC程序指令的方法,其特征在于所述步骤3中的所述GP图记录并联型顶点、线圈顶点之间的连接以及串联型顶点从属并联型顶点的关系。权利要求书CN102354144ACN102354153A1/9页4一种将梯形图转化成PLC程序指令的方法技术领域0001本发明涉及一种生成程序指令的方法,特别是关于一种将梯形图转化成PLC程序指令的方法。背景技术0002可编程逻辑控制器PROGRAMMABLELOGICCONTROLLER,PLC是工业。
8、控制领域最为常用的通用控制设备,而梯形图是PLC必备的编程语言。梯形图虽然直观、易于使用,但不能直接在PLC上运行,需要将梯形图转换成指令表才能使PLC按照梯形图的控制逻辑控制被控对象。从梯形图到指令表的转换有许多方法,但到目前为止较好的方法是将梯形图转换成二叉树或某种与树类似的数据结构,然后利用一些规则和一些简单线性数据结构,如栈或队列,反复对上述树形结构进行遍历,从中筛选出必要的与、或项并保存到线性数据结构中,最后将数据项连接成最终的表达式,从而完成整个转换,其中这些表达式是由指令表中的指令构成的。0003但是上述方法存在以下缺点1、从梯形图到树形结构的转换比较复杂,必须借助辅助顶点才能完。
9、成,以至于生成的结果缺乏优化。2、对于具有复杂拓扑连接结构的梯形图不能进行转换,所以转换范围受到限制。3、基于树的转换程序结构复杂,而且在转换过程中顶点和边的计算关系比较复杂,分析转换过程的时间复杂度较为困难,这类方法往往缺乏复杂度分析,所以这类方法不易在顶点规模较大时使用。发明内容0004针对上述问题,本发明的目的是提供一种通过交替使用广度优先搜索和深度优先搜索的方法将梯形图转化成PLC指令的方法。0005为实现上述目的,本发明采取以下技术方案一种将梯形图转化成PLC程序指令的方法,其包括以下步骤1利用有向图表示梯形图的拓扑结构,并对有向图进行处理;2利用深度优先搜索的方法对转置图GLT遍历。
10、,将所有并联型顶点和线圈顶点的拓扑排序关系保存到队列Q中,且把所有线圈顶点的拓扑排序的顺序再单独地保存在Q中;3按照队列Q中并联型顶点和线圈顶点的排列顺序,对队列Q中的每一个并联型顶点依照有向图GL的连接关系使用广度优先搜索,同时对其邻接的所有的串联型顶点进行深度优先搜索,生成有向图GL的整条串联型通路上的AND表达式和并联型顶点的OR表达式,同时生成并联型顶点的连接关系图GP;4生成并联型顶点的最大合并项的最终表达式;5从队列Q出队一顶点,利用Q对连接关系图GP进行广度优先搜索,计算出相对应并联型顶点的OR表达式,对每一项OR表达式中的子式进行验证,看其是否达到了最大合并点,直到所有的并联型。
11、顶点都生成最大合并项,最后将最大合并项构造成AND表达式形成最终结果;6判断队列Q是否为空,如果不为空,继续重复上述5,直至Q为空;7对起始顶点进行处理,使其适合指令表的表达方式,将表达式除去不必要的括号以精简该表达式,然后为表达式添加必要的换行符号,使其与指令表的显示方式一致。说明书CN102354144ACN102354153A2/9页50006所述步骤1利用有向图表示梯形图的拓扑结构,并对有向图进行处理,处理过程如下对有向图的顶点进行初始化;根据有向图GL的连接关系生成转置图GLT;根据有向图GL中每个顶点的属性ADJ和ADJT,计算出该顶点的度数,区分有向图GL中顶点的类型;对起始顶点。
12、的P属性进行设置。0007所述步骤对有向图的顶点进行初始化,定义顶点VERTEX的属性如下0008VERTEXNAME,TYPE,DEGREE,EAND,COLOR,P,PNO,EOR,ADJ,ADJT,其中,NAME为顶点的名称;TYPE为顶点的类型,DEGREE为顶点的度数,EAND用于记录串联型顶点AND表达式的生成结果,COLOR为一个辅助属性表示颜色,P是用于记录与某一顶点邻接的并联型顶点,PNO表示并联型顶点在拓扑排序中的次序编号,EOR属性以邻接列表或数组的形式保存并联型顶点OR表达式的生成结果,ADJ用于保存有向图的邻接关系;ADJT用于保存转置图的邻接关系。0009所述步骤对。
13、起始顶点进行设置,是指对起始顶点的P属性进行设置,如果起始顶点是串联型顶点则通过增大其度数的方法强制将其转换成并联型顶点,设置起始顶点属性P为自己指向自己。0010所述步骤3中的所述GP图记录并联型顶点、线圈顶点之间的连接以及串联型顶点从属并联型顶点的关系。0011本发明由于采取以上技术方案,其具有以下优点1、本发明由于利用深度优先搜索方法寻找并联型顶点和线圈顶点,且对每一个并联型顶点使用广度优先搜索方法生成有向图GL整条串联型通路上的AND表达式和并联型顶点的OR表达式,同时生成并联型顶点的连接关系图GP,搜索规模与顶点和边数成线性关系,因此使得分析时间复杂度的工作变得容易,有利于在顶点规模。
14、较大时使用。2、本发明对起始顶点的P属性进行设置,由于起始顶点不存在父顶点,则设置起始顶点的属性P为自己指向自己,这样搜索过程不会由于找不到父顶点而无限制搜索下去,因此有利于搜索过程快速的找到搜索的结束点,节省搜索的时间。3、本发明的所有操作都在原图上进行,因此不需要对原有的梯形图的拓扑结构进行大的转换,通过交替使用广度与深度优先搜索的方法,能够对具有复杂拓扑结构的梯形图进行转换,特别是在梯形图中有方向概念并能够与有向图完全对应的情况下,从而简化了转换方法,有效地提高转换的速度。4、本发明由于在转换过程中兼顾了表达式的规模与辅助单元的使用,仅仅在最大合并点式引入辅助单元,没有为每个并联型顶点分。
15、别引入辅助单元,这样使转化成的程序指令能够很好地得到优化,虽然转换结果主要针对IEC611313标准,但这种方法仍不失一般性,通过修改部分输出形式,可以很容易地将梯形图转换成其他类型的指令表。5、本发明可以通过顶点的属性对图中的顶点类型进行扩展,因此能够使PLC实现更为复杂的功能。本发明可以广泛应用于将梯形图转化成PLC程序指令的过程中。附图说明0012图1是本发明梯形图转换成指令表的总流程图0013图2是本发明具有重输入关系的梯形图0014图3是图2对应的有向图0015图4是本发明具有交叉关系的梯形图0016图5是图4的对应的有向图说明书CN102354144ACN102354153A3/9。
16、页60017图6是本发明具有复杂交叉关系的梯形图0018图7是图6对应的有向图0019图8是本发明实施例的梯形图0020图9是图8对应的有向图0021图10是本发明对有向图的转置图GLT深度优先搜索的流程图0022图11是本发明对有向图GL进行广度优先搜索并生成顶点OR表达式的流程图0023图12是本发明从图8生成的GP图0024图13是本发明生成最大合并项及其表达式的流程图0025图14是本发明生成最终表达式的流程图具体实施方式0026下面结合附图和实施例对本发明进行详细的描述。0027如图1所示,本发明将梯形图转换成PLC程序指令的方法包括如下步骤00281、利用有向图表示梯形图的拓扑结构。
17、,并对有向图进行处理00291对有向图的顶点进行初始化0030如图29所示,PLC控制器所使用的梯形图如图2、图4、图6、图8所示可以看成是由不同顶点组成的与梯形图相对应的有向图如图3、图5、图7、图9,本发明利用GL表示这种有向图。0031如图3所示,有向图GL中的顶点包括以下类型起始顶点X0,串联型顶点X1、X2、X3、X4、X5、X6,并联型顶点P1、P2,线圈顶点Y1和终止顶点END。其中,串联型顶点是与梯形图中的继电开关相对应,并联型顶点是表示多个继电开关的某一端连接到同一顶点,线圈顶点是与梯形图中输出线圈相对应。0032为了描述这几类顶点以及它们之间的连接关系,同时能够方便且高效的。
18、完成从梯形图到指令的转换,本发明将顶点定义为包含多个属性的对象,VERTEX顶点的数据结构为VERTEXNAME,TYPE,DEGREE,EAND,COLOR,P,PNO,EOR,ADJ,ADJT。其中,NAME表示顶点的名称;TYPE表示顶点的类型,包括COIL型和非COIL型,如果TYPE为“COIL”,则顶点的类型为COIL类型,即线圈类型,也可称之为输出类型,此类型在梯形图中用圆括号表示,如果TYPE为“非COIL”,即为非线圈类型;DEGREE表示顶点的度数,具体描述顶点与输入边和输出边的关系,即射入与射出某一顶点的所有边的数量;EAND用于记录串联型顶点AND表达式的生成结果,只有。
19、串联型顶点使用该属性;COLOR是一个辅助属性表示颜色,用于记录顶点是否被访问过,如果COLOR为白色则表示该顶点从来没有遍历过;如果COLOR是灰色则表示该顶点是首次访问;如果COLOR是黑色则表示该顶点、该顶点的全部子顶点都已访问过;如果COLOR是蓝色则表示该顶点是最大合并点,利用颜色属性标记可以避免顶点的重复访问和处理;P是用于记录与某一顶点邻接的并联型顶点,它描绘了一种连接关系,即由所有并联型顶点组成的有向图;PNO表示并联型顶点在拓扑排序中的次序编号;EOR属性以邻接列表或数组的形式保存并联型顶点OR表达式的生成结果;ADJ用于保存有向图的邻接关系;ADJT列表用于保存转置图的邻接。
20、关系。0033根据上述对顶点的定义,首先将所有顶点颜色设置为白色;所有顶点的EAND设置为空,所有顶点的转置邻接关系表ADJT设置为空。说明书CN102354144ACN102354153A4/9页700342根据有向图GL的连接关系生成转置图GLT,即所有的有向边都与有向图GL相反的图,具体是通过对每个顶点的ADJ链表进行遍历,然后提取逆向邻接关系并将其加入到相应顶点的ADJT中。00353根据有向图GL中每个顶点的ADJ和ADJT,计算出该顶点的度数,区分有向图GL中顶点的类型,具体过程为遍历每个顶点,获得该顶点的ADJ和ADJT的值,ADJ的长度表示该顶点射出的度数,ADJT的长度表示射。
21、入该顶点的度数,ADJ与ADJT的长度之和为顶点的度数。本发明定义顶点度数大于2为并联型顶点,顶点度数不大于2为串联型顶点,根据计算的顶点度数可以对串、并联顶点的类型进行区分。00364对起始顶点的P属性进行设置,在邻接列表中排在有向图GL首位的顶点为起始顶点,排在最后一位的顶点为终止顶点,如果起始顶点是串联型顶点则通过增大其度数的方法强制将其转换成并联型顶点,设置起始顶点属性P,如果该顶点不是起始顶点,P总是指向自己的并联型父顶点,由于起始顶点不存在父顶点,则起始顶点的属性P是自己指向自己,这样有利于搜索过程找到结束点。00372、利用深度优先搜索的方法对转置图GLT遍历,依据括号定理可知深。
22、度优先搜索这一过程可以得到并联型顶点和线圈顶点的拓扑排序关系,将所有并联型顶点和线圈顶点的拓扑排序关系保存到队列Q中,且把所有线圈顶点的拓扑排序的顺序再单独地保存在Q中。0038如图10所示,本发明以其中某一个顶点U为实施例说明整个深度优先搜索的过程,具体如下0039深度优先搜索从右到左依次完成,首先从终止顶点开始,依据深度优先的原则递归地调用搜索子过程对顶点U进行深度优先搜索,将顶点U的颜色属性设置为灰色,查看顶点U的邻接列表是否为空,如果不为空,则从顶点U的邻接列表中取出另一个顶点V,查看顶点V的颜色属性是否为白色,如果是白色,则把顶点V的值赋给顶点U,重新进行深度优先搜索;如果U的邻接列。
23、表为空将顶点U的颜色属性设置为黑色,根据搜索结果判断,如果U是并联型顶点或线圈顶点,则将顶点U放置在队列Q中,并在U顶点的PNO属性中记录具体的排序序号,如果U是线圈顶点或并联型顶点并与线圈顶点直接相连则将U加入到队列Q中,结束对顶点U的深度优先搜索。依照上述过程,递归调用搜索的子过程,直到所有的顶点和路径都被搜索过。0040如图9所示,对该有向图GL完成整个深度优先搜索过程的结果如下QX0,P1,P2,P3,P4,Y1,Y2,而QP4,Y1,Y2。00413、按照Q队列中并联型顶点和线圈顶点的排列顺序,对队列中的每一个并联型顶点依照有向图GL的连接关系使用广度优先搜索,同时对其邻接的所有的串。
24、联型顶点进行深度优先搜索,生成有向图GL的整条串联型通路上的AND表达式和并联型顶点的OR表达式,同时生成并联型顶点的连接关系图GP。0042本发明定义并联型顶点不能和并联型顶点直接相连,并联型顶点只能和串联型顶点和线圈顶点相连,并且其射入边的另外一端只能是串联型顶点。线圈顶点射入边的另外一端可以是并联型或串联型顶点,而其射出边的另外一端只能是终止顶点。为了形成串联通路上的AND表达式,对有向图GL中的并联型顶点进行广度优先搜索的同时时,还需要对其相邻接的串联型顶点沿着串联型通路进行深度优先搜索,以获得整条串联型通路上的说明书CN102354144ACN102354153A5/9页8AND表达。
25、式,该表达式最终记录在串联通路的端点上,并在广度优先搜索时被收集到EOR的某一项中。EOR是一个数组的结构,数组中的每一项都表示一条串行路径上的AND表达式,最后将所有的AND项OR起来,形成所谓的“串联原子表达式”,它是并联型顶点的最小生成单位。0043如图11所示,由于广度优先搜索只针对并联型顶点,如果队列Q为空,则不进入广度搜索进程,如果Q队列不为空,则从Q队列中取出某一个顶点U,调用广度优先搜索子进程对顶点U进行处理。如果顶点U为线圈顶点则结束广度搜索的过程,从顶点U的邻接列表中取出一个邻接顶点V,对V的类型进行判断,过程如下0044判断V是否为空,如果邻接顶点V不为空,则将V的顶点属。
26、性P设置为U,则认为V的父顶点是U,对V的父顶点的U进行标记,并对V进行进一步的判断;如果V为空则结束。0045完成第后,如果V不为空,判断V是否为串联型顶点,如果是,则需要判断V的父顶点U的类型。当U是并联型顶点,则VEAND被赋值为VNAME,同时VP被赋值为U即对V的父顶点进行标记;当U是串联型顶点,则VEAND被赋值成UEND“AND”VNAME,同时VCOLOR设置成白色,对V进行遍历,VP被赋值为UP,U被替换成V,递归调用深度搜索的子过程对V行深度优先搜索。0046完成和后,如果V不是串联型顶点,则判断V是否为并联型顶点,如果是,查看V的父顶点U的类型,如果U是线圈顶点,则U加入。
27、到V的EOR列表中;如果U是串联型顶点且UCOLOR是白色,则UEAND两边加上括号,如何UCOLOR是非白色,则维持UEAND属性不变,然后将U加入到V的EOR列表中。0047完成前三步后,如果V不是并联型顶点,进一步判断V是否为线圈顶点,如果是,查看V的父顶点U的类型,如果U是并联型顶点,则U加入到V的EOR列表中,当U是串联型顶点,如果U是串联型顶点且UCOLOR是白色,则UEAND两边加上括号,如何UCOLOR是非白色,则维持UEAND属性不变。然后将U加入到V的EOR列表中。如果V不是线圈顶点,则表明访问出现错误结束对顶点V的遍历。0048如图9所示,本发明以有向图GL中的P3顶点为。
28、实施例进一步说明上述过程,搜索的过程是从右到左进行,P3有三个邻接顶点,P3所确定的OR表达式为X5ORX3ORX4,其中X5,X3,X4保存在该顶点的EOR列表中,即EORX5,X3,X4。梯形图中如果串联型顶点彼此相邻,会形成一条串联型通路,该通路上除了首尾顶点与并联型顶点相邻外,其余的彼此相邻的顶点都是串联型顶点。X8到X5的通路就是串联型通路,该通路上包含2个顶点,这两个顶点也是该串联型通路上端点,一端连接到P1,而另一端连接到P3。并联型顶点生成OR表达式的每一项应该是射入边所在串联型通路上的所有串联型顶点的AND表达式,每个串联型顶点的EAND属性记录着该顶点所在串联通路上当前的A。
29、ND表达式,该表达式的类型为字符串。X8EAND“X8”;X5EAND“X8ANDX5”。其中的“X8”和“X5”实际上是X8和X5顶点的NAME属性。如果在X8和X5之间还存在串联型顶点XI,XI1,XIN并且这些顶点都属于同一条串联型通路,则X5EAND“X8ANDXIANDXI1AND,ANDXINANDX5”。而XIEAND“X8ANDXI”;XI1EAND“X8ANDXIANDXI1”。0049如图12所示,完成对有向图GL中的所有顶点的搜索,为了使并联型点的连接关系更加清楚,生成完整梯形图的表达式,根据队列Q和队列Q生成并联型顶点的连接关系图说明书CN102354144ACN102。
30、354153A6/9页9GP。GP图记录着并联型顶点、线圈顶点之间的连接以及串联型顶点从属并联型顶点的关系,其连接关系记录在顶点的属性P中,并且属性P只能记录一个顶点。0050由广度优先搜索的性质可知,第一次被访问的顶点一定是最远的顶点,即它的跨度最大,因为其他顶点必定通过随后的搜索陆续到达,这时它们必定排在了最远顶点的后面。该顶点的距离指到达指定顶点所经过的边数,边数越小,距离越近,跨度越大,因为其他顶点需要经过额外的边才能到达。为了使串联型顶点不破坏上述性质,可以让串联型顶点在深度优先搜索的过程中传递并联型端点的P属性值,从而使串联型顶点不影响GP的生成。0051如图12所示,其中P3PP。
31、1,这是因为在对P1广度优先搜索时,首先访问的并联型顶点是P2和P3于是这两个顶点的P属性均为P1。当对P2广度优先搜索时可能再次访问P3,但由于P3的P属性已经被赋值,不能再修改了,所以P3的属性始终是P1。上述性质可以称之为并联型顶点的最大跨度性质,这一性质对于并联型顶点的化简与合并非常重要。最大跨度之内的所有并联型顶点可以合并成一项,该项称为并联型顶点的“最大合并项”,某一并联型顶点的最大跨度所对应的顶点称为“最大合并点”,P3的最大合并点为P1,而P2没有最大合并点,因为它包含在最大跨度之内。最大合并项包括串联型原子表达式以及由它们组成的OR表达式,还包括由上述结果组成的AND表达式。。
32、P3的最大合并项为“X8ANDX5ORX2ANDX3ORX4”,P2包含在P3最大跨度内,因此不用计算最大合并项,如下表1所示为完成本步骤,并联型顶点属性生成结果。0052表1图9中并联型顶点属性生成结果0053说明书CN102354144ACN102354153A7/9页10EOREOR中顶点P属性EOR中顶点EAND属性对应的并联原子表达式X0X0X0X0X0P1X1X0X1X1P2X2P1X2X2P3X5,X3,X4P1,P2,P2X8ANDX5,X3,X4X8ANDX5X3ORX4P4X6P3X6X6Y1P4P3同P4Y2X7P4X7X7说明书CN102354144ACN1023541。
33、53A8/9页110054如图13所示,经过上述步骤每一个并联型和线圈顶点都设定了EOR属性,EOR中的每一顶点的EAND属性都是潜在的OR运算项,但这不足以生成该顶点的OR表达式。当EOR中某些串联型顶点具有相同的P属性值时,可以确定这些顶点可以合并成一个简单OR表达式,该表达式称之为“并联原子表达式”。在此基础上还需要合成并联型顶点的最大合并项。此过程首先判断每一项的OR表达式的子式,该子式是指某一串联通路上的AND表达式,即是EOR数组中的某一项。是否到达了最大合并点,然后从顶点的EOR属性中取出一不为空的顶点V,然后判断VP是否与刚处理过的上一项的同名属性值一致。如果一致,则将已经生成。
34、的表达式与“ORVEAND”合并,然后根据表达式是否涉及多个项,决定是否为该生成表达式添加括号;如果不一致,则将当前顶点替换成VP,然后递归调用整个过程。接下来将递归调用的结果与“ANDVEAND”合并。最后还是要根据表达式是否涉及多个项,决定是否为生成的表达式添加括号。当上述过程完成之后,从顶点的EOR属性中再取出一项不为空的顶点,重复上述过程直到EOR属性中无顶点可取。0055如图12所示,P3的EORX5,X3,X4,X5对应一个并联原子表达式,X3和X4对应一个并联原子表达式,因为X3和X4的P属性相同,都是P2。通过比对EOR中的每一项可以很容易发现哪些顶点具有相同的P属性,然后将它。
35、们提取出来形成一并联原子表达式。由于EOR是顶点邻接列表,所以形成并联原子表达式的每一项实际上是由顶点中EAND属性所确定,P3各并联原子表达式分别为“X5EAND”;“X3EANDORX4EAND”,EAND属性的生成由以下条件确定串联型顶点的名称NAME属性或在串联型通路上有多个顶点时这些顶点名称的AND表达式再加上括号。如果X3NAME“X3”;X4NAME“X4”;X5NAME“X5”;X8NAME“X8”,则X5EAND“X8ANDX5”;X4EAND“X4”;X5EAND“X5”。X5顶点所代表的并联原子表达式为“X8ANDX5”,而X4与X5的并联原子表达式为“X3ORX4”。0。
36、0564、生成并联型顶点的最大合并项的最终表达式0057每当得出一个并联原子表达式后,还需查看其P属性是否到达了最大合并点,如果没有到达最大合并点,递归调用上述过程。递归调用的结果是AND关系,即并联原子表达式之间是AND关系,所以递归调用所形成的表达式之间必须用“AND”字符串串起来。递归过程直到到达最大合并点才结束;递归过程并不是EOR中每一项都需要进行,从P属性相同的顶点中选择一个进行递归即可,一般选择首次出现的那一项进行递归。EOR中其后的那些P属性相同的顶点相互之间与首次出现的那一个顶点之间彼此形成OR表达式,然后再与递归结果形成AND表达式。0058以图9为例,P3的最大合并项的生。
37、成过程是首先从P3EOR取出X5,由于X5P已经到达了最大合并点,所以由X5P所确定的OR项为“X8ANDX5”,它也是X5所对应的并联原子表达式。然后取出P3EOR的下一项X3,由于X3P没有到达最大合并点,所以需要递归调用P2的最大合并项的生成过程,即处理过程从P3变成了P2。由于P2EOR只有一项,并且该项已经到达了最大合并点,所以其递归结果为“X2”。之后X3接着处理,又由于X4与X3的P属性相同,其并联原子表达式为X3ORX4,于是可以得到X3P所确定的OR项为“X2ANDX3ORX4”。综合上述结果可以得出P3所确定的最大合并项为“X8ANDX5ORX2ANDX3ORX4”。005。
38、95、从队列Q出队一顶点,利用Q对GP进行广度优先搜索,计算出相对应并联型顶说明书CN102354144ACN102354153A9/9页12点的OR表达式,对每一项OR表达式中的子式进行验证,看其是否达到了最大合并点,直到所有的并联型顶点都生成最大合并项,最后将最大合并项构造成AND表达式形成最终结果。0060虽然有向图GL中的终止顶点只有一个,但每一个线圈顶点都是实际上逻辑输出的终点,这些终点都被记录到了Q队列中。虽然并联型顶点也可能被记录到Q中,但这些都是与线圈顶点直接相连的,其结果直接用于驱动线圈,所以也可以把这类顶点看成线圈顶点。最终结果的生成过程是从Q队列中顶点依次出队开始,依照G。
39、P图计算每个并联型顶点的最大合并项,并将这些项AND起来,形成最大合并项的AND表达式,这一过程直到搜索到起始顶点才结束,并形成最终的表达式。0061如图14所示,上述具体过程如下首先判断Q是否为空,如果不为空则从该队列中取出一顶点U。如果U是起始顶点则跳过,如果不是起始顶点则调用并联型顶点的最大合并项的最终表达式生成过程,以生成并联型顶点U的最大合并项。然后将UP赋值给V,再判断V是否是蓝色,如果是,即V是最大合并点,则生成LDVNAMEANDU的最大合并项原表达式的表达式;如果不是蓝色,则生成STVNAMEANDU的最大合并项原表达式的表达式,最后将VCOLOR赋值成蓝色,并将所生成的表达。
40、式串联起来,形成中间结果。上述过程不断重复,被串联起来的表达式越来越完整,直到Q队列中的所有顶点都被处理完。0062在上述生成表达式的过程中为了精简表达式,可以将已经得出最大合并项的顶点标记成蓝色,Q中其它顶点在生成表达式的过程中,可以直接利用已经得到的结果,而不必重新生成,当Q为空时表明表达式最终生成。0063下面以图8和图9中为实施例说明Y1顶点最终表达式的生成过程。为了便于说明用PMAXI表示I顶点的最大合并项,PAJ,I表示顶点J中以I顶点为P属性的并联原子表达式,用表示应用前面4步所描述的处理过程可推出的结果。0064PMAXY10065PMAXP40066PMAXP3ANDPAP4。
41、,P30067PMAXP3ANDX60068PMAXP1ANDPAP3,P1ORPAP2,P1ANDPAP3,P2ANDX60069PMAXP1ANDX8ANDX5ORX2ANDX3ORX4ANDX60070X1ANDX8ANDX5ORX2ANDX3ORX4ANDX600716、判断队列Q是否为空,如果不为空,继续重复上述5,直至Q为空。00727、对起始顶点进行处理,使其适合指令表的表达方式,将表达式除去不必要的括号以精简该表达式,然后为表达式添加必要的换行符号,使其与指令表的显示方式一致。0073本发明转换可以直接应用在PLC控制器上,直接完成将梯形图转换成PLC程序执行指令,其中,可以利。
42、用STVNAME指令将最大合并点的生成的中间结果保存到PLC存储单元中,形成辅助单元,利用LDVNAME指令将VNAME指定的寄存器的内容放到累加器中,利用PLC自身具有的AND和OR的运算功能,使PLC能够按照最终的指令表控制被控对象。0074上述各实施例仅用于说明本发明,其中实施方法的步骤的顺序是都是可以有所变化的,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。说明书CN102354144ACN102354153A1/7页13图1图2说明书附图CN102354144ACN102354153A2/7页14图3图4图5图6图7说明书附图CN102354144ACN102354153A3/7页15图8图9说明书附图CN102354144ACN102354153A4/7页16图10说明书附图CN102354144ACN102354153A5/7页17图11说明书附图CN102354144ACN102354153A6/7页18图12图13说明书附图CN102354144ACN102354153A7/7页19图14说明书附图CN102354144A。