柔性制造系统中面向对象Petri网建模方法 技术领域:
本发明涉及一种用于分布式控制系统中,对柔性制造系统(FMS)制造单元分析设计建模的一种方法,尤其涉及一种柔性制造系统(FMS)中面向对象的Petri网建模及设计方法。
背景技术:
普通的Petri网模型存在一些基本问题从而限制了它在复杂的FMS模型设计中的应用,主要表现在以下几个方面:
(1)对于面向普通对象Petri网的建立,因其结构复杂、系统多具有针对性,对建立模型和改动模型都非常困难,且普通的Petri网建模具有较高的系统独立性,而缺少在FMS中所需要的诸如模块性、可重用性及可维护性等特点。
(2)简单的Petri网很难在现有模型基础上增加节点,不能在原有基础上进行变动,用于实际的工程实践。
(3)传统的Petri网方法忽略了控制逻辑的计划/调度知识,并且也缺乏从控制模型及控制软件代码之间的直接映射的特性,这可能导致整个系统的冲突,一旦在控制计划中稍变化,整个模型需要重新建立。
发明内容:
本专利针对现有技术不足,提供了一种柔性制造系统(FMS)中面向对象的Petri网建模及设计方法。
为实现以上目的,本发明专利采用的技术方案是:
第一步,在FMS中结构模型的建立:
FMS布局中包括两台加工机床:HASS数控车床和XH-714数控铣床,每台机床前分别有一个六工位的缓冲区;缓冲区侧面有一个用于装料和卸料的装卸站;缓冲区放置一台具有两个工位的AGV小车,用于在柔性生产线上传输和放置零件;两台机械手分别安放在HASS数控车床和XH-714数控铣床前。第二步,单个物理对象OPN模型的构造:
在实时调度仿真过程中,AGV小车、HASS数控车床及XH-714数控铣床都独立工作,它们通过机械手的动作来实现联动,为了建立完整的OPN模型,以物理对象机床及AGV小车为例首先建立它们各自的OPN模型:
机床OPN模型的建立及一个简单的工作循环:零件被AGV小车送到机床T13上加工并放到机床的缓冲区MP12,如果机床1空闲P13并且在机床输入缓冲区有零件MP11,缓冲区上的零件由机械手放置到机床P11,然后机床开始加工零件T11,这时消息“在机床输入缓冲空闲”MP13传送到单元控制器,加工完成后P12,机床开始卸载零件T12,MP14并发出消息“机床的输出缓冲有零件”给单元控制器,等待机械手放回零件指令。
AGV小车OPN模型建立的一个简单的工作循环:如果小车空闲P34,并且它接受到消息“小车有服务请求”MP31,小车将开始朝申请地进发T34,当它到达申请地P31,小车开始装零件T31,当小车已完成零件的装载P32,它将向目的地进发T32并给小车已装上零件的消息MP32,当小车到达目的地后P33,小车开始在目的地卸载零件T33,当小车再次空闲P34,它发出小车卸载消息MP33给单元控制器,并等待接受新任务。
在上述两个机床OPN模型及AGV小车OPN模型中,有两类Petri网的位置处所:状态处所和消息处所,每个有自己的输入输出位置,在物理对象中不同的输入输出位置之间有状态变迁发生,输入位置是其它物理对象变迁的结果,输出位置是其它物理对象发生变迁的条件。
第三步,在FMS中的OPN模型的建立:
在没有任务时,系统中的各种组织单元也就没有必要发生相互间的联系,这时系统完全分解为呈无序状态的单个基本制造单元。一旦任务(计划)出现,就会刺激各个基本单元,使得制造单元自身具有的可连通性发挥作用,单元间相互发出“连通”的要求,是由Gate1、Gate2、Gate3实现。
其系统流程及算法如下:
(1)、Gate1()://小车装走工件后的事件转移
G1表示另一种变迁,指零件从小车放到机床输入缓冲区。这一过程省略了机器人与缓冲区的PN点。
IF(MP32激活)
SWITCH(MP32地点(即装走工件地点))
M1(FANUC机床)输出缓冲区:
IF(M1输出缓冲有零件)
移去M1输出缓冲区第一个零件//MP12
m_sentMsg1=TRUE
M1实际完成零件数加1并更新数据库
M2(FANUC铣床)输出缓冲区:
移去M2输出缓冲区第一个零件//MP22
m_sentMsg2=TRUE
M2实际完成零件数加1并更新数据库
(系统零件出口处):NULL
MP32死
由机床输出缓冲站情况修改MP12、MP22状态
(2)、Gate2()://小车卸出工件后的事件转移及零件压入MP11、MP21
G2小车卸出工件,即从小车将工件放置到输出缓冲区。这一过程省略了机器人与缓冲区的PN点。
IF(MP33激活)
IF(MP33地点(即卸出工件地点)为M1输入缓冲且M1输入缓冲有空位)
零件加入M1输入缓冲//MP11
MP33死
IF(MP33地点为M2输入缓冲且M2输入缓冲有空位)
零件加入M2输入缓冲//MP21
MP33死
IF(MP33地点为系统零件出口)完成零件数加1MP33死
IF(M1输入缓冲不空)
IF(MP11死)M1输入缓冲区第一个零件压入MP11
IF(M2输入缓冲不空)
IF(MP21死)M2输入缓冲区第一个零件压入MP21
(3)、Gate3()://小车服务申请
IF(M1/M2输入缓冲有空)MP13/MP23激活 否则MP13/MP23死
IF(M1/M2输出缓冲有零件)零件压入MP14/MP24并激活否则MP14/MP24死
IF(MP14/MP24激活且m_sentMsg1/2为TRUE) 将MP14/MP24中零件加入小车消息队列
置m_sentMsg1/2为FALSE
IF(小车消息队列不空且MP31死)取出一个消息压入MP31FMS的OPN模型中各物理对象的功能函数
本发明专利的在柔性制造系统中(FMS)中的面向对象的Petri网的建模方法的优点在于:(1)OOPN模型的设计不仅具有Petri网及面向对象编程的特点,而且在控制逻辑中体现控制决策知识。与普通的Petri网相比,FMS中地OOPN模型能够扩展并容易重构;(2)OOPN模型中的状态能够根据一些预先定义的规则直接转变成控制软件代码;(3)控制软件的设计能模拟/调度基于OOPN模型的FMC的过程。通过对OOPN模型的定义及该OOPN模型所规定的控制逻辑,基于OOPN模型开发的FMS控制软件能够直接对应得到并可避免在系统中出现死锁和冲突问题。
附图说明:
图1为本发明专利FMS布局示意图;
图2为本发明专利机床OPN模型的建立及一个简单的工作循环示意图;
图3为本发明专利AGV小车OPN模型建立的一个简单的工作循环示意图;
图4为本发明专利在FMS中的OOPN模型的建立示意图;
图5为本发明专利AGV小车线程流程图;
图6为本发明专利机床线程流程图;
具体实施方式:
如图1所示,FMS布局中包括缓冲区1、缓冲区2、机械手3、机械手4、AGV小车5、HASS数控车床6、XH-714数控铣床7、装卸站8组成,其中两台加工机床:HASS数控车床6和XH-714数控铣床7,HASS数控车床6前有一个六工位的缓冲区1,XH-714数控铣床7前有一个六工位缓冲区2;缓冲区侧面有一个用于装料和卸料的装卸站8;缓冲区放置一台具有两个工位的AGV小车5,用于在柔性生产线上传输和放置零件;机械手3、机械手4分别安放在HASS数控车床6和XH-714数控铣床7前。
如图2所示,零件被AGV小车送到机床上加工并放到机床的缓冲区,如果机床1空闲P13并且在机床输入缓冲区有零件MP11,缓冲区上的零件由机械手放置到机床,然后机床开始加工零件T11,这时消息“在机床输入缓冲空闲”MP13传送到单元控制器,加工完成后P12,机床开始卸载零件T12,MP14并发出消息“机床的输出缓冲有零件”给单元控制器,等待机械手放回零件指令。
如图3所示,如果小车空闲P34,并且它接受到消息“小车有服务请求”MP31,小车将开始朝申请地进发T34,当它到达申请地P31,小车开始装零件T31,当小车已完成零件的装载P32,它将向目的地进发T32并给小车已装上零件的消息MP32,当小车到达目的地后P33,小车开始在目的地卸载零件T33,当小车再次空闲P34,它发出小车卸载消息MP33给单元控制器,并等待接受新任务。
如图4所示,在柔性制造系统中(FMS)中的面向对象的Petri网建模方法的面向对象的OPN模型,其中有:零件装在机床1上P11;机床1完成机加工P12;机床1空闲P13;零件装在机床2上P21;机床2完成机加工P22;机床2空闲P23;小车到达申请位置P31;小车完成装载零件P32;小车到达目的地P33;小车空闲P34;机床1正在加工零件T11;机床1正在卸载零件T12;机床1正在装载零件T13;机床2正在加工零件T21;机床2正在卸载零件T22;机床2正在装载零件T23;小车开始装零件T31;小车开始向目的地前进T32;小车开始在目的地卸零件T33;小车开始向申请地出发T34;在机床1输入缓冲区有零件MP11;在机床1输出缓冲区有空闲MP12;在机床1输入缓冲区有空闲MP13;在机床1输出缓冲区有零件MP14;在机床2输入缓冲区有零件MP21;在机床2输出缓冲区有空闲MP22(26);在机床2输入缓冲区有空闲MP23;在机床2输出缓冲区有零件MP24;小车有服务请求消息MP31;小车有装载零件消息MP32;小车有卸载零件消息MP33;系统零件入口A;系统零件出口B;小车装走工件后的事件转移G1;小车卸出工件后的事件转移G2;小车服务申请G3。