CN102411330B - 一种将可编程逻辑控制器程序转换为普通Petri网的方法 - Google Patents

一种将可编程逻辑控制器程序转换为普通Petri网的方法 Download PDF

Info

Publication number
CN102411330B
CN102411330B CN201110248322.4A CN201110248322A CN102411330B CN 102411330 B CN102411330 B CN 102411330B CN 201110248322 A CN201110248322 A CN 201110248322A CN 102411330 B CN102411330 B CN 102411330B
Authority
CN
China
Prior art keywords
node
storehouse
plc
ion
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110248322.4A
Other languages
English (en)
Other versions
CN102411330A (zh
Inventor
罗继亮
陈雪琨
齐鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huaqiao University
Original Assignee
Huaqiao University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huaqiao University filed Critical Huaqiao University
Priority to CN201110248322.4A priority Critical patent/CN102411330B/zh
Publication of CN102411330A publication Critical patent/CN102411330A/zh
Application granted granted Critical
Publication of CN102411330B publication Critical patent/CN102411330B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明一种将可编程逻辑控制器程序转换为普通Petri网的方法,针对PLC梯形图程序,将梯形图触点和线圈模拟为结点,将导线模拟为有向边,建立梯形图程序的PLC有向图模型,定义该有向图中的路径,根据路径关系,将PLC有向图转换为Petri网;本发明实现PLC梯形图程序到普通Petri网模型的自动转换,由于普通Petri网激发条件简洁,逻辑思维方式简单,更直观易懂,而且所得Petri网模型能够完全模拟PLC控制系统的动态行为,更便于对PLC程序分析、纠错,使PLC程序逻辑更为严谨。

Description

一种将可编程逻辑控制器程序转换为普通Petri网的方法
技术领域
本发明涉及可编程逻辑控制器(PLC)程序的数学建模方法,是PLC程序仿真和验证的有力工具,尤其是一种将可编程逻辑控制器程序转换为普通Petri网的方法。
技术背景
可编程逻辑控制器(PLC)是工业控制系统中典型的控制器硬件,广泛地应用于钢铁、石油、化工、电力和交通系统的监控。而PLC程序的开发面临高复杂性难题:在现场总线技术的支持下,工业控制系统规模和结构复杂性增长迅速,比如地铁交通控制系统和核电控制系统等等,而系统的状态个数随传感器和执行机构的数目呈指数级增长,仅由5辆自动导航车辆组成的物流系统的状态就达数百万之巨,因此PLC程序设计面临与生俱来的高计算复杂性。
而高计算复杂性带来两大工程问题:(1)程序设计和调试工作量繁琐和巨大,程序开发周期和开发成本难于控制;(2)传统程序调试无法验证每个状态(状态数指数级增长),无法保证程序的正确性和可靠性,而程序出错可能造成严重事故,比如列车相撞、欧洲亚利安娜5号火箭爆炸和美国Threc-5放射性医疗事故等。
为了克服上述工程问题,需要开发PLC程序仿真和软件验证方法,利用计算机来完成程序仿真和验证工作,降低程序开发成本,保证程序的正确性和可靠性。因此,需要将PLC程序模拟为计算机数学模型,即将PLC程序指令转换为一种计算机数学模型—Petri网,以Petri网为工具对PLC程序进行仿真和验证。(Petri网是1960年代德国科学家卡尔·A·佩特里发明的,适合于模拟异步的、并发的动态系统,既有严格的数学表述方式,又有直观的图形表达方式。)
目前已经报道的方法是给出了将单个指令或简单的梯形图程序转换为扩展Petri网的方法,无法自动转换普通的梯形图程序,在实际模拟转换梯形图程序时需要列出大量的逻辑关系式,增加了工作量,而且扩展Petri网的行为分析比较复杂,反而加大了出现错误的可能性;还有一种方法是用扩展Petri网的结构元素去描述PLC梯形图的基本逻辑指令,进而完成PLC梯形图语言的转换。这种方法的关键是把变迁定义为一个特定事件,但是从逻辑层面上分析,整个网结构的运行并没有比PLC梯形图程序更简单,而且Petri网结构在模拟仿真时也不能自行运转。
发明内容
本发明的目的在于提供一种能够实现可编程逻辑控制器程序自动转换为普通Petri网的方法,以供计算机来完成PLC程序仿真和验证工作,降低程序开发成本,保证程序的正确性和可靠性。
本发明一种将可编程逻辑控制器程序转换为普通Petri网的方法,具体包括以下步骤:
步骤1、将PLC梯形图中左母线、右母线和包括触点、开关、辅助继电器或线圈的开关量模拟为结点,并且左、右母线和开关量与结点一一对应,得到结点集合V={vl,vr,v1,v2,...,vm},其中vl表示左母线,vr表示右母线,m表示开关量的个数;将左母线、右母线和开关量之间的导线模拟为有向边,得到有向边集合E={e1,e2,...,en},其中任意e=(vx,vy),vx对应靠近左母线的母线或开关,vy对应靠近右母线的母线或开关,n是有向边的个数,从而获得PLC梯形图的有向图模型G=(V,E);
步骤2、计算Petri网的库所集
Figure GDA00003571513000031
在PLC有向图中,将除母线对应的结点之外的全部结点v1,v2,...,vm模拟为2m个库所,其中每个结点vi(1≤i≤m)对应真库所pion和假库所pioff,所得库所组成Petri网的库所集
Figure GDA00003571513000032
步骤3、设定Petri网的初始标识m0
Figure GDA00003571513000033
显然,m0(pion)+m0(pioff)=1;
步骤4、在PLC有向图中,定义与右母线结点相邻的赋值结点集合,赋值结点集合Vo={v∈V/(v,vr)∈E},定义与左母线相邻的起始结点集合,起始结点集合Vb={v∈V/(vl,v)∈E};
步骤5、在PLC有向图中,对于任意一个赋值结点vox,令Π(vox)={π12,...,πk}表示从起始结点到达vox的全部基本有向路径集合,其中Π(vox)中的任意一条路径满足下列条件:
(1)它是一个结点序列,其中任意两个相邻结点之间存在一个从前者指向后者的有向边;
(2)其中的每个结点仅能出现一次;
(3)它的第一个结点是一个起始结点,最后一个结点是vox
步骤6、对于每一个赋值结点vox∈Vo,进行下列运算来获得Petri网的变迁集合T和有向弧集合F:
(1)令pon和poff分别对应vox的真库所和假库所;
(2)将Π(vox)中k条路径的第i条路径πi模拟为一个变迁tion,并且完成下列操作:设路径中非末尾结点的个数为v,那么在结点j(1≤j≤v)对应状态的库所pij和ti之间添加一个双向弧;添加一个从tion指向pon的有向弧;添加一个从poff指向tion的有向弧;即 T = T ∪ 1 ≤ i ≤ k { t ion } , F = F ∪ 1 ≤ i ≤ k 1 ≤ j ≤ v { ( P off , t ion ) , ( t ion , P on ) , ( P ij , t ion ) , ( t ion , P ij ) } ;
步骤7、定义Π(vox)的割集,它满足下列条件:
(1)它是一个结点集合;
(2)每个结点都包含在Π(vox)中的某路径内;
(3)每个结点都不是vox
(4)如果删除该集合中的结点,那么将不存在从左母线结点vl到达vox的路径,如果Π(vox)的一个割集不包含任何其它割集,则称其为最小割集,计算Π(vox)的最小割集的集合,令其为Ψ(vox);
步骤8、、将Ψ(vox)中c个割集的第m个割集ψm模拟为一个变迁tmoff,并完成下列操作:设路径中非末尾结点的个数为v′,那么在结点n(1≤n≤v′)对应状态的库所pmn和tmoff之间添加一个双向弧;添加一个从pon指向tmoff的有向弧;添加一个从tmoff指向poff的有向弧,即
Figure GDA00003571513000042
F = F ∪ 1 ≤ m ≤ c 1 ≤ n ≤ v ′ { ( P off , t moff ) , ( t moff , P on ) , ( P mn , t moff ) , ( t moff , P mn ) } ;
步骤9、对于每个输入开关量对应的结点vi(1≤i≤m′,
Figure GDA00003571513000044
表示集合vo内元素个数),添加连接迁tx和ty,且tx的输入和输出分别为该结点的真库所和假库所,而ty的输入和输出分别为该结点的假库所和真库所,即 T = T ∪ 1 ≤ i ≤ m ′ { t ix , t iy } , F = F ∪ 1 ≤ i ≤ m ′ { ( P ioff , t iy ) , ( t iy , P ion ) , ( P ion , t ix ) , ( t ix , P ioff ) } ;
步骤10、输出一个普通Petri网N:=(P,T,F)和初始标识m0
采用上述技术方案后,本发明能实现PLC梯形图程序到普通Petri网模型的自动转换,由于普通Petri网激发条件简洁,逻辑思维方式简单,更直观易懂,而且所得Petri网模型能够完全模拟PLC控制系统的动态行为,以完成PLC程序仿真和验证工作,便于对PLC程序进行分析、纠错,能使PLC程序逻辑更为严谨,降低了PLC程序的开发成本,能保证PLC程序的正确性和可靠性。
附图说明
图1为本发明的工作流程示意图;
图2为本发明实施例一之风扇启动/停止控制电路图;
图3为本发明实施例一之用PLC实现控制功能的电路图;
图4为本发明实施例一之PLC梯形图程序示意图;
图5为本发明实施例一之PLC梯形图的有向图模型示意图;
图6为本发明实施例一之图4PLC梯形图程序对应的Petri网结构图;
图7为本发明实施例二之电机正反转控制电路图;
图8为本发明实施例二之用PLC实现控制功能的电路图;
图9为本发明实施例二之PLC梯形图程序示意图;
图10为本发明实施例二之PLC梯形图的有向图模型示意图;
图11为本发明实施例二之图9PLC梯形图程序对应的Petri网结构图。
以下结合附图和具体实施例对本发明作进一步详述。
具体实施方式
如图1所示,本发明一种将可编程逻辑控制器程序转换为普通Petri网的方法,具体包括以下步骤:
步骤1、将PLC梯形图中左母线、右母线和包括触点、开关、辅助继电器和线圈的开关量模拟为结点,并且左、右母线和开关量与结点一一对应,得到结点集合V={vl,vr,v1,v2,...,vm},其中vl表示左母线,vr表示右母线,m表示开关量的个数;将左母线、右母线和开关量之间的导线模拟为有向边,得到有向边集合E={e1,e2,...,en},其中任意e=(vx,vy),vx对应靠近左母线的母线或开关,vy对应靠近右母线的母线或开关,n是有向边的个数,从而获得PLC梯形图的有向图模型G=(V,E);
步骤2、计算Petri网的库所集
Figure GDA00003571513000061
在PLC有向图中,将除母线对应的结点之外的全部结点v1,v2,...,vm模拟为2m个库所,其中每个结点vi(1≤i≤m)对应两个库所pion和pioff,它们分别称为vi对应的真库所和假库所,所得库所组成Petri网的库所集
Figure GDA00003571513000062
步骤3、设定Petri网的初始标识m0
Figure GDA00003571513000063
显然,m0(pion)+m0(pioff)=1;
步骤4、在PLC有向图中,定义与右母线结点相邻的赋值结点集合,赋值结点集合Vo={v∈V/(v,vr)∈E},定义与左母线相邻的起始结点集合,起始结点集合Vb={v∈V/(vl,v)∈E};
步骤5、在PLC有向图中,对于任意一个赋值结点vox,令Π(vox)={π12,...,πk}表示从起始结点到达vox的全部基本有向路径集合,其中Π(vox)中的任意一条路径满足下列条件:
(1)它是一个结点序列,其中任意两个相邻结点之间存在一个从前者指向后者的有向边;
(2)其中的每个结点仅能出现一次;
(3)它的第一个结点是一个起始结点,最后一个结点是vox
步骤6、对于每一个赋值结点vox∈Vo,进行下列运算来获得Petri网的变迁集合T和有向弧集合F:
(1)令pon和poff分别对应vox的真库所和假库所;
(2)将Π(vox)中k条路径的第i条路径πi模拟为一个变迁tion,并且完成下列操作:设路径中非末尾结点的个数为v,那么在结点j(1≤j≤v)对应状态的库所pij和ti之间添加一个双向弧;添加一个从tion指向pon的有向弧;添加一个从poff指向tion的有向弧;即 T = T ∪ 1 ≤ i ≤ k { t ion } , F = F ∪ 1 ≤ i ≤ k 1 ≤ j ≤ v { ( P off , t ion ) , ( t ion , P on ) , ( P ij , t ion ) , ( t ion , P ij ) } ;
步骤7、定义Π(vox)的割集,它满足下列条件:
(1)它是一个结点集合;
(2)每个结点都包含在Π(vox)中的某路径内;
(3)每个结点都不是vox
(4)如果删除该集合中的结点,那么将不存在从左母线结点vl到达vox的路径,如果Π(vox)的一个割集不包含任何其它割集,则称其为最小割集,计算Π(vox)的最小割集的集合,令其为Ψ(vox);
步骤8、将Ψ(vox)中c个割集的第m个割集ψm模拟为一个变迁tmoff,并完成下列操作:设路径中非末尾结点的个数为v′,那么在结点n(1≤n≤v′)对应状态的库所pmn和tmoff之间添加一个双向弧;添加一个从pon指向tmoff的有向弧;添加一个从tmoff指向poff的有向弧,即
Figure GDA00003571513000081
F = F ∪ 1 ≤ m ≤ c 1 ≤ n ≤ v ′ { ( P off , t moff ) , ( t moff , P on ) , ( P mn , t moff ) , ( t moff , P mn ) } ;
步骤9、对于每个输入开关量对应的结点vi(1≤i≤m′,
Figure GDA00003571513000083
表示集合vo内元素个数),添加连接迁tix和tiy,且tix的输入和输出分别为该结点的真库所和假库所,而tiy的输入和输出分别为该结点的假库所和真库所,即 T = T ∪ 1 ≤ i ≤ m ′ { t ix , t iy } , F = F ∪ 1 ≤ i ≤ m ′ { ( P ioff , t iy ) , ( t iy , P ion ) , ( P ion , t ix ) , ( t ix , P ioff ) } ;
步骤10、输出一个普通Petri网N:=(P,T,F)和初始标识m0
以实施例一“控制风扇启动/停止的自锁电路”来详述本发明。
如图2所示,PB1为启动按钮,PB2为停止按钮,KM为继电器线圈,用于表示风扇的工作状态;图3是用PLC控制的外部接线电路图,PLC的输入端I0.0接PB1、I0.1接PB2,输出端Q0.0接继电器线圈KM,从图4的PLC梯形图程序可知,按下启动按钮PB1,I0.0接通,Q0.0通电,电扇运行,自锁电路可以使电扇保持运转而不用一直按着启动按钮,按下停止按钮PB2锁定输出Q0.0就被断电,电扇停止运行。
步骤1、根据图4所示PLC梯形图程序,转换有向图模型G=(V,E),如图5所示,结点集合V={vl,vr,v1,v2,v3},有向边集合E={e1,e2,e3,e4,e5,e6},其中,e1=(vl,v1),e2=(v1,v2),e3=(v2,v3),e4=(vl,v3),e5=(v3,v2),e6=(v3,vr);
步骤2、在图5的PLC有向图中,将除左右母线对应的结点之外的全部结点v1,v2,v3模拟为6个库所,其中每个结点vi(1≤i≤3)对应两个库所pion和pioff,它们分别称为vi对应的真库所和假库所,那么所得库所组成Petri网的库所集 P = ∪ 1 ≤ i ≤ 3 { p ion , p ioff } ;
步骤3、设定Petri网的初始标识:
m0(p1on)=0,m0(p1off)=1,m0(p2on)=1,m0(p2off)=0,m0(p3on)=0,m0(p3off)=1;
步骤4、在图5的PLC有向图中,定义起始结点Vb={v1,v3},赋值结点Vo={v3};
步骤5、在图5的PLC有向图中,对于赋值结点v3的基本有向路径集合Π(v3)={π12},其中,π1={v1,v2,v3},π2={v3,v2};
步骤6、对于赋值结点v3,添加Petri网的变迁和有向弧:
(1)p3on和p3off分别对应v3的真库所和假库所;
(2)将基本有向路径π1模拟为变迁t1,即T=T∪{t1},在t1和v1、v2的真库所之间添加双向弧,即F=F∪{(p1on,t1),(t1,p1on),(p2on,t1),(t1,p2on)},再添加赋值结点的真假库所与t1之间的有向弧,即F=F∪{(p3off,t1),(t1,p3on)};将基本有向路径π2模拟为变迁t2,即T=T∪{t2},在t2和v2的真库所之间添加双向弧,即F=F∪{(p2on,t2),(t2,p2on)},再添加赋值结点的真假库所与t2之间的有向弧,即F=F∪{(p3off,t2),(t2,p3on)};
步骤7、在图5的PLC有向图中,定义赋值结点v3的割集ψ1={v2};
步骤8、将割集ψ1模拟为变迁t3,即T=T∪{t3},在t3和v2的假库所之间添加双向弧F=F∪{(p2off,t3),(t3,p2off)},再添加赋值结点的真假库所与t3之间的有向弧F=F∪{(p3on,t3),(t3,p3off)};
步骤9、对于输入开关量v1、v2对应的结点添加连接变迁,对于v1添加连接变迁t4和t5,且·t4={p1off},t4 ·={p1on},·t5={p1on},t5 ·={p1off},即F=F∪{(p1off,t4),(t4,p1on),(p1on,t5),(t5,p1off)}对于v2添加连接变迁t6和t7,且·t6={p2off},t6 ·={p2on},·t7={p2on},t7 ·={p2off},即F=F∪{(p2off,t6),(t6,p2on),(p2on,t7),(t7,p2off)},完成转换;
步骤10、输出一个普通Petri网N:=(P,T,F)和初始标识m0(见图6)。
以实施例二“电机正反转电路”来详述本发明。
如图7所示,SB1、SB2为手动开关,KM1、KM2为继电器线圈,分别表示电机正反转工作状态。图8是用PLC控制的外部接线电路图,一个PLC芯片的输入端I0.0接SB1,输出端Q0.0接继电器线圈KM1,另一个PLC芯片的输入端I0.1接SB2,输出端Q0.1接继电器线圈KM2。从图9的PLC梯形图程序可知,该程序说明了一种互锁程序输出的简单方法。当按下手动开关SB1,I0.0触点闭合,继电器KM1通电,电机正转;当按下手动开关SB2,I0.1触点闭合,继电器KM2通电,电机正转。当正转(反转)时,按下反转(正转)按钮,不能驱动电机反转(正转)。
步骤1、根据图9所示PLC梯形图程序,转换有向图模型G=(V,E),结点集合V={vl,vr,v1,v2,v3,v4},有向边集合E={e1,e2,e3,e4,e5,e6,e7,e8},其中,e1=(vl,v1),e3=(v4,v3),e4=(v3,vr),e5=(vl,v2),e6=(v2,v3),e7=(v3,v4),e8=(v4,vr),见图10;
步骤2、在图10的PLC有向图中,将除母线对应的结点之外的全部结点v1,v2,v3,v4模拟为8个库所,其中每个结点vi(1≤i≤4)对应两个库所pion和pioff,它们分别称为vi对应的真库所和假库所,那么所得库所组成Petri网的库所集 P = ∪ 1 ≤ i ≤ 3 { p ion , p ioff } ;
步骤3、设定Petri网的初始标识:
m0(p1on)=0,m0(p1off)=1,m0(p2on)=0,m0(p2off)=1,
m0(p2off)=1,m0(p3on)=0,m0(p3off)=1,m0(p4on)=0,m0(p4off)=1;
步骤4、在图10的PLC有向图中,定义起始结点Vb={v1,v2},赋值结点Vo={v3,v4};
步骤5、在图10的PLC有向图中,对于赋值结点v3的基本有向路径集合Π(v3)={π1},其中,π1={v1,v4,v3};对于赋值结点v4的基本有向路径集合Π(v4)={π2},其中,π2={v2,v3,v4};
步骤6.、对于赋值结点v3、v4添加Petri网的变迁和有向弧:
(1)p3on和p3off分别对应v3的真库所和假库所,p4on和p4off分别对应v4的真库所和假库所;
(2)将基本有向路径π1模拟为变迁t1,即T=T∪{t1},分别在t1和v1的真库所、t1和v4的假库所之间添加双向弧,即F=F∪{(p1on,t1),(t1,p1on),(p4off,t1),(t1,p4off)}再添加赋值结点v3的真假库所与t1之间的有向弧,F=F∪{(p3off,t1),(t1,p3on)};将基本有向路径π2模拟为变迁t2,即T=T∪{t2}分别在t2和v2的真库所、t2和v3的假库所之间添加双向弧F=F∪{(p2on,t2),(t2,p2on),(p3off,t2),(t2,p3off)},再添加赋值结点v4的真假库所与t2之间的有向弧F=F∪{(p4off,t2),(t2,p4on)},见图11;
步骤7、在图10的PLC有向图中,定义赋值结点v3的割集ψ1={v1},ψ2={v4};赋值结点v4的割集ψ3={v2},ψ4={v3}。
步骤8、将割集ψ1模拟为变迁t3,即T=T∪{t3},在t3和v1的假库所之间添加双向弧,即F=F∪{(p1off,t3),(t3,p1off)},再添加赋值结点v3的真假库所与t3之间的有向弧,即F=F∪{(p3on,t3),(t3,p30ff)};将割集ψ2模拟为变迁t4,即T=T∪{t4},在t4和v4的真库所之间添加双向弧,即F=F∪{(p4on,t4),(t4,p4on)},再添加赋值结点v3的真假库所与t4之间的有向弧,即F=F∪{(p3on,t4),(t4,p3off)},将割集ψ3模拟为变迁t5,即T=T∪{t5},在t5和v2的假库所之间添加双向弧,即F=F∪{(p2off,t5),(t5,p2off)},再添加赋值结点v4的真假库所与t5之间的有向弧,即F=F∪{(p4on,t5),(t5,p4off)};将割集ψ4模拟为变迁t6,即T=T∪{t6},在t6和v3的真库所之间添加双向弧F=F∪{(p3on,t6),(t6,p3on)},再添加赋值结点v4的真假库所与t6之间的有向弧,即F=F∪{(p4on,t6),(t6,p4off)},见图11;
步骤9、对于输入开关量v1、v2对应的结点添加连接变迁,对于v1添加连接变迁t7和t8,且·t7={p1off},t7 ·={p1on},·t8={p1on},t8 ·={p1off},即F=F∪{(p1off,t7),(t7,p1on),(p1on,t8),(t8,p1off)};对于v2添加连接变迁t9和t10,且·t9={p2off},t9 ·={p2on},·t10={p2on},t10 ·={p2off}即F=F∪{(p2off,t9),(t9,p2on),(p2on,t10),(t10,p2off)}完成转换;
步骤10、输出一个普通Petri网N:=(P,T,F)和初始标识m0(见图11)。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (1)

1.一种将可编程逻辑控制器程序转换为普通Petri网的方法,其特征在于具体包括以下步骤:
步骤1、将PLC梯形图中左母线、右母线和包括触点、开关、辅助继电器或线圈的开关量模拟为结点,并且左、右母线和开关量与结点一一对应,得到结点集合V={vl,vr,v1,v2,...,vm},其中vl表示左母线,vr表示右母线,m表示开关量的个数;将左母线、右母线和开关量之间的导线模拟为有向边,得到有向边集合E={e1,e2,...,en},其中任意e=(vx,vy),vx对应靠近左母线的母线或开关,vy对应靠近右母线的母线或开关,n是有向边的个数,从而获得PLC梯形图的有向图模型G=(V,E);
步骤2、计算Petri网的库所集
Figure FDA00003571512900011
在PLC有向图中,将除母线对应的结点之外的全部结点v1,v2,...,vm模拟为2m个库所,其中每个结点vi(1≤i≤m)对应真库所pion和假库所pioff,所得库所组成Petri网的库所集
Figure FDA00003571512900012
步骤3、设定Petri网的初始标识m0
Figure FDA00003571512900013
显然,m0(pion)+m0(pioff)=1;
步骤4、在PLC有向图中,定义与右母线结点相邻的赋值结点集合,赋值结点集合Vo={v∈V/(v,vr)∈E},定义与左母线相邻的起始结点集合,起始结点集合Vb={v∈V/(vl,v)∈E};
步骤5、在PLC有向图中,对于任意一个赋值结点vox,令Π(vox)={π12,...,πk}表示从起始结点到达vox的全部基本有向路径集合,其中Π(vox)中的任意一条路径满足下列条件:
(1)它是一个结点序列,其中任意两个相邻结点之间存在一个从前者指向后者的有向边;
(2)其中的每个结点仅能出现一次;
(3)它的第一个结点是一个起始结点,最后一个结点是vox
步骤6、对于每一个赋值结点vox∈Vo,进行下列运算来获得Petri网的变迁集合T和有向弧集合F:
(1)令pon和poff分别对应vox的真库所和假库所;
(2)将Π(vox)中k条路径的第i条路径πi模拟为一个变迁tion,并且完成下列操作:设路径中非末尾结点的个数为v,那么在结点j(1≤j≤v)对应状态的库所pij和ti之间添加一个双向弧;添加一个从tion指向pon的有向弧;添加一个从poff指向tion的有向弧;即 T = T ∪ 1 ≤ i ≤ k { t ion } , F = F ∪ 1 ≤ i ≤ k 1 ≤ j ≤ v { ( P off , t ion ) , ( t ion , P on ) , ( P ij , t ion ) , ( t ion , P ij ) } ;
步骤7、定义Π(vox)的割集,它满足下列条件:
(1)它是一个结点集合;
(2)每个结点都包含在Π(vox)中的某路径内;
(3)每个结点都不是vox
(4)如果删除该集合中的结点,那么将不存在从左母线结点vl到达vox的路径,如果Π(vox)的一个割集不包含任何其它割集,则称其为最小割集,计算Π(vox)的最小割集的集合,令其为Ψ(vox);
步骤8、、将Ψ(vox)中c个割集的第m个割集ψm模拟为一个变迁tmoff,并完成下列操作:设路径中非末尾结点的个数为v′,那么在结点n(1≤n≤v′)对应状态的库所pmn和tmoff之间添加一个双向弧;添加一个从pon指向tmoff的有向弧;添加一个从tmoff指向poff的有向弧,即
Figure FDA00003571512900031
F = F ∪ 1 ≤ m ≤ c 1 ≤ n ≤ v ′ { ( P off , t moff ) , ( t moff , P on ) , ( P mn , t moff ) , ( t moff , P mn ) } ;
步骤9、对于每个输入开关量对应的结点vi(1≤i≤m′,
Figure FDA00003571512900033
Figure FDA00003571512900034
表示集合vo内元素个数),添加连接迁tx和ty,且tx的输入和输出分别为该结点的真库所和假库所,而ty的输入和输出分别为该结点的假库所和真库所,即 T = T ∪ 1 ≤ i ≤ m ′ { t ix , t iy } , F = F ∪ 1 ≤ i ≤ m ′ { ( P ioff , t iy ) , ( t iy , P ion ) , ( P ion , t ix ) , ( t ix , P ioff ) } ;
步骤10、输出一个普通Petri网N:=(P,T,F)和初始标识m0
CN201110248322.4A 2011-08-25 2011-08-25 一种将可编程逻辑控制器程序转换为普通Petri网的方法 Active CN102411330B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110248322.4A CN102411330B (zh) 2011-08-25 2011-08-25 一种将可编程逻辑控制器程序转换为普通Petri网的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110248322.4A CN102411330B (zh) 2011-08-25 2011-08-25 一种将可编程逻辑控制器程序转换为普通Petri网的方法

Publications (2)

Publication Number Publication Date
CN102411330A CN102411330A (zh) 2012-04-11
CN102411330B true CN102411330B (zh) 2014-03-12

Family

ID=45913450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110248322.4A Active CN102411330B (zh) 2011-08-25 2011-08-25 一种将可编程逻辑控制器程序转换为普通Petri网的方法

Country Status (1)

Country Link
CN (1) CN102411330B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140304551A1 (en) * 2012-12-17 2014-10-09 Mitsubishi Electric Corporation Program analysis supporting device and control device
CN103019233B (zh) * 2012-12-21 2015-04-15 华侨大学 一种检测plc梯形图程序中是否存在竞态的方法
CN103092753B (zh) * 2012-12-29 2015-08-26 华侨大学 一种将PLC指令表程序转换成普通Petri网的方法
CN103093046B (zh) * 2013-01-11 2016-03-30 华侨大学 一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法
CN103488116B (zh) * 2013-08-13 2016-05-18 华侨大学 一种将PLC定时器模块转换成普通Petri网的方法
CN103616885B (zh) * 2013-11-20 2016-05-18 华侨大学 基于Petri网的PLC在线故障诊断方法
CN103699048B (zh) * 2013-12-06 2016-08-17 华侨大学 一种将PLC加计数器转换为顺序Petri网的方法
CN104133412A (zh) * 2014-07-08 2014-11-05 华侨大学 一种判断梯形图程序的无“竞态”的方法
CN104615071A (zh) * 2015-01-08 2015-05-13 华侨大学 基于Petri网的自动化立体仓库系统的PLC程序设计方法
CN107092736B (zh) * 2017-04-10 2021-05-04 南京理工大学 一种车间制造系统Petri网模型的PLC硬件实现方法
CN110320798B (zh) * 2019-05-21 2021-09-24 西安电子科技大学 一种基于安全网的控制器结构简化及行为优化方法
CN110308690A (zh) * 2019-07-26 2019-10-08 华侨大学 基于Petri网的无刷直流电机DSP逻辑控制程序设计方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030052861A (ko) * 2001-12-21 2003-06-27 재단법인 포항산업과학연구원 패트리네트를 이용한 래더다이어그램작도방법
WO2011003837A1 (de) * 2009-07-08 2011-01-13 Schneider Electric Automation Gmbh Verfahren zur optimierung von petri-netz orchestrierten arbeitsabläufen für service-orientierte automatisierungsgeräte in service-orientierten automatisierten systemen
CN101984771A (zh) * 2007-10-26 2011-03-09 施奈德电气自动控制有限责任公司 用于编制面向服务的自动化系统的服务的方法以及编制机

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030052861A (ko) * 2001-12-21 2003-06-27 재단법인 포항산업과학연구원 패트리네트를 이용한 래더다이어그램작도방법
CN101984771A (zh) * 2007-10-26 2011-03-09 施奈德电气自动控制有限责任公司 用于编制面向服务的自动化系统的服务的方法以及编制机
WO2011003837A1 (de) * 2009-07-08 2011-01-13 Schneider Electric Automation Gmbh Verfahren zur optimierung von petri-netz orchestrierten arbeitsabläufen für service-orientierte automatisierungsgeräte in service-orientierten automatisierten systemen

Also Published As

Publication number Publication date
CN102411330A (zh) 2012-04-11

Similar Documents

Publication Publication Date Title
CN102411330B (zh) 一种将可编程逻辑控制器程序转换为普通Petri网的方法
Lechler et al. Virtual Commissioning–Scientific review and exploratory use cases in advanced production systems
Pavlovic et al. Model checking PLC software written in function block diagram
Bleicher et al. Co-simulation environment for optimizing energy efficiency in production systems
CN108121216A (zh) 一种基于数字化工厂的自动化车间虚拟调试方法
JP2009093375A (ja) プラント制御システム及び方法
Bonacchi et al. Validation process for railway interlocking systems
CN103092753B (zh) 一种将PLC指令表程序转换成普通Petri网的方法
Ugarte Querejeta et al. Implementation of a holistic digital twin solution for design prototyping and virtual commissioning
CN102142047A (zh) 可在电脑内被执行的方法、可读取式电脑媒体及其系统
CN103400025A (zh) 一种混成系统的可达性分析方法
Vöth et al. Potential of Modelica for the creation of digital twins
CN103093046A (zh) 一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法
Loeis et al. Application of symbolic and bounded model checking to the verification of logic control systems
Stoffels et al. Energy engineering in the virtual factory
CN105005210A (zh) 机电一体化仿真系统及使用其的方法
Arashpour Design for manufacture and assembly in offsite construction and relationship with concurrent engineering
CN114896802A (zh) 基于VISSIM和Python的混合自动驾驶交通流仿真方法
Hauf et al. Energy consumption modeling within the virtual commissioning tool chain
Ghani et al. Real time energy consumption analysis for manufacturing systems using integrative virtual and discrete event simulation
Rogersten et al. Control software synthesis and validation for a vehicular electric power distribution testbed
Kuzmin et al. On construction and verification of PLC programs
Fang et al. Formal verification and simulation: Co-verification for subway control systems
CN104657542A (zh) 一种基于MSVL的Petri网模型检测方法
CN103699048A (zh) 一种将PLC加计数器转换为顺序Petri网的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant