您现在的位置:机电论文网>> 机床加工>> 正文内容

基于corba面向对象的fms控制系统模型

作者: 来源: 发布时间:2018/2/11 16:12:47  点击数:429
摘要 为了使fms控制软件系统具有开放性,本文提出了基于corba面向对象的fms控制系统模型,将相关可编程设备的物理单元抽象为对象。为了方便异构物理单元的集成,各个物理单元对象通过继承抽象单元类共享公共通讯协议(单元与单元之间及单元与总控制器之间通讯协议)。此外,fms的其它相关物理和抽象实体也抽象为对象。为了证实本文提出的控制模型,在vc++5.0编程平台下编制了fms控制软件,并在上海交通大学生产与控制技术研究所fms示范系统进行了检验。
关键词:物理单元 抽象单元 客户/服务器 面向对象 fms控制系统 对象请求代理器
1、引言
fms是通过计算机和一些相关的可编程设备组成的分布式网络,例如,自动装配线、数控机床和plc物料运输线等均属于可编程设备。典型的fms由单元层控制平行分布的设备层完成生产任务,例如,控制装配、机床加工和物料运输等。对于一个自动运行的fms而言,为了将所有的单元集成于一个相互配合的系统,同时协调全部车间层的各项活动,其中控制系统是十分必要的。然而,由于fms的复杂性,不同的设备完成不同的功能,因此建立一个fms控制系统(尤其是软件部分)相当困难。以往的fms的软件控制系统大都采用结构化编程实现,中央主计算机直接控制所有单元层的操作。而fms强调柔性,希望单元层之间的报文及数据进行直接交换,而单元层及设备层有时会有适当的变动,这使得用传统的结构化编程方式建立fms的软件控制系统及中央主计算机直接控制方式很可能失去fms的柔性。
为了解决集成于同一单元层中不同可编程设备的错综复杂性和单元层之间的报文及数据进行直接交换等问题,本文提出了基于corba面向对象的fms控制系统报文及数据模型。此模型中,每一个物理单元用一个封装了物理单元的属性(attributes)、操作(operations)和实施(implementation)的对象来描述。各个物理单元的对象通过继承抽象单元类、共享报文和数据通讯的公共协议及相同的属性、操作和实施。各个可编程设备的对象通过继承各自相关的物理单元的类来描述。单元层与车间层及单元层之间的报文及数据 的通讯,通过基于corba机制的客户(client)/服务器(server)技术实现。
2、面向对象的fms集成模型
一个fms由多个单元组成,完成各自的高级制造任务,如装配单元、物料运输单元和加工单元等相互协调完成制造任务。如图1描述了由五个单元组成的fms集成模型的实例:装卸单元、加工单元、物料运输单元、检验单元和准备单元。每个单元均带有单元控制器(本系统采用pc机),控制方式采用递阶结构的计算机过程控制:单元总控方式和车间总控方式的组合。单元总控方式实现单元过程控制系统与设备层可编程设备的信息集成;车间总控方式实现fms生产计划控制与单元层各单元的信息集成。单元层之间及车间层通过局域网相连接,单元层与设备层通过终端服务器相连接。

图1 分布式网络的fms集成模型
物料运输单元由设备控制级控制器(本系统实例采用西门子s5-95u可编程控制器)、物料输送带(实例采用bosh-2f)和托盘组成。工件在准备单元中,通过人工操作将工件、夹具作为一体装入托盘,由装卸单元将托盘放置于物料输送带的上料端。输送带按照调度指令计划将托盘输送到指定的缓冲站,实现了工件从一个单元到另一个单元的输送。加工单元由数控机床和加工中心组成(本系统实例采用一台cnc maho600c铣床和一台steinel bz20加工中心)。
fms总控制器(本系统采用windows/nt server)发送各种生产调度计划(以报文和数据方式)给各物理单元,同时接收来自物理单元的状态反馈信息(以报文和数据方式)。控制系统软件将fms所有单元集成为一体,生产调度计划的任务由各单元控制完成。fms总控层与各物理单元之间及各物理单元之间的报文和数据交换,通过基于corba机制的客户/服务器技术实现。各单元控制器将接收到的上层任务发送给各自的可编程设备,同时接收来自可编程设备的状态反馈信息,所有可编程设备之间的报文和数据的交换统一由单元控制器来完成,状态反馈信息统一由单元控制器反馈给上层fms总控制器。fms强调柔性并希望fms总控软件具有柔性。随着单元层及设备层的变动(物理单元或可编程设备增加或减少),fms总控软件容易适应fms的硬件的变化,而传统的结构化功能函数编程方式建立fms的软件控制系统,则很难适应fms的变化。
为了使fms总控软件具有柔性,本文介绍基于corba面向对象的fms控制系统集成模型。在软件控制系统中,通过数据抽象,从较特殊的类或对象中抽出一般属性,建立一个抽象单元(abstrct cell)的超类(super class),具体的物理单元用虚拟的对象来描述(见图2),抽象单元的超类封装了物理单元对象的公共属性、操作和实施。各个物理单元的对象相对与超类而言,是超类或超类成员的一个事例。由于各个物理单元完成各自的特殊功能,每个物理单元的对象必须通过面向对象的继承性,继承超类的公共属性和处理方法,同时产生自己的派生类(derived class),来处理各自的特殊要求。根据面向对象的原理,设备层的可编程设备同样用虚拟的对象来描述。为了实现各自的功能,在继承各自物理单元类公共的属性和实现的基础上,产生出自己的派生类来处理特殊任务。基于上述方法,当fms的物理单元和可编程设备改变时,对fms总控软件系统而言,仅仅影响fms改变的单元或可编程设备的类或对象,而不改变软件系统的其他功能。

