本发明属于车间工业制造系统与控制技术领域,特别是一种车间制造系统petri网模型的plc硬件实现方法。
背景技术:
科学技术的高速发展推动了工业制造水平的提高,同时也使车间工业制造系统的自动化水平不断提高。现代的车间制造系统的设计与实现过程比较复杂,所以在系统投入使用前,要找到一个合适的车间制造系统建模方法进行清晰准确描述整个系统的各个要素。要能够在设计开始时就能够有效避免一些严重的错误或缺陷,在系统运转时,要能方便的监督和完善。目前,涉及车间制造系统建模的方法有很多种,且侧重点各有不同,其中petri网建模与设计是其中的主流技术之。
petri网是一种用于异步、并发和动态的系统的图形化、数学化建模工具,用于分析、设计、模拟和研究异步、并发、不确定性和随机的离散事件动态系统。根据有关系统结构和动态行为方面的信息,可以对要开发或者维护的系统进行评价和改进。而且petri网是基于结构图和流程图形式,所以可以很直观、形象地观察和分析模型,同时,作为一种数学工具petri网可以建立状态方程、代数方程以及系统行为的其他数学模型,便于计算和验证。
另一方面,在车间工业制造中存在大量的开关量为主的开环的顺序控制,它按照逻辑条件进行顺序动作或按照时序动作;另外还有与顺序、时序无关的按照逻辑关系进行连锁保护动作的控制;以及大量的开关量、脉冲量、计时、计数器、模拟量的越限报警等状态量为主的离散量的数据采集监视。由于这些控制和监视的要求,使plc发展成了取代继电器线路和进行顺序控制为主的产品。把plc应用于离散事件系统的控制,是因为plc本身的低成本、耐用性和易编程的性质。plc编程语言包括顺序功能图语言、梯形图语言、功能块语言、语句表语言以及结构化文本语言。不同的编程语言编写的程序一般可以相互转换,不同的语言形式可以表达相同的逻辑关系。其中,梯形图语言以其简单和直观的特性,成为实际应用中最常用的plc编程语言。
对于简单的系统,使用启发式方法,很容易写出plc程序。但是,当开发多产品、并行任务或周期性交互任务时,梯形图语言难以提供足够的结构支持,同时系统也会极为复杂以至于难以调试。所以需要一种更高层次的工具去帮助解决这些问题。在离散事件系统的描述问题上,petri网被公认为是一高效的工具。
由于petri网在描述离散事件上的优势和plc在自动化工业上的广泛应用,由petri网转化至plc梯形图也经历了学者的大量研究。d.c.mcfarlane等提出了一种基于时序逻辑的转化方法。该方法罗列库所与变迁之间的结构形式,给出对应转化后的梯形图。该方法的特点是结构简单,并且考虑到了对外部事件输出的组合逻辑。但是该方法只适用于安全petri网,并且没有考虑冲突问题和雪崩效应。在实际的离散事件系统petri网建模中,安全petri网适用性低,这大大降低了它的实用性。(chirnjl,mcfarlanedc.petrinetsbaseddesignofladderlogicdiagrams[j].2000.)
muratuzam等提出了一种基于tpl(tokenpassinglogic)的转化技术(uzamdm,jonesah.discreteeventcontrolsystemdesignusingautomationpetrinetsandtheirladderdiagramimplementation[j].internationaljournalofadvancedmanufacturingtechnology,1998,14(10):716-728.)。它的主要思想是利用托肯在库所之间的演变作为转化的主要依据。在uzam的另一篇相关文章中提出了冲突问题,并给出了两种解决方案(uzamm,
纵观petri网至plc梯形图转化的研究,在很多方面已经取得了巨大进展。比如转化方法对各种扩展petri网的适用性,转化方法的简洁性,控制逻辑的完整性等等。但还是存在一些问题,主要是:1)雪崩效应。雪崩效应是由plc扫描特性带来的。plc总是从上至下,从左至右依次扫描。在某些特定条件下,系统状态会连续演变,造成不可预知的状态。2)冲突问题。冲突问题是petri网中结构本身存在的问题,当两个或两个以上变迁竞争同一库所资源时,冲突有可能发生。把petri网转化为梯形图,也要考虑解决冲突问题。
技术实现要素:
本发明的目的是为车间制造系统提供一种基于petri网状态方程的petri网模型转化为plc梯形图的方法,使petri网对离散事件系统高效的建模能力应用于生产系统plc实际应用中。
实现本发明目的的技术解决方案为:一种车间制造系统petri网模型的plc硬件实现方法,包括以下步骤:
步骤1、利用petri网实现工业上离散时间系统建模过程如下:归类生产系统主要有工作部件和共享资源,工作部件按照一定的规则并发执行和共享系统的资源。使用petri网的库所中的托肯数表示资源数,使用petri网的变迁表示工作部件,使用petri网中库所与变迁间的关系弧表示生产系统中的规则。这样即可将现实的企业车间生产系统模型化,使用petri网模型表示,并且通过分析、处理petri网模型来实现对实际系统的研究和控制。
步骤2、初始化模块,其求解过程如下:
对于petri网模型全部库所集合p={p1,p2,p3...pn}(n为系统中库所总数),找出所有
对于
其中m为集合pa中元素的数量。
对于
在系统初始状态m0状态下,把拥有托肯的库所及其数量信息传递到梯形图中。若
步骤3、侦测模块采用先侦测所有变迁的使能情况,再统一发射变迁,从结构上避免了雪崩效应。雪崩效应为plc扫描过程中,布尔表达式序贯赋值引起的结果。雪崩效应类似于流水线指令的raw(写后读)数据相关,即后一指令所需的数据被前一指令所更改,这并不是我们预期的结果,会导致petri网状态的雪崩,引起无法预知的后果。使用先侦测所有变迁的使能情况,再对使能变迁统一发射,从结构上避免了判断变迁使能状况同时发射容易引起的雪崩效应,提高了系统的稳定性。
步骤4、侦测模块在侦测时同时设置涉及冲突问题库所的优先级,解决冲突问题。其求解过程如下:
通过检查petri网模型的关联矩阵[n](p,t),确定系统中是否存在冲突问题。
若系统存在冲突问题,则通过设置各个变迁的优先级,解决petri网模型中存在的冲突问题。具体做法为:
在plc梯形图编程语言执行过程中,总是按照从上至下、从左至右依次扫描的。在涉及冲突库所的转化时,把优先级较高的变迁放在上面,优先级较低的库所放在下面。在优先级较低的变迁所对应的线圈前面另外添加一个触点,用以判断自身是否满足发射条件。
步骤5、对于任意ti∈t,ti是使能的,当ti所有的输入库所的托肯数不小于其对应的弧的权值,即w(p,ti)<=|p|。在梯形图中,使用一个线圈表示ti是否是可发射的。
petri网模型的关联矩阵[n](p,t)包含了输入库所至变迁的弧的权值信息,故可以直接从关联[n](p,t)中获得ti的使能情况。对于变迁ti∈t,在梯形图中,若ti的输入库所pj∈pa(权利要求2中所定义),pj是否满足使能条件,用一系列的常开触点来表示,当且仅当pj中有托肯时,触点接通。若ti的输入库所pj∈pb(权利要求2中所定义),pj是否满足条件,用比较指令w(pj,ti)<=|p|来实现。当比较指令为真时,触点闭合,当比较指令为假时,触点打开。
当ti所有的输入库所都满足使能条件,在梯形图中,对ti对应的线圈执行置位指令。否则,执行复位指令。
最后,所有变迁组成一个1×n行的发射向量x=(x1,x2,…,xn),其中,n为变变迁总数,xi表示ti是否能够发射,若ti满足发射条件,则xi=1,否则xi=0。
步骤6、演变模块接收从侦测模块传递的信息,发射使能变迁,更新各个库所中托肯数量。具体做法为:
根据petri网的状态方程
m=m0+x(α)[n]
其中,m0为初态。m为从m0引发序列a=t0t1…ts得到的标识。1×m行向量x(a)=(x1,x2,…,xm)为发射记数向量,其中元素xi为tj在α中出现的次数,[n]为petri网的关联矩阵。据此,可以得到petri网一次演变的状态方程:
m=m′+x[n]
其中,m′为m的上一状态,x为从侦测模块接收的发射向量。
最后,由状态方程得到终态m,并且更新各个库所中托肯的数量。petri网模型转化为plc梯形图完成。
本发明与现有的技术相比,其显著的优点为:1)本发明的方法适用于普通petri网转化为梯形图,在实际工业应用中更加广泛;2)本发明采用预先侦测所有变迁使能情况再统一发射的结构,彻底解决了plc扫描时容易出现的雪崩效应,提高了系统安全性;3)本发明提出了一种解决变迁冲突问题的方法,通过编程人员设置的优先级,控制冲突发生时变迁发生的先后顺序,更好的还原设计的本来意图;4)本发明的方法基于petri网状态方程计算状态的演变,具有严格的数学论证过程。
附图说明
图1是一个车间制造系统实例图。
图2是车间制造系统petri网模型。
图3是初始化模块求解流程。
图4是初始化模块示例图。
图5是雪崩效应示例,其中图5(a)是第一种情况示例,图5(b)是第二种情况示例。
图6是侦测模块示例图。
图7是演变模块示例图。
具体实施方式
结合附图,本发明的一种车间制造系统中petri网转换到plc梯形图的方法,包括以下步骤:
步骤1、将车间制造系统中petri网的初始状态m0传递给梯形图,即把petri网模型的初始托肯信息传递给对应的库所;具体为:
步骤1-1、对于petri网模型全部库所集合p={p1,p2,p3...pn},n为系统中库所总数,找出所有
步骤1-2、对于
其中m为集合pa中元素的数量;
对于
步骤1-3、在系统初始状态m0状态下,把拥有托肯的库所及其数量信息传递到梯形图中;若
步骤2、检测每个变迁的使能信息,并利用该使能信息判断冲突变迁的优先级,从结构上解决雪崩效应;具体为:
步骤2-1、检查petri网模型的关联矩阵[n](p,t),t为petri网模型中的变迁;确定系统中是否存在冲突问题,若系统中存在冲突问题,则转至步骤2-2,否则转至步骤2-3;所述冲突问题定义为:令tc为库所
其中,tci为集合tc中第i个变迁,w(pi,tci)为库所pi到其对应输出变迁的权值;
步骤2-2、设置各个变迁的优先级,具体为:在plc梯形图编程语言执行过程中,按照从上至下、从左至右依次扫描的;在涉及冲突库所的转化时,把优先级高的变迁放在上面,优先级低的变迁放在下面,在优先级低的变迁所对应的线圈前面另外添加一个触点,用以判断自身是否满足发射条件;
步骤2-3、对于任意ti∈t,ti是使能的,当ti所有的输入库所的托肯数不小于其对应的弧的权值,即w(p,ti)<=|p|;在梯形图中,使用一个线圈表示ti是否是使能的,petri网模型的关联矩阵[n](p,t)包含了输入库所至变迁的弧的权值信息,可以直接从关联矩阵[n](p,t)中获得ti的使能情况;对于变迁ti∈t,在梯形图中,对于ti的输入库所pj∈pa,当且仅当pj中有托肯时,触点接通,表示满足使能条件,否则不满足;对于ti的输入库所pj∈pb,用比较指令w(pj,ti)<=|p|来判断,当比较指令为真时,触点闭合,表示满足使能条件,当比较指令为假时,触点打开,不满足使能条件;当ti所有的输入库所都满足使能条件,在梯形图中,对ti对应的线圈执行置位指令;否则,执行复位指令;
步骤2-4、将所有变迁组成一个1×n行的发射向量x=(x1,x2,…,xn),其中,n为变迁总数,xi表示ti是否能够发射,若ti满足发射条件,则xi=1,否则xi=0。
步骤3、将使能的变迁发射,之后更新各个库所的托肯数量,从而完成petri网到plc梯形图的转换。将使能的变迁发射,之后更新各个库所的托肯数量,具体为:根据petri网的状态方程得到petri网一次演变的状态方程,并由一次演变的状态方程得到终态m,并且根据终态m更新各个库所中托肯的数量;
其中petri网的状态方程为:
m=m0+x(α)[n]
式中,m0为初态,m为从m0引发序列a=t0t1...ts得到的标识,1×m行向量x(a)=(x1,x2,…,xm)为发射记数向量,其中元素xi为tj在α中出现的次数,[n]为petri网的关联矩阵;
所述petri网一次演变的状态方程为:
m=m′+x[n]
式中,m′为m的上一状态,向量x为步骤2得到的发射向量。
本发明的方法适用于普通petri网转化为梯形图,在实际工业应用中更加广泛。
下面结合实施例对本发明作进一步详细描述。
实施例
一种车间制造系统中petri网转换到plc梯形图的方法,包括以下步骤:
第一步、图1是一个由两个机器人(r1,r2:每个机器人同时刻可以持有一个产品)和三台机器(m1,m2,m3:每个机器同时刻可以处理两个产品),以及两个输入缓存(i1,i2)和两个输出缓存(o1,o2),共同组成的一个自动化产品生产系统。系统主要以两个机器人为核心分为两条生产线,它的运行流程为
j1:i1→r1→m1→r2→m2→o1
ori1→m3→o1
j2:i2→m1→r2→m2→o2
利用petri网对图1所示的车间制造系统进行建模,所得的petri网模型如图2所示。图2所示的petri网模型是petri网相关研究中普遍使用的一个示例网,值得注意的是,为了显示本发明支持弧权值大于1的petri网,令w(p10,t10)=2。
第二步、结合图2和图3,本发明在对petri网至plc梯形图转化过程中初始化模块求解步骤。
对于图2中的车间工业制造系统petri网模型,它的全部的库所集合p={p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15},找出所有
对于
对于
在系统初始状态m0状态下,把拥有托肯的库所及其数量信息传递到梯形图中。若
第三步,结合图5,本发明解决雪崩效应的思路如下:
雪崩效应为plc扫描过程中,布尔表达式序贯赋值引起的结果。雪崩效应类似于流水线指令的raw数据相关,即后一指令所需的数据被前一指令所更改,这并不是我们预期的结果,会导致petri网状态的雪崩,引起无法预知的后果。如图5(a)所示,当库所p1出现托肯时,变迁t1使能。在一次演变周期内,库所p1中的托肯会转移到库所p2中,并且会使t2使能,在下一次的扫描周期内,再将t2发射。然而,根据plc梯形图程序的扫描规则,在同一个演变周期内,变迁t1和t2会相继发射,如图5(b)所示。这就是petri网转化至plc梯形图过程中存在的雪崩效应。
为了解决雪崩效应,本发明采用先侦测所有变迁的使能情况,这样就避免了对库所中托肯数量的连续赋值。再统一对使能的变迁发射,这样就不会发生上述的雪崩问题。
第四步,结合图6分析解决冲突问题及侦测模块,具体步骤如下:
通过检查petri网模型的关联矩阵[n](p,t),确定系统中是否存在冲突问题。如图1所示的petri网关联矩阵为
其中[n](p,t)i,j为库所pi到其输出变迁ti的权值。由关联矩阵可以看出,变迁t1和t2共同竞争库所p2中资源,所以这两个变迁之间存在冲突问题。可以通过设置冲突变迁的优先级,使冲突结构按照预设顺序推演。在本petri网模型中,令变迁t1优先级大于t2,。判断优先级较低的变迁是否使能时,需额外考虑与其冲突变迁的使能情况。因此,在plc梯形图中需额外设置一个线圈c1来判断变迁t2是否使能,c1具体逻辑为:
其中,
petri网模型的关联矩阵[n](p,t)包含了输入库所至变迁的弧的权值信息,故可以直接从关联[n](p,t)中获得ti的使能情况。所有变迁组成一个1×n行的发射向量x=(1,0,0,0,0,0,0,0,0,0,1)。
最终侦测模块梯形图如图6所示。
第五步,根据petri网一次演变的状态方程:
m=m′+x[n]
可以得到petri网一次演变的规则。根据从侦测模块接收到的发射向量,发射各个使能变迁,并且更新相关库所中托肯中数量。转化后的plc梯形图演变模块如图7所示。
由上可知,本发明采用预先侦测所有变迁使能情况再统一发射的结构,彻底解决了plc扫描时容易出现的雪崩效应,提高了系统安全性。