Design and Implementation of Real Time Factory Controller Using Petri Net and Java/CORBA

Dr. Tham Chen Khong and Chris Choy (ECE Dept.)

The real time factory controller entitled ¡°Petri Net Simulator¡± is developed using pure Java under JBuilder3.5 using the object-oriented paradigm. Petri Nets is used to model a flexible manufacturing system. Its various components such as Place, Transition and Tokens are developed as generic Java objects in the Petri Net Simulator and they serve as the building blocks for the factory model. In addition, each of them are further categorized into different types and having different functions. A typical flexible manufacturing system consisting of a central storage, several workstations and a material handling system is shown below. In the project, 4 workstations are used. As such, the factory network that is simulated consists of 6 distributed modules including the central storage module and the material handling system module.


Fig. 1 Flexible Manufacturing System


Following this, the subsequent figures show the Petri Net design of the various flexible manufacturing system modules.


Fig. 2 Central Storage Module


Fig. 3 Workstation 1 and Workstation 4


Fig. 4 Workstation 2


Fig. 5 Workstation 3


Fig. 6 Material Handling System Module


The Petri Net Simulator is used to design the various FMS modules as shown according to the Petri Net model. Each instance of the Petri Net Simulator provides the avenue for designing and hosting of one FMS module. In the project, separate instances of the Petri Net Simulator representing different FMS modules reside in several computers in a distributed manner. These computers can belong to the same subnet or different subnets but all of them will form the factory network. These distributed modules communicate with one another using the Common Object Request Broker Architecture and each of them can act as client and server concurrently using the Java multi-threading feature. The Visibroker ORB version 4.0 found in Inprise Application Server is used as the CORBA ORB for the project. Jobs are created by the MRP and Job Generation module based on the data available in the Oracle database. Following that, they are sent to the factory network by calling the job creation method available in the remote CORBA object which is part of the central storage module of the factory network. For each of these remotely distributed CORBA objects, their references and implementation information are stored in the dynamic directory services provided by the Visibroker Smart Agent. If any of the distributed FMS module breaks down, jobs that are destined for it will be automatically routed back to the Central Storage module. Whenever the destined FMS module is up and ready again, the Smart Agent will allow jobs to dynamically re-discover the module¡¯s object adapter and its object¡¯s reference through broadcasting. In this way, a reasonable amount of fault tolerance in the flexible manufacturing system can be achieved. The figure below shows the overall system layout of the factory network.


Fig. 7 Overall System Layout


Jobs sent to the factory network are pre-scheduled by the MRP and Job Generation module. In addition, real-time scheduling is performed on the jobs as they are routed through the different distributed FMS modules. Different processing times can also be chosen for each components in the FMS modules.Below are figures showing the screen captures of the Petri Net Simulator during the running of the factory network.


Fig. 8 Workstation Running


Fig. 9 Material Handling System running


Fig. 10 Designing a FMS module