
- •Table of Contents
- •Chapter 1. Using GPSS World
- •Lesson 1 - The GPSS World Program
- •Lesson 2 - Running a Simulation
- •Lesson 3 - Problems
- •Lesson 4 - The Text Editor
- •Lesson 6 - The ADVANCE Block
- •Lesson 9 - GPSS World Commands
- •Lesson 10 - Manual Simulation
- •Lesson 11 - The Graphics Windows
- •Lesson 12 - Reading from and Writing to External Files
- •Lesson 14 - Reports
- •Lesson 15 - Session Journaling
- •Lesson 16 - Continuous Modeling
- •Lesson 17 - PLUS
- •Lesson 19 - Experiments
- •Chapter 2. Applications
- •1. TURNSTIL.GPS
- •2. TELEPHON.GPS
- •3. PERIODIC.GPS
- •4. TVREPAIR.GPS
- •5. QCONTROL.GPS
- •6. ORDERPNT.GPS
- •7. MANUFACT.GPS
- •8. TEXTILE.GPS
- •9. OILDEPOT.GPS
- •10. ASSEMBLY.GPS
- •11. ROBOTFMS.GPS
- •12. BICYCLE.GPS
- •13. STOCKCTL.GPS
- •14. LOCKSIMN.GPS
- •15. FOUNDRY.GPS
- •16. TAPEPREP.GPS
- •17. TRAFFIC.GPS
- •18. POWDER.GPS
- •19. QTHEORY.GPS
- •20. SUPERMRK.GPS
- •21. SHIPPORT.GPS
- •22. EXCHANGE.GPS
- •23. FMSMODEL.GPS
- •24. ETHERNET.GPS
- •25. PREDATOR.GPS

