分享好友 数控技术首页 数控技术分类 切换频道

一种面向对象的FMS仿真环境的实现

2018-08-22 00:00510

开发了一种基于面向对象框架的可视化FMS仿真环境,可以模拟在不同初始条件下和实时决策规则下的FMS的实时运行状况,并提出了一种基于面向对象模型的实用死锁检测算法,可以实现实时死锁检测及报警,最后的统计结果可为作业计划与调度规则的决策及优化提供依据。

引言

    FMS 是一种复杂的高投资系统,通过仿真可以在规划设计阶段对FMS 的静动态性能进行充分的预测,以便尽早发现系统布局、配置及调度控制策略方面的问题,可大大地节省FMS研制中的人力、物力和财力。由于一般的FMS仿真系统多是在一台计算机上进行的[1],它忽略了许多在真实生产中的实际情况如各实体间的交互通讯问题、控制问题等,不能很好地模拟真实系统。FMS的仿真应能详尽、准确地模拟真实系统,对系统进行分析和评估,另外做到仿真阶段和控制系统设计阶段的自然过渡,但一般这样的仿真系统都是针对某一特定的FMS,因此缺乏通用性和扩展性,本文结合FMS的特点,利用离散事件建模方法、面向对象技术设计并实现了一种基于面向对象框架的FMS的分布式仿真环境,它集成了FMS的仿真、实时调度、评价、控制和监控等功能,可以应用于FMS控制系统的仿真、设计及实际运行控制。

1 FMS仿真环境的组成和相互关系

    我们参照文[2]中的配置构造FMS的基本布局(如图6所示),左边是原材料入口,右边是成品出口,中间有八台加工设备按线形排列,每台加工设备有四个入口缓冲区和一个出口缓冲区,工件由一辆自动引导小车AGV在各缓冲区之间运送,一台总控计算机控制和显示系统的运行状况,八台加工设备和一辆小车分别由一台计算机模拟,十台机器通过局域网连接。

    本仿真系统是用面向对象方法实现的,图1表示了仿真系统中对象的组成及对象间的联系,总控计算机是由数据库对象、控制与决策对象、规则库对象、可视化界面对象和通讯对象组成;加工设备计算机是由加工设备对象、可视化界面对象和通讯对象组成;AGV计算机是由AGV对象、可视化界面对象和通讯对象组成。其中数据库对象存放系统的静态和动态信息,如加工路径表单和系统设备状态等;规则对象中存放启发式规则,如调度/分派规则和路径规则等,数据库对象和规则库对象统称为信息对象[3]。控制与决策对象从信息对象中读取相应数据执行适当的逻辑算法,向加工设备和AGV发送适当的运行指令,监视加工设备和AGV的状态更改信息对象的内容,同时进行死锁检测并通过可视化界面对象报警。总控计算机和加工设备、AGV计算机都包括通讯对象和可视化界面对象,通讯对象是各计算机之间的接口,使计算机之间进行信息交换,可视化界面对象是用于实现人机交互和动画显示。

图1 仿真系统对象的组成及其关系

2 系统建模与分析

    FMS是典型的离散事件动态系统,系统的活动存在并行、合作、竞争等多种关系,因此FMS的模型应具有以下能力,能反映FMS复杂的并发特性,具有定性和定量地进行系统分析的能力,针对FMS 的特点,我们用Petri网[4]对系统进行建模和分析。

    图2和图3分别是加工设备对象和小车对象的Petri网模型,它描述了对象内部的动态运行情况和对象间的接口,加工设备和小车不断向总控计算机报告Report状态,总控计算机根据系统当前的状态和决策规则,执行适当的算法作出决策,再把指令(0Command)发送给加工设备和小车。

图2 加工设备对象Petri网

图3 AGV对象Petri网

3 仿真程序的设计与实现

    本仿真系统是在Windows 操作环境下利用Visual Basic语言实现的,因为Petri网模型描述了对象内部的动态行为,可以根据Petri网定义类的属性和操作[4]。

3.1 车间布局的构造

    用户可以通过需要来布置车间的布局,由于屏幕区域和计算机台数所限我们规定最多有8台加工设备,因为采用面向对象方法,加工设备在系统中定义为加工设备类,每个不同的加工设备实体总是加工设备类的实例,所以系统具有较好的通用性。用户可以通过人机界面输入加工设备的个数、位置、所选加工设备的类型以及可进行操作的类型等属性,系统按输入信息动态产生给定数量和类型的加工设备对象,这些加工设备对象被加载(Load)到系统中,同时显示到可视化用户界面上,用户还可以通过鼠标拖动来改变加工设备的位置,这样用户可以根据具体要求添加、减少或替代加工设备,进行不同车间布局下的仿真。

3.2 数据库和决策规则的设计与实现

    VB提供了多种访问数据库的方法,我们采用Data控件与数据访问对象(DAO)和(RemoteData)控件与远程数据对象(RDO)访问数据库。

    当系统存在资源竞争时,总控计算机就必须通过决策规则[5]作出决策向加工设备和小车发送指令,本系统可以通过定义新的规则类实例加入新的对象。

