Object-Oriented Simulation Tool for Flexible Manufacturing Systems

Click Here to Visit - GUI Application Page


Description

This object-oriented based simulation software, developed in C++, models a Flexible Manufacturing System, while incorporating different real-world issues associated with it such as dead-locks in operation and failures of resources. The manufacturing plant (consisting of resources, material-handler, etc.) and the supervisory controller, which form an integral part of the FMS, are all modelled as objects.

The software provides the user with the flexibility to observe the states of various parts and resources in the simulated plant at any time during the simulation and also accumulates into files, the desired performance measures at the end of the simulation.

For teaching purposes, a Graphical User Interface (GUI) Application is provided. This application was designed using Visual Basic 6.0 with an MS Access database as the backend database. Click Here to download the GUI application, user manual and view other pertaining information.


Software Requirements

The following softwares are needed to run our simulation programs:

Windows 9X/NT/XP with Microsoft Visual C++ 6.0 , or,
UNIX with GNU C++ compiler.

Installation

The software consists of three different codes written in C++, which can be downloaded from the links below:

  1. Plant.cpp defines all the objects realted to the manufacturing plant and the methods reqired to drive the whole simulation.
  2. Supervisor.cpp , used to define the control pattern used, is included as a header file in plant.cpp.
  3. The input and output files to the simulation have to be placed in a separate folder, files. The clear.cpp program is used to create the files required for the simulation and to clear them after the run, and, has to be placed in the files folder.

Running the Simulation

Step1: Compile the programs Plant.cpp and Clear.cpp.

In Windows environment, this can be done using the Microsoft Visual C++ tool. In case of UNIX, the compilation is to be done using the GNU C++ compiler, g++, including the Math library for plant.cpp.
eg:- $: g++ plant.cpp -lm

Step2: Create input files to describe the plant behavior and place them in the files folder.

A sample set of files for 5 different parttypes and their descriptions are given below (partplantstatei.txt and partprocessplani.txt are the files corresponding to part type i):
  1. partplantstate1.txt  ,   partprocessplan1.txt .
  2. partplantstate2.txt  ,   partprocessplan2.txt .
  3. partplantstate3.txt  ,   partprocessplan3.txt .
  4. partplantstate4.txt  ,   partprocessplan4.txt .
  5. partplantstate5.txt  ,   partprocessplan5.txt .

Click here for a description of the above files.

Step3: Run the clear.cpp program in the files folder.

This would initialize the required files.

Step4: Run the plant.cpp program.

The user would be asked to enter the following information for each run:

  1. Enter the path for input files:
    In Windows, if the files folder were placed in the C drive, the path should be given as C:\files\. For UNIX users, if the files directory were created in the home directory, the path should be given as /home/files/.

  2. Enter the number of parttypes required:
    The user can specify the number of different part types to be considered. The user must make sure that the input files corresponding to all these parttypes are given in the files folder.

  3. Enter the number of machines in the cell:
    This number must match the number of machines used in the input files of parttypes.

  4. Enter the number of parts to be processed:
    Finally, the user has to specify the total number of parts to be processed by the plant.

  5. Enter the Rate of Failures for machine i:
    The user can specify the rate at which he desires a particular resource to fail. If no failures are desired, a rate of 0 has to be given.


After entering the above information, the simulation proess is displayed as a sequence of plant requests, supervisor responses and the associated moves.

Outputs

The results of the simulation are displayed in a set of output files placed in the files folder:

Plant_sequence.txt gives the sequence of requests made by the plant and Supervisor_sequence.txt gives the corresponding responses of the supervisor. The sequence of plant moves are also displayed in Plant_sequence.txt file.

Part_sequence.txt file displays the machine sequences of different parttypes processed in the simulation.

Failures_report.txt records the number of times each resource has failed, and the number of parts of each type that were scrapped as a result of these failures.

Plant_performance.txt file enumerates the utilization data of all the resources and material-handler.

Supervisor_performance.txt file gives the CPU times related to the computation of the control-patterns by the supervisor.

A sample set of output files for a simulation run with the given input files on a 4 machine manufacturing cell for a total of 100 parts, with a failure rate of 0.1 for each of the machine, are given below:

  1. Plant_sequence.txt .
  2. Supervisor_sequence.txt .
  3. Part_sequence.txt .
  4. Failures_report.txt .
  5. Plant_performance.txt .
  6. Supervisor_performance.txt .

*** Please send problems and feedback to:

Ali Yalcin,
Department of Industrial and Management Engineering,
University of South Florida, Tampa.

URL : http://www.eng.usf.edu/~ayalcin/
E-mail : ayalcin@eng.usf.edu
Tel :
Fax :