图2 fms集成控制系统的面向对象模型
根据面向对象的原则,不仅单元和可编程设备用对象来描述,而且在制造系统中其他功能实体、车间调度、操作及处理等都被模型化为对象。图3描述了单元类与其他类之间的相互关系。

图3 单元类与其他类之间的关系
3、fms对象类的设计
如何将fms具体的物理设备、功能实体、通讯协议及操作等进行抽象,使系统对不同的应用领域尽可能具有相同的操作,这关系到fms软件控制系统的柔性度。基于面向对象的观点,将fms的控制系统所提供的功能进行对象的类的定义:
(1)物理的fms类:抽象单元、物理单元及其他描述具体设备的类(例如:可编程设备和缓冲站)。
(2)fms的操作类:任务的打包、解包、动作链的操作、操作次序、作业调度等。
(3)fms的通讯类:总控制器与单元之间及单元之间的通讯协议、单元控制器与终端服务器的通讯协议、报文及数据的发送和接收等。
如图4,给出了单元类之间的继承关系。每个矩形框表示一个类,矩形框内分别描述了单元的名字、属性(数据成员)和操作(成员函数)。带小圆点的单元类表示为派生类,是通过继承抽象单元类生成的,箭头指向超类(抽象单元类)。带星号的字符串表示为非派生类,是通过corba的接口定义语言(idl)生成的。每个派生的单元类继承超类的公共属性和操作,同时定义了本单元的可编程设备的公共属性和操作。它们真正的实施是通过更低级的派生类完成的。上述所用面向对象的编程方法,对象及类通过继承、成员函数重载等面向对象的设计,方便了现有的对象和类的扩充、修改及新对象和类的添加。

图4
如图5,描述了动作链操作类、操作次序类、零件类和单元类之间的相互运作关系。单元控制器以一定操作次序发送作业任务,通过触发作业操作次序的动作链操作来完成零件的加工。操作次序决定了动作链操作的先后顺序,一个动作链操作对应一个零件,完成一个零件的加工需要多个动作链操作。

图5 动作链操作类和其他类之间的关系
如图6,给出基于遗传算法的车间作业调度(ga for job shop scheduling)类及派生类的层次图。调度类实施产生作业对象操作次序计划的方法,调度产生的车间作业计划以报文方式发送给不同的单元控制器。单元控制器按一定的作业操作次序分配成动作链操作,动作链操作按可编程设备通讯协议打包,将动作链操作发送给设备层的可编程设备完成各自的作业任务。按车间作业调度不同的需求,车间作业调度的派生类可实现不同的调度策略。例如,spt-scheduling类实现作业操作的加工时间最短策略;mwr-rcheduling类实现作业剩余操作加工时间最长策略;fopnr-scheduling类实现剩余作业数量最少策略。

图6 基于遗传算法的车间作业调度类及派生类的层次图
如图7,描述fms通讯协议(communi-cation protocol)类的继承和派生类的关系。通讯协议类是抽象单元类的派生类,总控制器与单元之间及单元之间的通讯协议(main cell protocol)类、单元控制器与终端服务器的通讯协议(cell terminal protocol)类和终端服务器(terminal server)与可编程设备通讯协议(terminal equipment protocol)类,都通过继承通讯协议类产生的派生类。由于设备层可编程设备的不同,使终端服务器与可编程设备通讯需采用不同的通讯协议。如3964r协议类封装了终端服务器与西门子s5-95u可编程控制器通讯方法,lvs2协议类封装了终端服务器与maho600c数控铣床通讯方法。

