一种判断梯形图程序的无“竞态”的方法

文档序号:6306318阅读:222来源:国知局
一种判断梯形图程序的无“竞态”的方法
【专利摘要】本发明涉及一种判断梯形图程序的无“竞态”的方法,将梯形图转化为包括多元组的关系图,如果梯形图的触点、线圈或者功能模块模拟而成的实结点不存在任何线路,使之沿任何一条线路都不能回到原点,则梯形图程序为无“竞态”。本发明所述的判断梯形图程序的无“竞态”的方法,是从梯形图程序结构的角度检测“竞态”,该方法可以简便,快速的判断出梯形图程序不存在“竞态”。当梯形图程序复杂时,使用传统的模型检测或定理证明,工作量是非常庞大的,并且容易出错,而本发明的工作量小,不易出错。
【专利说明】一种判断梯形图程序的无“竞态”的方法

【技术领域】
[0001]本发明涉及PLC梯形图程序的验证方法,更具体地说,涉及一种判断梯形图程序的无“竞态”的方法。

【背景技术】
[0002]可编程逻辑控制器(Programmable Logic Controller, PLC)广泛的应用于复杂的嵌入式控制应用程序,如制造工业、娱乐场所、电力,交通、化工等安全苛求系统等,对PLC程序的安全可靠性要求很高。目前,在PLC的编程语言中,梯形图(Ladder Diagram)占主导作用,是目前使用最多的一种PLC编程语言。
[0003]梯形图的“竞态”指的是在输入和功能模块的状态不变的情况下,输出发生变化。“竞态”是一种难以被检测的逻辑错误,其检测不仅会耗费大量资金,对于电力、交通等对程序正确性有极严格要求的系统,发生“竞态”将导致严重的后果。
[0004]目前普遍使用的“竞态”检测方法是模型检验和定理证明,模型检测的缺点是要遍历系统模型的状态空间,所以面临着“状态空间爆炸”的问题;定理证明可直接处理无限的状态空间,它使用类似于结构化的推导过程来证明具有无限状态的系统。但是,定理证明大多数是交互的,需要人的参与,所以不仅出错的概率大大的提高了,自动验证的可行性也降低了。


【发明内容】

