一、引言
当前,随着越来越大的市场竞争压力和越来越多变的客户要求,制造业必须在尽可能短的时间内产出尽可能多品种的产品以满足顾客的需求。传统的需求模式已不能适应这一趋势,敏捷制造这一新的制造模式已引起了人们的广泛关注。所谓敏捷就是指企业在不断变化、难以预测的经营环境中善于应变,从而能够在市场竞争中生存并领先,敏捷制造即是指制造企业采用现代通信手段,通过快速配置各种资源(包括技术、管理和人),以有效的协调的方式响应用户需求,实现制造的敏捷性[1]。
敏捷制造对制造系统提出了新的要求,即制造系统能够迅速重新配置、重新构造从而具有快速响应外部变化的能力,柔性成为系统必不可少的一种重要性质。因而,制造系统的各个组成部分(人员、设备、软件)都必须成为内部高度自治,外部具有标准物理和逻辑接口的制造实体。加工设备作为制造系统的基本组成部分,也必须成为具有这样特点的制造实体。国外的制造业已经开始了这方面的研究,美国的半导体加工设备制造商开发出了用于半导体生产的敏捷加工设备,以适应更新换代日益加速的半导体芯片的加工生产[2]。然而,这类研究应用在加工设备的设计开发阶段,着重于考虑加工设备的物理结构。由于加工设备的物理结构一旦确定,其改进将是一项费时、费力、高成本的工作,因而为在制造系统中引入敏捷性而全面改造加工设备的物理结构代价过高。
在制造业中,整个加工过程中不仅存在着物质流,还存在着信息流。加工设备不仅改变加工产品的物质形态,同时也改变加工产品的信息形态。因此,从加工设备的逻辑结构着手,通过设备定义完整地描述加工设备的状态、方法和行为信息,将加工设备定义成满足敏捷制造系统要求的制造实体是完全可行的。同时,有关设备的各种信息是制造系统中的重要信息,制造资源规划(MRP)、计算机辅助设计/工艺规划/制造(CAD/CAPP/CAM)、车间控制(SFC)等各个制造子系统都要用到此类信息[3],完整而准确地描述设备信息对这些系统的正常工作也是至关重要的。目前,设备信息一般是用建立设备数据库的方法来表达,国内的一些学者又提出了用特征建模的方法来构造设备模型,并把特征归结为设备管理、设备加工、设备控制三大类特征[4]。然而,上述方法只是静态地描述了设备的结构特性,而无法全面地描述作为一种制造实体加工设备所拥有的资源和功能。在本文中,我们提出了一种面向对象的设备定义方法,全面描述了作为敏捷制造系统中的一种制造实体设备本身的结构特性和它所具有的功能,并为其他制造子系统提供准确而恰当的设备信息。
二、面向对象的设备定义方法
面向对象的方法用对象来描述现实世界中的事物,对象不仅具有用数据来描述的状态或属性,还具有用于改变对象状态的操作,实现了数据与操作的结合,因而,对象可以同时描述事物结构和行为两方面的信息;同时对象间的联系通过消息传递来完成。在设备定义中,具体设备被表达为一个对象,设备的静态结构属性用对象的状态数据来表示,设备的功能行为属性用设备所具有的操作(方法)来描述,同时兼顾了设备的结构和功能。该方法通过四个步骤建立面向对象的设备模型,这四步是:(1)分析设备的结构特性;(2)建立设备的功能模型,确定设备的功能;(3)建立设备的动态模型,确定设备在制造系统中的行为变化;(4)在以上三步的基础上建立面向对象的设备模型。
下面将详细讨论建立设备对象模型的这四个步骤。
1.分析设备的结构特性
通常,设备的结构特性信息一般存储在设备数据库中,包括设备的名称、型号、加工能力、加工范围、加工精度等。在建立面向对象的设备模型时,这些属性转换为设备对象属性域中的属性。当然,对于结构复杂的加工设备,这些属性可能会更多,例如对于数控设备就可能还有设备的数控系统类型、数控代码格式、联动轴数等一系列属性。若没有建立设备数据库,这些属性也必须列出并转换为设备对象属性域中的属性。
2.建立设备的功能模型
IDEF0(集成的计算机辅助制造定义)图是制造业常用的功能建模工具,它由输入、输出、功能块、控制和机构五个要素组成,这五个要素的关系可表达如下:输入通过机构所执行的功能在控制的支配下转换为输出。图1就是一台加工机床的IDEF0图。
图1 加工机床的功能模型(IDEF0图)
IDEF0图表达的设备功能模型有可能涉及到多个设备,图1中除了加工机床外还有搬运设备和工件缓冲区,因而,它在向面向对象的模型转换时可能会有多个设备对象出现。转换一般按以下规则进行:
(1)功能块代表一种特定的活动,一般转换为设备对象所具有的方法;
(2)机构代表执行某种活动所需要的资源,一般可转换为某种设备对象;
(3)功能块的输入/输出若代表一种信息,可以转换为某种设备对象所发出的消息。
3.建立设备的动态模型
Petri网是研究离散事件动态系统的有力工具,它是由位和迁移这两种节点构成的有向图,能够清晰地描述设备在制造系统中的行为变化,包括设备具有哪些状态,状态间的相互转换及转换发生的条件。制造系统的建模、仿真及调度常常用到Petri网,但此时的Petri网模型涉及到多种设备,需要对其进行分解。首先,Petri网中只涉及到某一种设备的位和迁移的部分被标识为该设备的Petri网块;然后,找出位于这种Petri网块边缘涉及到其他设备所对应的位的迁移,用信息位代替其他设备所对应的位,来表示这种迁移发生的条件或是它相起的结果。图1所表述的加工机床的动态模型用Petri网描述(如图2所示)。
T1:开始调整;T2开始装载;T3:开始加工;
T4:开始拆卸;T5:置设备状态为空闲;
P1:设备空闲;P2:设备调整完毕等待装载;P3:设备装载完毕等待加工;
P4:设备加工完毕等待拆卸;P5:设备拆卸完毕;
M1:设备调整指令;M2:装载指令(发往装载设备);M3:装载完毕信号(装载设备);
M4:拆卸指令(发往拆卸设备);M5:拆卸完毕信号(拆卸设备)。
图2 加工机床的动态模型nextpage
这种模型向面向对象的模型的转换规则如下:
(1)Petri网中的位代表某种资源的状态,一般可转换成设备对象的属性,图2所示的Petri网模型中的位P1(P5)、P2、P3、P4可分别转换为设备对象所具有的空闲、等待装载、等待加工、等待拆卸四种状态属性;
(2)Petri网中的迁移转换为设备对象所具有的方法,图2所示的Petri网模型中的迁移T1、T2、T3、T4可转换为调整(stetup())、装载(load())、加工(process())、拆卸(unload())这四种设备对象所具有的方法:
(3)Petri网中的信息位可转换为设备对象发出或收到的消息,图2所示的Petri网中的信息位M1转化为外来控制对象发送给该设备对象的一种消息,该消息在设备状态为空闲的时候触发setup方法的执行,M2、M4是由load和unload方法执行时发送给装载设备要求装卸工件的消息,M3、M5是装载对象发送给该设备对象表示装卸完毕的消息,和设备状态一起来触发process方法的执行或使设备状态重新变为空闲;
(4)Petri网中的令牌表示当前设备对象正在处理的工件,是设备对象的一种属性。
4.在前面三步的基础上建立面向对象的设备模型
图1为加工机床的功能模型。应用这种设备定义方法可得到如下的面向对象的设备模型。
Class Facility{
private:
char facility - name[20];∥设备名称;
char facility - mode[20];∥设备型号;
char facility - index[12];∥设备编号;
enum process - method(turning,milling,drilling…);∥加工方法;
float process - scope;∥加工范围;
float process - accuracy;∥加工精度;
char facility - vendor[12];∥设备名产厂家; 以上七项由步骤1得到
enum status(idle,wait - loading, wait - processing, wait - unloading);∥设备状态;
char *current - part;∥设备正在加工工件; 以上两项通过IDEF0图及Petri网得到
public:
Facility(); ∥设备对象的创建;
~Facility(); ∥设备对象的撤销;
get - facility - attributes();
set - facility - attributes(); ∥操作设备对象的属性的方法;
setup();
load();
process();
unload(); ∥设备对象具有的方法; 由IDEF0图及Petri网得到
}
以上设备对象还应具有发送和接收消息的标准方法用以完成对象间的联系。
三、设备类库的建立
采用第二部分提出的面向对象的设备定义方法,工程技术人员可以根据制造系统的实际情况定义其中的各类加工设备。但是,对每一加工设备,都去分析其结构特性、功能特性,建立功能模型、动态行为模型,再建立面向对象的模型,也是一个费时费力的任务。因此,利用面向对象的方法把制造系统中结构和功能特性相似的加工设备聚合成对象类,进一步建立起对象类的层次结构关系并通过继承实现设备模型信息的重用是非常必要的。
一般来说制造系统中的加工设备依其结构与功能特性可划分为以下三类:(1)加工类设备。加工类设备是指能够完成一种或几种加工工艺的设备,像普通加工机床(车床、铣床、磨床……)、NC、加工中心、焊接机器人等。这类设备的属性主要包括设备的加工方法、加工范围、加工精 、设备状态(加工、空闲)等,行为有装、卸工件、加工工件等。(2)搬运类设备。搬运类设备负责设备之间工件的传送,像多种机器人、自动导引小车、传送带等都是搬运类设备,甚至,完成工件搬运任务的工人也可以被抽象为一种搬运设备,它的主要属性包括搬运范围、所在地、设备状态(搬运、空闲)等,其中搬运范围是指它可达到的其它设备。(3)仓储类设备。仓储类设备用于存储工件,像自动化的立体仓库,I/O缓冲区,甚至工件的临时堆放地,也可以被看作是一种仓储类设备。它最重要的行为就是储存工件和提取工件,这类设备的主要属性是其中存储工件的数量和种类以及它的存储容量。
上述三类设备可以被抽象为三种基本的设备对象类:加工类、搬运类和仓储类,它们构成设备类库结构中的一层。这三种设备对象类还具有一些共同的属性,象设备的名称、型号、编号以及生产厂家等这些所有设备都具有的属性,而且每种设备对象类都必须能够对其具有的属性进行操作,因而可以进一步向上概况抽象出一种新类——设备类,这种设备类包括设备的名称、型号、编号和生产厂家等属性,并可以对这些属性进行操作,它处于设备类库结构的最上层,是整个设备类库的基类。同时,考虑到制造系统的实际情况,对加工设备的结构与功能属性进行更详尽的分析,许多新的设备对象类被定义成加工类、搬运类、仓储类这三种对象类的子类,它们处于设备类库结构的下层,象加工类下有数控机床类、普通机床类、加工中心类等子类,搬运类下有搬动机器人类、传送带类和自动导引小车类等子类,仓储类下有自动化仓库类、缓冲区类等子类。采用上述方法,整个设备类库结构就建立起来了,具体结构如图3所示。
图3 设备类库的层次结构
因此,工程技术人员只须通过以下两种方法就可完成设备定义任务:
(1)依照设备类库中已有的类建立设备对象模型;
(2)在设备类库中已有的类的基础上通过继承定义新类建立设备对象模型。
这样,工程技术人员就可以十分方便地完成设备定义任务。
四、结论
本文针对在敏捷制造环境下制造系统对设备定义的需求,分析了设备的结构和功能特性后,提出了一种面向对象的设备定义方法,工程技术人员可按照此方法建立设备对象模型,并在此基础上建立了设备类库。设备只是组成制造系统的一部分,从面向对象的观点来看,制造系统中还存在着决策/调度实体、信息实体另两类对象,设备对象必需与其它两类对象相互作用、相互协调。因而,设备定义的实现是一个基础,下一步的研究将是采用面向对象的方法研究制造系统的控制及信息传递问题。