图7
4、corba机制的client/server接口
corba机制的client/server技术的主要特征是将面向对象技术引入了基于corba机制的client/server体系结构的分布式计算环境,利用对象的固有属性:封装性、继承性、多态性和动态装订性,实现了client/serve应用中各种client/server间的重用、互操作和即插即用功能。
corba是对象技术规范之一,它用面向对象的方法解决应用软件系统中的重用和互操作问题,它的核心部分是orb(对象请求代理器)。在两个对象互操作的过程中,请求服务的一方可被看成客户,提供服务的一方是服务器。在fms集成控制软件系统中,单元层与车间层及单元层之间的报文及数据的通讯,通过基于corba机制的客户/服务器技术实现。单元层与车间层及单元层之间需要通讯的报文及数据抽象成对象,每个对象有若干个接口,每个接口又包括若干属性和操作。属性和操作可以被外部程序访问。一个接口可继承另外一个或多个接口。corba对obr部件的描述是通过规定接口的属性和操作来实现的。接口的定义用corba idl(接口定义语言),实现则采用vc++编程语言,二者是分离的。采用idl语言生成的报文和数据对象,通过idl编译器,把idl语言生成的对象编译到vc++的编程语言中,形成一个程序框架(skeleton)。如图8中,client和server对象均用idl语言描述。在对象实现中,orb是对象互连的核心。使用orb,一个client能透明地调用和初始化一个server对象上的动作,该server处于分布网环境中。orb监听client调用,并完成能实现该调用请求的定位对象、传送请求参数、激活该请求的方法,最后从server返回结果。client/sever关系是在一次互操作的过程中存在的,并不是固定不变的,即一个对象既可以是client,也可是server。例如,加工单元控制器向车间层总控制器请求服务时,加工单元控制器作为client,而装卸单元控制器向加工单元控制器请求服务时,此时加工单元控制器则作为server。

图8 orb结构图
5、面向对象的fms集成模型的实现
控制软件系统采用vc++5.0编程语言,基于corba的开发环境,采用iona公司的orbix2.3c,数据库采用microsoft access。以上海交通大学生产系统与控制技术研究所fms示范系统为范例,对面向对象的fms集成模型进行了检验。图9是该fms示范系统的硬件连接结构图,控制器通过分布网络介质(具有独立ip地址的终端服务器),分别连接多台可编程设备。该示范系统底层的可编程设备包括一台maho mh-600c数控铣床、steinel bz-20镗床加工中心、zeiss cmm-400三坐标测量仪、v200刀具预调仪等,以上设备通过bosch ts/f2物料运输系统相连接。mhao-600c和bz20组成一个fms的加工单元,由hp586微机运行调度任务进行控制。装卸单元、物料运输单元及检验单元都由各自的控制器(采用hp586微机)控制,车间层控制器采用windows nt服务器(hp586微机)。

图9 上海交通大学生产系统与控制技术研究所fms示范系统的硬件连接结构图
6、结论
通过基于corba面向对象的fms控制系统模型的分析研究和应用开发,采用本文提出的软件控制模型对上海交通大学生产系统与控制技术研究所的fms示范系统进行了成功的控制。应用表明,基于corba面向对象的fms控制系统模型设计采用面向对象的模块化原则,并基于corba标准面向对象开发平台,系统控制软件具有可重用性。它兼顾车间层总控方式和单元层总控方式两个方面的要求,同时覆盖了总控层和单元层控制功能,能够胜任模块化的fms的控制任务。它不仅可以控制车间层的制造任务,而且还可以单独用于控制设备层的可编程设备。

更多
字体:【】-【】-【】【关闭此页

上一篇:数控技术和装备发展趋势及对策'   下一篇:混凝土泵的摆动系统分析'


特别声明:机电之家(http://www.jdzj.com )所共享的机电类资料,机电论文、机电类文章、机电企业类管理制度、机电类软件都来自网上收集,其版权归作者本人所有,如果有任何侵犯您权益的地方,请联系我们,我们将马上进行处理。购买的论文都出自原创,保证作者的原创的版权的转让,任何纠纷由法律解决。