A CLASS LIBRARY FOR MANUFACTURING SYSTEMS

This work presents a class library for manufacturing systems that aims at facilitating the construction of simulation models, allowing reuse and speeding up the modeling process. This library implements a modeling approach that differs from the majority of similar works in this area. It is based on the application of well known manufacturing concepts, like production routings and activities. It allows the creation of new simulations faster than other methodologies, since complex translations from the reality to simulated applications are not necessary. The development of this library was validated by modeling the production line of tractor parts. The production line case study, modeled using both Automod and the proposed class library, allowed a quantitative comparison for the validation of this work. INTRODUCTION The fast dissemination and widely acceptance of simulation methods contributed to the emergence of specialised environments for programming and simulation of manufacturing systems. Simulation is virtually the only methodology at present which is capable to provide accurate performance estimates for manufacturing systems design (Govindaraj et al. 1990). These environments offer tools that allow the efficient analysis from simple to complex systems. Their main limitation is the difficulty to develop new simulation models. Their model building activity usually requires specific information that is related to the internals of the adopted simulation tool. They are usually restricted to highly specialised users, since the systems usually adopt proprietary languages and particular simulation methodologies. On the other hand, the object-oriented paradigm has taken the attention of the scientific community. Properties like encapsulation, inheritance, and reuse have contributed to make the object-oriented technology very popular for manufacturing systems simulation and deployment. The oneto-one mapping between objects in the manufacturing systems being modelled and their abstractions in the simulation model offer conditions for a better modelling. The object-oriented paradigm have been explored to allow the construction of high-fidelity simulation software for supporting the modelling and control of integrated and complex manufacturing systems. The object-oriented paradigm and distributed objects have emerged as some of the most promising technologies since they allow a natural structure for the problem domain of industrial automation systems. This occurs because the industrial components can be easily mapped into the oriented-objects model diagrams using classes and objects. Objects encapsulate the functions of many components, modularizing the description, encouraging reuse, and allowing implementations as well in software as in hardware. There are many commercial simulation environments for manufacturing systems. They offer many features that permit to build powerful simulations in order to develop advanced solutions for new projects through experimenting many alternative configurations. One of these simulation tools is Automod (Auto Simulations, 2002). Automod (Auto Simulations, 1999) is a process-oriented simulator. The simulation method used in Automod is based on moving parts, representing the work in process, on resources, and on transportation entities. To create a simulation using Automod, the designer must control the traffic of parts through the system using a process specification, which indicates the correct pathway that the part must follow. This approach gives to the simulator robust and reliable features, allowing complex model constructions. The major problem of these tools is the difficulty to build new simulation models. The modeling activity in these environments needs a detailed previous study about the tools, generally demanding highly specialised users. Moreover, these environments do not use important modeling concepts like reuse and extensions. Analysing the current state of the art, this fact is unacceptable. An integration between advantages of the commercial simulators and of the new modeling paradigms becomes mandatory. This fact may increase the quality of produced models, since developers only need to worry about the manufacturing problems, without having to worry about particularities of simulation environments. The main goal of this work is the design of a class library for manufacturing systems that allows the development of simulation models to evaluate these systems. Basic components of these systems should be available, and it should be possible to extend them through high-level modeling features found in object-oriented systems, like aggregation and abstraction, aiming at an easier modeling of complex systems, by encouraging reuse and extensions. STATE OF THE ART IN MANUFACTURING SYSTEMS SIMULATION Bertotto (2001) presents a complete study of the state of the art in manufacturing systems simulation. Modeling, control, and simulation methodologies have attracted the attention of researchers and non-governmental consortia to find new ways of developing manufacturing systems. Narayanan (1998) describes relevant efforts in the specification of object-oriented hierarchies applied to manufacturing systems simulation. Among other efforts, it is worth mentioning the application of Distributed Artificial Intelligence (DAI) and multi-agent systems, the ideas proposed by a consortium called Holonic Manufacturing Systems (HMS), and CORBAManufacturing. Park (1997) introduces an object-oriented modeling schema for the design of automated manufacturing systems (MAS) called JR-net. To propose this schema, Park relies on the fact that the modern flexible manufacturing systems are modular and hierarchical structures, built from standard resources. This proposal is formally based on processes and resource definitions, relationships among objects, procedures to build the model, and on the model structure. Its purpose is to shown that the JR-net modeling framework could be used in the same way as a graphical modeling tool for commercial simulators, such as Automod. A CLASS LIBRARY FOR MANUFACTURING SYSTEMS SIMULATION The main feature of this library is its modeling approach, which is different from other efforts in this area. This approach is based on activities and production routings. The production control is established by production routings that own activities and activate the respective resources. This approach makes the design easier, since the current theory of manufacturing systems is based on this kind of concepts. New simulations may be developed faster than in other methodologies, since complex translations between the reality and the simulation models are unnecessary. The class diagram of the proposed library is represented in Figure 1. This library contains a set of classes that supports both the physical and logical modeling of a manufacturing system. The physical modeling is based on classes that represent the manufacturing system entities, like machines, robots, and tasks. The classes that represent the physical resources can be easily extended to represent other equipments that were not yet created. The logical modeling is based on classes, methods, and attributes also similar to real world logic concepts. Class Library Specification This library was created using UML, a standard language for object modeling containing various diagrams. The library is composed by 30 classes, linked by relationships, aggregations, and specializations. The root of the hierarchy is the Production_Line class. This class aggregates two other classes: Resource and Master_Plan. The Resource class is the root of all classes that execute some transformation on manufacturing parts. The Master_Plan class is the root of all classes that logically control the manufacturing system. In this class, the production plan based on client orders is generated. To create the master plan, the Master_Plan class uses services provided by other classes, such as Order, Scheduling_Algorithm, Part, Resource and Daily_Capacity. The user interacts with the model using the Order class, inserting orders to be produced. The Scheduling_Algorithm class implements the production scheduling algorithms that will guide the master plan creation. When the master plan is generated, the production orders should be created to control the production. Each instance of Production_Order will order the production of one part. If, for example, there is an order of 30 parts, there will be 30 instances of Production_Order. This approach makes the production flow easy. Moreover, it is necessary to update the capacity information of the involved resources. Before the creation of the production orders, Production_Order estimates the daily capacity of the resources, using the Daily_Capacity class related to the Resource class. A variation of a production routing was used in the library to control the production in the various resources. The production routing is represented by an aggregation of the Activity class within the Part class. The aggregated Activity classes describe a logical sequence represented by a relationship that shows the next and the previous activity. An activity can only be executed if all the previous activities were executed. This aggregated structure builds a production graph that may control various activities at different levels of the production hierarchy. When an activity is completed, it activates the next instance of the Activity class. If there are no next activities, an answer is returned to the calling instance. This action indicates that the production of the mentioned part is concluded. Each instance of the Activity class must own a default resource to control. Each activity has a relationship to the Resource class that will execute it. To each resource a wait queue, represented by the Queue class, was added. This class holds the scheduled parts if the respective resource is busy. The Position class stores the ph