3.3 死锁检测算法

    由于FMS运行的复杂性,很难事先准确地描述系统的运行状况,所以虽然目前对FMS的死锁问题作了许多理论方面的研究[6-7],但很少能用于实际系统中,本文基于面向对象模型采用了实用的实时检测死锁的算法,用于系统死锁检测和报警。

    系统的资源对象可分为缓冲器对象和非缓冲器对象,在本系统中非缓冲器对象指加工设备对象和AGV对象,每个加工设备有四个入口缓冲区和一个出口缓冲区,所以缓冲器对象属于资源对象同时又是加工设备的属性。FMS中的死锁是由于工件对象在申请资源对象服务时,形成循环等待而引起的,通过检查工件对象和资源对象的属性值,可以鉴别FMS是否发生死锁现象,具体步骤如下:

    1) 检查每一个加工设备对象的所有缓冲器的忙闲标志,若所有加工设备对象都有空闲的缓冲器,则没有死锁,退出;

    2) 定义两个集合S_BUSY1 和S_BUSY2;

    3) 检查所有资源对象的忙闲标志,将所有忙的资源对象加入处于忙状态的资源集合S_BUSY1;

    4) 置集合S_BUSY2 =Ф;

    5) 从S_BUSY1中选取一资源对象,置其checked属性为true,根据其上加工的工件对象确定该工件的下一步目标资源对象,判断该目标对象是否属于集合S_BUSY1,若不是,转下一步,若是,将该资源对象加入集合S_BUSY2;

    6) 检查S_BUSY1中所有资源对象的checked属性,判断是否全部被检查过,若是转下一步,否则转5);

    7) 判断S_BUSY2是否为Ф,若是,则无死锁,退出,否则,判断S_BUSY2是否等于S_BUSY1,若不等于,转下一步,若等于,则存在死锁;

        a) 若S_BUSY2中的资源总数等于系统资源总数,则为全局死锁;

        b) 否则,为局部死锁;

    8) 将集合S_BUSY2赋于S_BUSY1,转4)。

3.4 通讯的实现

    本系统通过Winsock控件实现各个计算机之间的接口和通讯,Winsock控件可通过用户数据文报协议(UDP)或传输控制协议(TCP)进行数据交换,因为本系统需要可靠的连接,所以本系统采用TCP协议,总控计算机通过“诊听”(Winsock的Listen方法)指定的端口建立连接。各计算机之间利用Winsock控件的SetData和GetData方法发送和获得数据。Petri 网模型中不仅描述了对象内部的动态运行情况,而且定义了对象间的接口,由此我们可以定义计算机之间通讯的数据格式,例如加工设备发送给总控计算机的数据为6位字符串(如图4)。

图4 机床向总控计算机发送的数据格式

3.5 人机接口和动画界面

    本系统利用VB强大的可视化功能,设计了友好的人机界面,通过界面可以选择和更改系统参数、实时监控系统状态、动画显示系统运行状况、显示甘特图和仿真统计结果。加工设备计算机显示了工件加工参数、加工设备加工进程并通过ActiveMovie控件调用3D MAX的三维动态画面实时显示不同加工类型的加工过程,画面生动逼真。总控计算机显示系统布局和动态运行状况,图5为正在运行中的总控计算机界面。

图5 正在运行中的总控计算机界面

4 仿真结果

    通过界面可以选择和更改系统参数,以得到系统在不同布局、不同工件数、不同静态调度结果以及不同实时决策规则下的统计结果,统计结果可为作业计划与调度规则的决策及优化提供依据,图6显示了图6布局按先申请先服务和先进先出规则下加工9个工件的各机床利用率和各机床输入队列中的排队等待情况。从统计结果可以看出机床2前有排队等待的时间较长,而相同的机床6却无工件等待情况,可见有可能出现在同一时间区域中,工件争用机床2若把一些加工任务分给机床6,很可能缩短加工总时间。

图6 统计结果

5 总结

    目前对FMS 建模与分析方法的研究很多,在理论研究中,对系统做了很大的简化和抽象,但实际情况远比理论分析假设的情况复杂得多,在FMS设计和实现中进行半物理仿真是必不可少的,但由于各方面因素的影响,实践总是远远落后于理论,我们的工作正是针对这种情况而进行的,我们开发了一种基于面向对象框架的FMS仿真环境,具有较好的通用性和可扩展性,可以模拟在不同布局、不同工件数、不同静态调度结果以及不同实时决策规则下的FMS的运行情况,并可以实时检测死锁状况,最后的统计结果可为作业计划与调度规则的决策及优化提供依据。

举报
收藏 0
打赏 0
轻松提高数控机床精度
随着我国经济的飞速发展,数控机床作为新一代工作母机,在机械制造中已得到广泛的应用,精密加工技术的迅速发展和零件加工精度的

0评论2025-01-04312

加工中心刀具长度补偿怎么用?
在数控加工中,刀具长度补偿是一种重要的措施,用于消除机床变形、热变形等因素引起的误差,保证加工精度,从而提高培训效率,减

0评论2024-12-18400

加工中心主轴定位角度怎么调?
  在数控加工领域,加工中心主轴的定位角度是影响加工精度和效率的重要因素之一。正确调整主轴的定位角度可以提高加工质量,减

0评论2024-12-11496

简述机器人加装电主轴就选Kasite 4060ER-S的理由
  近年来,随着科技的不断发展,机器人作业已经渗透到各个领域,尤其在工业制造领域,更加随处可见。高精密切割、铣削、雕刻、

0评论2024-05-20707

机器人主轴怎么选?Kasite高速电主轴满足你的需求
  机器人发展到现在越来越受到人们的欢迎和重视,现在很多传统行业都在生产作业中引入了工业机器人,随着机器人的改进和优化,

0评论2023-10-231208

机械臂加装2.2KW大力矩电主轴,就选MSIY-80电主轴
机械臂想加装大力矩电主轴,用于铸钢等硬质材料去毛刺,铣削等加工,可以考虑MSIY-80电主轴,外径80mm,重量4.8公斤,可搭配轴向或径向浮动刀柄配套使用。

0评论2023-08-261203

每天早上打开数控机床时有没有必要热机?
工厂使用精密数控机床(加工中心、电火花、慢走丝等机床)进行高精密加工,你是否有这样的经验:每天早上开机进行加工,首件的加

0评论2023-08-151093