1、Specifications of the OpenMESFrameworkVersion 1.0 (Draft alpha 2)MSTC/JOP 1202 (2000 September 1)Production System Modeling Technical CommitteeJapan FA Open Systems Promotion GroupMANUFACTURING SCIENCE “Do“, work orders; “Check“, progress management; and“Action“, result data. Data required for vario
2、us phases can be generated and processed. Further, thenecessity for preparing daily operation reports and the like is eliminated. Thanks to orders from the MES, two or more factories can function as a single factory. Variousfactory combinations can be used to match the product type. The OpenMES fram
3、ework allows users to configure a system by using existing software components.2.5.2. System integratorSystem integrators receive the following benefits from the employment of an MES framework. A multi-vendor environment for production equipment can easily be established. A high-quality MES can be r
4、ealized within a short period of time by using qualified software Version 1.0 a2 5 Preparation date: 09/01/00components. User interfaces realized on top of Web browsers can be used to propose and offer advanced solutions.2.5.3. Component providerComponent providers receive the following benefit from
5、 the employment of an MES framework. Business can be conducted by offering components into which the providers original know-how isincorporated.2.5.4. Equipment manufacturerEquipment manufacturers receive the following benefit from the employment of an MES framework. Equipment no longer needs to be
6、added upon each production system change.2.6. Interface Definition LanguageCORBA-based specifications of application frameworks are usually written in CORBA Interface Definition Language (IDL). However, the OpenMES project adopted Java programming language as an IDL for CORBA objects from the follow
7、ing two reasons. Development can be conducted even if application programmers are not familiar with CORBA IDL. The programmers then need to understand only the implementation language of OpenMES, namely,Java. Taking account of a performance issue stems from the remote object access/invocation, only
8、the objects that require the remote interoperability are given as CORBA objects. Objects that cannot be accessedremotely, namely, non-CORBA objects are passed by value among CORBA objects. Thepass-by-value is a function that is not included in the specification of CORBA 2.0, but provided withsome of
9、 the CORBA ORG implementation such as VisiBroker. Constructs in the OpenMES framework are organized hierarchically into three levels: function group,component, and object. The function-group level corresponds to a module of a cohesive sub-unit of MESapplications, and implemented as a Java package. T
10、he component level is a collection of related objectsin a function group. The object level is for a fundamental unit of abstraction, and implemented as a Javaclass. This document primarily deals with these three levels. In particular, Unified Modeling Language (UML) is used as a graphical notation o
11、f the structural and behavioral aspects of the OpenMES framework.Further details of the object internals such as method signature and instance variables are explained in theJavadoc of the OpenMES framework to be given as a separate document. Version 1.0 a2 6 Preparation date: 09/01/002.7. How to Use
12、 This DocumentCustomization with the OpenMES framework consists of the following five aspects. GUI developmentWith Visual Age Java, JBuilder, Visual Cafe or other development environment or JDK, develop ormodify a graphical user interface so as to call a framework API. Application developmentOn eith
13、er the client side or the server side, implement an application logic that calls a framework API. If HTML exchanges with clients are made using a servlet or JSP in situations where the logic isimplemented on the server side, the associated design and implementation processes must also becompleted. D
14、ata customizationSince classes are offered on the presumption that data customization is effected variously for all MES,add member variables and methods as needed. CORBA interface customizationWhen adding a member variable or method to an equipment interface, scheduler interface, or otherCORBA inter
15、face, define an interface derived from a CORBA interface and implement the definedinterface. It is then necessary to develop an application that calls a new method. When adding avariable to a CORBA class, define a class derived from an implemented class and implement thedefined class. When you chang
16、e the logic without applying CORBA interface changes, define a classderived from an implemented class and implement a method. Framework function additionIn consideration of reuse, add a function group and components of MES application framework by calling a class definition prescribed by the specifi
17、cations. If distributed processing is required or desirable, newly define a CORBA interface and implement it. 2.8. Related Activities 2.8.1. OMG A Request for Information (RFI) was issued in December 1997 from the MEC/MC working group of OMGs Manufacturing Domain Task Force. The RFI invited input fr
18、om individuals and organizations with insight or information in any of areas related to MES, and six responses were submitted. TheMES/MC working group has reactivated its planning for MES interfaces development. A new draftMES Roadmap document has been developed which reflects discussions at the Mes
19、a OMG meeting inJanuary 2000 as well as past work done by the MES/MC and ERP working groups. Version 1.0 a2 7 Preparation date: 09/01/002.8.2. ISO The New Work Item is now being discussed by TC 184/SC5/WG1 (Enterprise Integration). The Japan Domestic Countermeasure Committee is studying the OpenMES
20、framework.2.8.3. MSTC/JOP The Production System Model Special Committee is discussing specifications.Version 1.0 a2 8 Preparation date: 09/01/003. OpenMES ObjectsThe OpenMES framework consists of the following ten function groups. Factory management Production order management Product specification
21、Process specification Process management Equipment management Transfer management Material management Schedule management Common function groupThis section describes the classes and interfaces given in the above function groups.Figure 1 is an overview of the fundamental manufacturing execution proce
22、sses in the OpenMESframework. This is a class diagram, and shows the relationship among the production order class(MesProductionOrder), production lot class (MesProductionLot), lot job class (MesLotJob), process job class (MesProcessJob), work order class (MesWorkOrder), and process equipment class(
23、MesProcessEquipment). A MesProductionOrder object, which represents production orders, consists of MesProductionLot objectscorrespond to production lots. A MesProductionOrderManager object manages MesProductionOrderobjects. A MesLotJob object represents an operation related to a MesProductionLot obj
24、ect and consistsof MesProcessJob objects, which correspond to individual manufacturing processes such as processing,inspection, and cleaning. MesWorkOrder is associated with a MesLotJob object and set to process equipment MesProcessEquipment object.Figure 2 is a diagram that illustrates collaboratio
25、n among object instances in the course of the manufacturing execution. An application (AP production order management in the figure) calls the addProductionOrder method of MesProductionOrderManager to generate a production order (aMesProductionOrder object). The createProductionLots method is then c
26、alled to generate aMesProductionLot object, and when the releaseProductionOrders method is called, MesLotJobManagergenerates MesLotJob objects. When an application (AP production lot management in the figure) callsthe createSchedule method, a schedule is created by the MesScheduler object. When the
27、outputSchedule method is called, the created schedule is registered to the MesLotJobManager object. The releaseLotJobs method releases a lot job into the production line. In accordance with the createdVersion 1.0 a2 9 Preparation date: 09/01/00schedule, the addWorkOrder method assigns a MesWorkOrder
28、 object to a MesProcessEquipment object. When the work is finished, the finishWorkOrder method is called. Finally, the setWorkResult method associates the related MesWorkOrder, MesLotJob, MesProcessJob, and MesProductionOrder objects withthe work result.C lass Diagram /Production=Production M anagem
29、 entFG =M esP roductionO rder(from com .ibm .m es.fwk.production)(Production Lot C reation*M esP roductionLot(from com.ibm .mes.fwk.production)(Production O rder Release1*M esP roductionO rderM anager(from com .ibm .m es.fwk.production)=Process M anagem ent FG =M esLotJobM esLotJobM anager(from com
30、.ibm .m es.fwk.process)(Detail Schedule C reation)*M esP rocessJob(from com.ibm .mes.fwk.process)(Lot Job Release1* (from com .ibm .m es.fwk.process)1*M esD ispatcher(from com .ibm .m es.fwk.process)=Equipm ent M anagem ent FG =M esW orkOrder(from com .ibm .m es.fwk.equipm ent) *M esP rocessEquipm e
31、nt(from com .ibm .m es.fwk.equipm ent)Figure 1 Class diagram related to the fundamental manufacturing executionVersion 1.0 a2 10 Preparation date: 09/01/00Production Order1: addProductionOrder( ): MesProductionOrderManagerManagement Application2: createProductionLots( )3: releaseProductionOrders( ):
32、 MesScheduler5: createSchedule( )6: outputSchedule( ): MesProductionOrder4: addLotJob( )13: setWorkResult( ): MesLotJobProduction LotManagement Application 7: releaseLotJobs( ): MesLotJobManager12: setWorkResult( ): MesProcessJobProcess Job Management Application8: addWorkOrder( )9: finishWorkOrder(
33、 ): MesProcessEquipment10: setWorkResult( ):11: setWorkResult( )MesWorkOrderFigure 2 Collaboration diagram for the fundamental manufacture execution processIn order to realize actual manufacturing operations in a distributed environment, each class needs to provideremotely accessible CORBA interface
34、s. When a CORBA interface name is Foo, an implemented classis named FooImpl and its utility class for object start/management is named FooServer. FooImplprovides a set of methods that are defined for Foo. Therefore, FooImpl is not described in this document, although it may appear in some class and
35、sequence diagrams for clarity. 3.1. Factory Management Function GroupThis function group manages the factory structure and operating schedule. It consists of the following components. Factory structure management component Equipment schedule management componentVersion 1.0 a2 11 Preparation date: 09
36、/01/00This class searches schedule of factory and equipm ents.M esFactoryM anager(from com.ibm.mes.fwk.factory)*M esEquipment(from com.ibm.mes.fwk.equipment)M esEquipmentInfo(from com.ibm.mes.fwk.factory)Figure 3 Class diagram for Factory Structure Management Component3.1.1. Factory structure manage
37、ment componentThis component manages information related to equipment installed in a factory. (1) MesFactoryManagerThis class defines manipulations (setup, search, modification, and deletion) to be performed on the manufacturing equipment information, factory operation plans, equipment operation pla
38、ns, andmaintenance programs. It also defines the method of acquiring available equipment during an equipmentinactivity period of time or other specific period of time.(2) MesEquipmentInfoThis class manages the information about manufacturing equipment, that is, the type, model number, andinstallatio
39、n site values. It is presumed that customization will be effected on an individual MES basis.Version 1.0 a2 12 Preparation date: 09/01/00: FactoryManagerRegistration of a equipment:MesFactoryManag1: new:MesEquipmentInfo2: addEquipmentInfo( )Modification of equipment information3: put4: new5: updateE
40、quipmentInfo( )Search of equipment information9: findEquipmentInfo( )Deletion of an equipment10: removeEquipmentInfo( )6: getOperationPlan( )7: setOperationPlan( )8: put11: removeFigure 4 Sequence diagram for the modification of equipment informationVersion 1.0 a2 13 Preparation date: 09/01/00:MesEq
41、uipment:FmsScheduler:MesFactoryManag:FmsEquipmentInfConnection of Equipment and its Information1: connectEquipmentInfo( )Aquisition of Equipment Information3: getEquipmentInfo( )Aquisition of Rest time of Equipment4: getEquipmentRests( )Aquisition of Available Equipment2: connectEquipmentInfo( )5: g
42、etAvailableEquipmets( )Figure 5 Sequence diagram for the registration of equipment information 3.1.2. Equipment schedule management componentThis component consists of classes that offer functions for managing the schedules of a factory and individual equipment. The equipment maintenance periods are
43、 also described using this component. It also manages the result values concerning schedules.A schedule is defined as an aggregate of inactivity periods. A factory schedule represents factory inactivity periods. An equipment schedule represents equipment inactivity periods. A maintenanceschedule rep
44、resents maintenance periods. An operating period recognized by the scheduler correspondsto the complementary set of the OR of factory and equipment inactivity periods.Version 1.0 a2 14 Preparation date: 09/01/00FmsScheduler(fro m com.ib m.mes.fms.sch edu le)MesFactoryManager(fro m com.ib m.mes.fwk .
45、facto ry)MesOperationPatternManager(fro m com.ib m.mes.fwk .facto ry)*MesOperationPattern(fro m com.ib m.mes.fwk .facto ry)*MesOperationElement(fro m com.ib m.mes.fwk .facto ry)*MesEquipment(fro m com.ib m.mes.fwk .equipment)MesEquipmentInfo(fro m com.ib m.mes.fwk .facto ry)instantiated frominstanti
46、ated fromMesEquipmentOperationPlan(fro m com.ib m.mes.fwk .facto ry)MesOperationPlan(fro m com.ib m.mes.fwk .facto ry)*MesOperationPlanItem(fro m com.ib m.mes.fwk .facto ry)*MesOperationTimeRange(fro m com.ib m.mes.fwk .facto ry)Figure 6 Class diagram of Equipment Schedule Management Component(1) Me
47、sOperationPatternManagerThis class defines the methods for manipulations (setup, acquisition, search, modification, and deletion) to be performed on manufacturing equipment management and factory operation plan patterns.(2) MesOperationPatternThis class is an aggregate of MesOperationElement objects
48、. The schedule pattern is to be stipulated by specifying the Interval between MesOperationElement objects. The Interval setting is variable in 1-minute increments. To employ a setting of 1-week intervals, use the value 10080 (=7*24*60).Version 1.0 a2 15 Preparation date: 09/01/00(3) MesOperationElem
49、entThis class represents a time pattern element of a schedule. It is to be defined by specifying the offset from a start time and the duration of time. These settings are both variable in 1-minute increments.(4) MesOperationPlanThis class offers manipulations (setup, acquisition, and deletion) to be performed on schedules. It retainsan aggregate of MesOperatingPlanItem objects having differing patterns.(5) MesEquipment