[0005]本发明的目的在于克服现有技术的不足,提供一种以降低检测的复杂度为目的,从梯形图程序的结构出发,寻找一个正确的结论,可以不用复杂的检测快速判断程序无“竞态”的判断梯形图程序的无“竞态”的方法。
[0006]本发明的技术方案如下:
[0007]—种判断梯形图程序的无“竞态”的方法,将梯形图转化为包括多元组的关系图,如果梯形图的触点、线圈或者功能模块模拟而成的实结点不存在任何线路,使之沿任何一条线路都不能回到原点,则梯形图程序为无“竞态”。
[0008]作为优选,关系图D为一个四元组,包括非空有限集V(D)、V’ (D), A(D)和C,记为D = (V, V' , A, c);其中,
[0009]V = Iv1, V2…,vn}为有限非空实结点的集合,用来表示梯形图中的图符单元;
[0010]V’ = Iv’P V’2…,V’m}为有限非空虚结点的集合,用于连接实结点,表示逻辑关系“与”,FnF' = 0,FuFV0;
[0011](KxP) Ufx K),是实结点和虚结点组成的二元组的集合,表示从实结点到虚结点或虚结点到实结点的有向弧集合,其中,(vx,V’ y)表示实结点Vx到虚结点V’ y的有向弧,(V’ y, Vz)表示虚结点Vny到实结点Vz的有向弧,则结点VX、V’ y、Vz表示实结点Vz的状态变化依赖于Vx ;
[0012]c:A — Z+表示关系图中每一条弧上的权值,其中,Z+表示正整数集合,弧上权值大小为对应梯形图的梯级。
[0013]作为优选,如果一个实结点只有输入有向弧,没有输出有向弧,称该实结点为根节点;如果一个实结点,存在一条线路,使之沿着这条线路能回到原点,则线路表示为一个关系图的环。
[0014]作为优选,关系图中每一条弧上的权值为I表示第一梯级,权值为2表示第二梯级,以此类推。
[0015]作为优选,将梯形图转化为关系图的步骤如下:
[0016]步骤1、将梯形图程序的触点、线圈、功能模块模拟为实结点;
[0017]步骤2、任选梯形图程序的一个线圈,假设该线圈为Cx,对应的实结点为Vx ;
[0018]步骤3、确定Cx的割集的个数mx,创建mx个虚结点;
[0019]步骤4、遍历一个割集内的元素,连接元素对应实结点到该割集对应的虚结点的有向弧;连接虚结点到Vx的有向弧;为从实结点到实结点的有向弧赋予权值;重复上述步骤,直到遍历完所有的割集;
[0020]步骤5、取Cx梯级路径上的一个触点,判断梯形图程序是否存在以该触点为输出线圈的路径,如果有,重复步骤3、步骤4 ;如果没有,取另一个触点进行判断,直到遍历完所有触点;
[0021]步骤6、如果还存在其他没有遍历的线圈,重复步骤2、步骤3、步骤4、步骤5,直到遍历完所有线圈;
[0022]步骤7、取梯形图程序的一个功能模块,假设对应的实结点为Vy,确定模块割集的数目my,创建my个虚结点;遍历一个模块割集内的元素,连接元素对应的实结点到该模块割集对应的虚结点的有向弧;连接虚结点到Vy的有向弧;为弧赋予权值;重复上述步骤,知道遍历完所有的模块割集。
[0023]作为优选,所述的路径,为在梯形图中,由触点、功能模块以及连接他们之间的导线组成的线路;
[0024]所述的梯级路径,为使能量流从左母线到线圈的路径;
[0025]所述的割集,是由梯级路径中的触点、功能模块组成的集合,并且如果删除割集内的任意元素,则梯级路径断开;
[0026]所述的模块割集,是由控制功能模块所有端口的触点组成的集合,并且如果删除模块割集内的任意元素,则功能模块无法正常工作。
[0027]本发明的有益效果如下:
[0028]本发明的思路是通过梯形图程序的结构检测“竞态”,由于梯形图程序复杂,难以观察判断,所以本发明提出了关系图的概念。用关系图清楚地描述梯形图的逻辑关系。据此,本发明提出了一种梯形图程序的无“竞态”的充分条件,应用于大型的梯形图程序验证,本发明可以简便、快捷的判断出梯形图不存在“竞态”或者可能存在“竞态”的危险,减少了程序验证的工作量。
[0029]本发明所述的判断梯形图程序的无“竞态”的方法,是从梯形图程序结构的角度检测“竞态”,该方法可以简便,快速的判断出梯形图程序不存在“竞态”。当梯形图程序复杂时,使用传统的模型检测或定理证明,工作量是非常庞大的,并且容易出错,而本发明的工作量小,不易出错。

【专利附图】

【附图说明】
[0030]图1是梯形图程序转化为关系图;
[0031]图2是梯形图程序对应的时序图。