23. FMSMODEL.GPS
Simulation of a Flexible Manufacturing System
Two vertical computer numerical control (CNC) machining centers, one horizontal CNC machining center, and a 3-dimensional inspection machine, are linked to form a flexible manufacturing system (FMS). The machines are served by automatically guided vehicles (AGVs) which follow an inductive wire embedded in the floor.
Components, fitted to an appropriate fixture, arrive at the arrival station in random order, equally probable, every 12±1 minutes. Sixteen categories of jobs are processed. Each component takes a different machining and inspection time given by a Function called ‘Product’ defined in the model below and based on the following table.
Machining Time
Job |
Type |
1 |
2 |
3 |
4 |
5 6 |
7 |
8 |
|
|
|
|
|
Time |
600 |
700 |
800 |
900 |
1000 |
1100 |
1200 |
1300 |
|
||||
Job |
Type |
9 |
10 11 |
12 |
13 |
14 |
15 16 |
|
|
||||
Time |
1400 |
|
1500 |
1600 |
1700 |
1800 |
1900 |
2000 |
2100 |
One robot loads and unloads components and fixtures to and from the AGVs at the arrival station and finished parts area. A layout of the The robot, machine tools, and automatically guided vehicles are controlled by a central computer.
Figure 23—1. The AGV System.
The robot, machine tools, and automatically guided vehicles are controlled by a central computer.
∙Thirty-five percent of components are machined on Machine1.
∙Forty-five percent of components are machined on Machine2.
∙Twenty percent of components are machined on Machine3.
However, 15% of Machine1 jobs and 10% of Machine2 jobs are subsequently machined on Machine3. Jobs consigned originally to machine 3 are machined solely on that machine. Finally, 4% of all components are inspected at random
on Machine4.
The wire in the floor guiding vehicles is divided into fifteen 10-meter sections represented by Facilities 1 to 15. The guided vehicles travel at an average speed of 0.5 meters per second, including loading and unloading times.
1.Simulate the operation of the FMS system for 15 days.
2.Determine the utilization of the machine tools.
3.Find the transit time of components through the production system and the in-process storage.
4.Determine the appropriate number of AGVs for the proposed workload in the FMS.
; GPSS World Sample File - FMSMODEL.GPS, by Gerard F. Cummings
***********************************************************************
**
*AGV Model in FMS Factory *
**
***********************************************************************
*Time unit is one second
***********************************************************************
*P1 =1 Means machine 1 is req’d first
*P2 =2 Means " 2 " " "
*P3 =3 Means " 3 " " "
***********************************************************************
RMULT 71143
Transit TABLE M1,4000,4000,8 ;Transit time of jobs Type VARIABLE RN1@16+1 ;Categories of jobs processed AGV STORAGE 2
Inspect FUNCTION P4,L16 1,1200/2,1350/3,1500/4,1650/5,1800/6,1950/7,2100/8,2250/9,2400/10,2550 11,2700/12,2850/13,3000/14,3150/15,3300/16,3450
Product FUNCTION P4,L16 1,600/2,700/3,800/4,900/5,1000/6,1100/7,1200/8,1300/9,1400/10,1500 11,1600/12,1700/13,1800/14,1900/15,2000/16,2100
Mach1 FUNCTION RN1,D3
.35,1/.80,2/1.0,3
***********************************************************************
GENERATE 720,60 ;Xacts are jobs QUEUE Arrival ;Arrival area queue
ASSIGN 5,FN$Mach1 ;P5 is and index to machines
*——Dummy values are put into parameters 1,2, and 3 so that they *——will be set up to receive the appropriate value in ASSIGN P5,P5. *——When P1, P2 or P3 are tested in various test Blocks they must *——already exist.
ASSIGN 1,6 ;Dummy value ASSIGN 2,6 ;Dummy value ASSIGN 3,6 ;Dummy value
*——The contents of parameter 5 is put into the parameter with the *——same number as the contents value(e.g. If parameter 5 has a *——value of 3, a 3 is put into parameter 3 indicating processing *——should start on machine 3.
ASSIGN P5,P5 ;P1=1, P2=2, or P3=3 ASSIGN 4,V$Type ;P4 = Complexity of job ENTER AGV ;GET AN AGV
SEIZE Robot ;Get robot
ADVANCE 60 ;Time to get an AGV
DEPART Arrival ;Depart arrival queue ADVANCE 45 ;Robot load job on AGV RELEASE Robot ;Free the robot
SEIZE 1 ;Get section 1 of track ADVANCE 20 ;20 second to move 10 M RELEASE 1 ;Free section 1 of track TEST E P1,1,Skipone ;Machine 1 req’d?
TRANSFER .10,,Next3 ;10% also go to Machine 3 First SEIZE 3 ;Get section 3 of track ADVANCE 20 ;Move 10 meters
LEAVE AGV ;Free AGV
QUEUE One ;Queue for machine 1 RELEASE 3 ;Free section 3 of track SEIZE Machine1 ;Get machine 1 DEPART One ;Depart the queue
ADVANCE FN$Product ;Machining on vertical CNC RELEASE Machine1 ;Machining center
QUEUE Wipone ;Join work-in-progress ENTER AGV ;Get an AGV
ADVANCE 60 ;Time to get an AGV
DEPART Wipone ;Depart work-in-progress
***********************************************************************
Second SEIZE 4 ;Get section 4 of track ADVANCE 20 ;10 section to move 10 M RELEASE 4 ;Release section 4
TEST E P2,2,Skiptwo ;Is machine 2 req’d? TRANSFER .15,,Next4 ;15% also go to machine 3 Andthree SEIZE 6 ;Get section 6 of track ADVANCE 20 ;Move 10 meters
LEAVE AGV ;Free the AGV QUEUE Two ;JOIN QUEUE TWO
RELEASE 6 ;Free section 6 of track SEIZE Machine2 ;Get machine 2 DEPART Two ;Depart queue 2
ADVANCE FN$Product ;Process on horizontal RELEASE Machine2 ;CNC machining center QUEUE Wiptwo ;Queue work-in-progress ENTER AGV ;Get an AGV
ADVANCE 60 ;Time to get an AGV
DEPART Wiptwo ;Depart work-in-progress
***********************************************************************
Third TEST E P3,3,Skipthree ;Is machine 3 req’d? SEIZE 8 ;Get section 8 of track
ADVANCE 20 ;Move 10 meters LEAVE AGV ;Free AGV
QUEUE Three ;Join queue three RELEASE 8 ;Free section 8 of track SEIZE Machine3 ;Get machine 3 DEPART Three ;Depart queue three
ADVANCE FN$Product ;Process on CNC lathe RELEASE Machine3 ;Free turning center QUEUE Wipthree ;Queue work in progress ENTER AGV ;Get an AGV
ADVANCE 60 ;Time for AGV to arrive
DEPART Wipthree ;Depart work-in-progress
***********************************************************************
Fourth SEIZE 9 ;Get section 9 of track ADVANCE 20 ;Move 10 meters
RELEASE 9 ;Free section 9 of track
TRANSFER .960,,Skipfour ;4% Of components inspected SEIZE 11 ;Get section 11 of track
ADVANCE 20 ;Move 10 meters LEAVE AGV ;Free the AGV QUEUE Four ;Join queue four
RELEASE 11 ;Free section 11 of track SEIZE Machine4 ;Get Machine 4 DEPART Four ;Depart queue 4
ADVANCE FN$Inspect ;Inspection on 3D machine RELEASE Machine4 ;Release machine 4
QUEUE Wipfour ;Join work-in-progress ENTER AGV ;Get and AGV
ADVANCE 60 ;Time for AGV to arrive DEPART Wipfour ;Depart work-in-progress
***********************************************************************
Fifth SEIZE 12 ;Get section 12 of track ADVANCE 20 ;Move 10 meters
RELEASE 12 ;Free section 12 of track SEIZE Robot ;Get a robot
ADVANCE 45 ;Robot unloads job from AGV RELEASE Robot ;Free the robot TABULATE Transit ;Record transit time SAVEVALUE P4+,1 ;One job finished SEIZE 13 ;Get section 13 of track ADVANCE 20 ;Recirculate AGV
RELEASE 13 ;Free section 13 of track SEIZE 14 ;Get section 14 of track ADVANCE 20 ;Move 10 meters
RELEASE 14 ;Free section 14 of track SEIZE 15 ;Get section 15 of track ADVANCE 20 ;Move 10 meters
RELEASE 15 ;Free section 15 of track LEAVE AGV ;Free AGV
TERMINATE ;Destroy xact
***********************************************************************
Next3 ASSIGN 3,3 ;10% Use machine 1 and 3 TRANSFER First
Next4 ASSIGN 3,3 ;15% Use machine 2 and 3 TRANSFER ,Andthree
***********************************************************************
Skipone SEIZE 2 ;Seize section 2 of track ADVANCE 20 ;Move 10 meters
RELEASE 2 ;Free section 2 of track TRANSFER ,Second
***********************************************************************
Skiptwo SEIZE 5 ;Get section 5 of track ADVANCE 20 ;Move 10 meters
RELEASE 5 ;Free section 5 of track
TRANSFER ,Third
***********************************************************************
Skipthree SEIZE 7 ;Get section 7 of track ADVANCE 20 ;Move 10 meters
RELEASE 7 ;Free section 7 of track TRANSFER ,Fourth
***********************************************************************
Skipfour SEIZE 10 ;Get section 10 of track ADVANCE 20 ;Move 10 meters
RELEASE 10 ;Free section 10 of track TRANSFER ,Fifth
***********************************************************************
GENERATE 28800 ;Xact every day TERMINATE 1 ;Destroy timer xact
The model is organized into several segments. After the non Block Entities are defined, there are two more model segments. Transactions in the top segment represent jobs, those in the bottom segment time the simulation by decrementing the Termination Count every simulated day.
Transactions representing jobs acquire attributes by passing through ASSIGN Blocks, then serially acquire an AGV, sections of track, a robot, and other production machines, as needed.
To run the simulation and create a Standard Report,
CHOOSE File / Open
and in the dialog box
SELECT FMSMODEL
and then
SELECT Open
Next, create the simulation
CHOOSE Command / Create Simulation
then
CHOOSE Command / START
and in the dialog box, replace the 1.
TYPE 15
SELECT OK
The simulation will end when 15 transactions have entered the TERMINATE 1 Block. This represents 15 days of operation.
When the simulation ends, GPSS World writes a report to the default report file, FMSModel.1.1. As discussed in Chapter 1, the Report extension will vary depending on saved simulations and previously existing reports. For our purposes, we will assume that this is the first time the simulation has been created and run giving an extension of 1.1.
This report will be automatically displayed in a window. If you close the window, you can reopen it by using the GPSS World File / Open in the Main Menu. Then you should choose Report in the "Files of type" drop down box at the
bottom of the window. GPSS World reports are written in a special format. If you wish to edit the report, you will have to copy its contents to the clipboard and from there into a word processor. You will not be able to open the file directly in a word processor.
The Standard Report gives the utilizations of the machine tools. Machine2 had the highest utilization (80%).
The distribution of completion times is given in the Table Transit. The average completion time was about 3213.8 seconds, with a standard deviation of 1960.4.
Let us now explore the ending condition of the simulation which generated the Standard Report above. If you are not at the end of the simulation, please translate the model and run it again.
Now let’s open some graphics windows.
CHOOSE Window / Simulation Window / Storages Window
This is the Storages Window. It gives utilization and queuing information on the AGVs. They encountered a 31% utilization. It would appear that there are sufficient AGVs. Later, we will repeat the simulation using 1 AGV instead of 2.
We’ll look at the histogram for completion times.
CHOOSE Window / Simulation Window / Table Window and in the drop-down box in the dialog box, TRANSIT is already selected.