【具体实施方式】
[0032]以下结合附图及实施例对本发明进行进一步的详细说明。
[0033]本发明所验证的梯形图程序是依据IEC61131-3标准编写的。
[0034]第一部分:关系图的定义。
[0035]从形式化的角度定义,一个关系图D由非空有限集V(D)、V’ (D) ,A(D)和c构成,可以被定义为一个四元组,记为D= (V,V’,A,C),其中,
[0036]V = {Vl, V2-, vj表示有限非空实结点的集合,用来表示梯形图中的图符单元,如触点、线圈、功能模块等;
[0037]V’ = Iv’i,V’2…,V’m}表示有限非空虚结点的集合,起到连接实结点的桥梁作用,没有具体的意义,表示逻辑关系“与”。其中,FnF’ = 0,FuFV0;
[0038]是实结点和虚结点组成的二元组的集合,表示从实结点到虚结点或虚结点到实结点的有向弧集合,其中(vx,V’ y)表示实结点Vx到虚结点V’ y的有向弧;(V’ y, Vz)表示虚结点Vny到实结点Vz的有向弧;所以结点VX、V’ y、Vz表示为实结点Vz的状态变化依赖于Vx ;
[0039]c:A —Z+表示关系图中每一条弧上的权值,其中Z+表示正整数集合。弧上权值大小为对应梯形图的梯级。比如权值为“I”表示第一个梯级,为“2”表示第二个梯级,以此类推。
[0040]如果一个实结点只有输入有向弧,没有输出有向弧,称该实结点为根节点;如果一个实结点,存在一条线路,使之沿着这条线路能回到原点,称线路是一个关系图的环。
[0041]第二部分:梯形图到关系图转化方法。
[0042]为了阐述梯形图到关系图的转化方法,我们需要定义如下概念:
[0043]路径:在梯形图中,路径是指由触点、功能模块以及连接他们之间的导线组成的线路。
[0044]梯级路径:可使能量流从左母线到线圈(右母线)的路径。
[0045]割集:割集是由梯级路径中的触点、功能模块组成的集合,并且删除割集内的任意元素,都会使得梯级路径断开。
[0046]模块割集:模块割集是由控制功能模块所有端口的触点组成的集合,并且删除模块割集内的任意元素,都会使得功能模块不能正常工作。
[0047]具体转化步骤:
[0048]步骤1、将梯形图程序的触点、线圈、功能模块模拟为实结点。
[0049]步骤2、任选梯形图程序的一个线圈,假设该线圈为Cx,对应的实结点为Vx。
[0050]步骤3、确定Cx的割集的个数mx,创建mx个虚结点。
[0051]步骤4、遍历一个割集内的元素,连接元素对应实结点到该割集对应的虚结点的有向弧;连接虚结点到Vx的有向弧;为从实结点到实结点的有向弧赋予权值。重复上述步骤,直到遍历完所有的割集。
[0052]步骤5、取Cx梯级路径上的一个触点,判断梯形图程序是否存在以该触点为输出线圈的路径,如果有,重复步骤3、步骤4 ;如果没有,取另一个触点进行判断,直到遍历完所有触点。
[0053]步骤6、如果还存在其他没有遍历的线圈,重复步骤2、步骤3、步骤4、步骤5,直到遍历完所有线圈。
[0054]步骤7、取梯形图程序的一个功能模块,假设对应的实结点为Vy。确定模块割集的数目my,仓Il建my个虚结点。遍历一个模块割集内的元素,连接元素对应的实结点到该模块割集对应的虚结点的有向弧;连接虚结点到Vy的有向弧;为弧赋予权值。重复上述步骤,知道遍历完所有的模块割集。
[0055]第三部分:根据关系图判断“竞态”不存在的方法。
[0056]对于无环的关系图,任意非根结点Vm都可以找到控制其状态的实结点\,同样Vn如果不为根结点,同样可以找到控制其状态的实结点,以此类推,非根结点Vm最后可以看成是由一个根结点控制其状态的。根结点的状态在PLC的扫描周期内是不变的,所以Vn不变,如果Vn对应梯形图的输出线圈,说明输出线圈在程序执行的过程中状态是不变。
[0057]根据上面的分析可以得出判断方法:如果关系图不存在环,对应的梯形图程序就一定不存在“竞态”,此结论就是梯形图程序的无“竞态”的充分条件。
[0058]实施例
[0059]如图1所示,根据本发明所述的方法转化为关系图:
[0060]首先将梯形图的触点、线圈、功能模块模拟为实结点,从图1中的梯形图程序可得到实结点的集合「=,%2,%3,v%。,\u,\λ。};
[0061]取线圈Qai作为初始结点,其对应的实结点力匕。遍历线圈Qai可以得到Qai的割集为^.^^、^。.^^,所以创建两个虚结点^,^;
[0062]遍历割集{M0.!,M0.J内的元素,连接Μαι,Μα2对应实结点到虚结点Λ的有向弧;连接V’!到^工的有向弧;根据所在的梯级,给弧赋上权值“4”。同理遍历割集{Μο.2,Μ0.3}内的元素,连接Μα2,Μα3对应实结点νι,ν%3到虚结点ν’2的有向弧;连接V、到
的有向弧,并且给弧赋上权值“4”。
[0063]通过遍历线圈Qai梯级路径上的触点可知,不存在以梯级路径上的触点为输出线圈的路径,所以取另一个线圈Mc^进行遍历。同上步骤,可知Μ。。的割集只有一个{Μαι},所以创建一个虚结点V’ 3 ;连接U SI」V’ 3的有向弧,连接V’ 3到1的有向弧;赋予弧上的权值为“5”。同上,遍历线圈Qatl可知割集为{01},创建一个虚结点/4;连接\到/4的有向弧?,连接V’ 4到\。的有向弧;弧上的权值赋予值为“2”。
[0064]由于没有可以遍历的线圈,并且梯形图存在功能模块,所以遍历功能模块,确定其模块割集为{Ια0,Mc^QacJ,所以创建一个虚结点V’5 ;连接模块割集内的元素对应的实结点到虚结点的有向弧,即连接、%。、\.ο到V’ 5的有向弧;连接V’ 5到\的有向弧;为弧赋予权值为“I”。
[0065]根据上面的步骤可以得到图1的转化结果。
[0066]如图2所示,虽然梯形图程序对应的关系图存在环,但是功能模块产生的输出状态变化不是“竞态”,根据本发明总结的判断方法可知该梯形图程序一定不存在“竞态”的危险,从时序图也可以看出梯形图程序不发生“竞态”。
[0067]上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技术实质,对上述实施例进行变化、变型等都将落在本发明的权利要求的范围内。
【权利要求】
1.一种判断梯形图程序的无“竞态”的方法,其特征在于,将梯形图转化为包括多元组的关系图,如果梯形图的触点、线圈或者功能模块模拟而成的实结点不存在任何线路,使之沿任何一条线路都不能回到原点,则梯形图程序为无“竞态”。
2.根据权利要求1所述的判断梯形图程序的无“竞态”的方法,其特征在于,关系图D为一个四元组,包括非空有限集V⑶、V’ (D)、A (D)和C,记为D= (V, V', A, c);其中, V= Iv1, V2-, vn}为有限非空实结点的集合,用来表示梯形图中的图符单元; V’ = Iv11, V12-, v'J为有限非空虚结点的集合,用于连接实结点,表示逻辑关系“与”,VnV' = 0, VuV'^0;u(l..'X V),是实结点和虚结点组成的二元组的集合,表示从实结点到虚结点或虚结点到实结点的有向弧集合,其中,(vx,V’ y)表示实结点Vx到虚结点V’ y的有向弧,(V’ y, Vz)表示虚结点Vny到实结点Vz的有向弧,则结点Vx、V’ y、Vz表示实结点Vz的状态变化依赖于Vx ; c:A — Z+表示关系图中每一条弧上的权值,其中,Z+表示正整数集合,弧上权值大小为对应梯形图的梯级。
3.根据权利要求2所述的判断梯形图程序的无“竞态”的方法,其特征在于,如果一个实结点只有输入有向弧,没有输出有向弧,称该实结点为根节点;如果一个实结点,存在一条线路,使之沿着这条线路能回到原点,则线路表示为一个关系图的环。
4.根据权利要求2所述的判断梯形图程序的无“竞态”的方法,其特征在于,关系图中每一条弧上的权值为I表示第一梯级,权值为2表示第二梯级,以此类推。
5.根据权利要求2所述的判断梯形图程序的无“竞态”的方法,其特征在于,将梯形图转化为关系图的步骤如下: 步骤1、将梯形图程序的触点、线圈、功能模块模拟为实结点; 步骤2、任选梯形图程序的一个线圈,假设该线圈为Cx,对应的实结点为Vx ; 步骤3、确定Cx的割集的个数mx,创建mx个虚结点; 步骤4、遍历一个割集内的元素,连接元素对应实结点到该割集对应的虚结点的有向弧;连接虚结点到Vx的有向弧;为从实结点到实结点的有向弧赋予权值;重复上述步骤,直到遍历完所有的iiij集; 步骤5、取Cx梯级路径上的一个触点,判断梯形图程序是否存在以该触点为输出线圈的路径,如果有,重复步骤3、步骤4 ;如果没有,取另一个触点进行判断,直到遍历完所有触占.步骤6、如果还存在其他没有遍历的线圈,重复步骤2、步骤3、步骤4、步骤5,直到遍历完所有线圈; 步骤7、取梯形图程序的一个功能模块,假设对应的实结点为Vy,确定模块割集的数目my,创建my个虚结点;遍历一个模块割集内的元素,连接元素对应的实结点到该模块割集对应的虚结点的有向弧;连接虚结点到Vy的有向弧;为弧赋予权值;重复上述步骤,知道遍历完所有的模块割集。
6.根据权利要求5所述的判断梯形图程序的无“竞态”的方法,其特征在于, 所述的路径,为在梯形图中,由触点、功能模块以及连接他们之间的导线组成的线路; 所述的梯级路径,为使能量流从左母线到线圈的路径; 所述的割集,是由梯级路径中的触点、功能模块组成的集合,并且如果删除割集内的任意元素,则梯级路径断开; 所述的模块割集,是由控制功能模块所有端口的触点组成的集合,并且如果删除模块割集内的任意元素,则功能模块无法正常工作。
【文档编号】G05B19/05GK104133412SQ201410323117
【公开日】2014年11月5日 申请日期:2014年7月8日 优先权日:2014年7月8日
【发明者】罗继亮, 黄颖坤, 陈珑, 邵辉, 晏来成 申请人:华侨大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1