Title: ESI 6529 DIGITAL SIMULATION TECHNIQUES
1ESI 6529 DIGITAL SIMULATION TECHNIQUES
2TRANSPOTERS Movable devices that may be
allocated to entities. Group of similar
transporters are called sets. Individual
transporters within a set are called units. Each
unit has a specific station location in the
system and requires time to travel from one
station to the next. Examples are fork trucks,
carts, personnel, cranes, etc
3EXAMPLE 8 THE JOBSHOP REVISIT Modify the jobshop
problem in Example 7 to include the transport of
material. Assume that all parts are transported
to, from and within the shop by two workers with
the aid of hydraulic trucks. The workers move the
hand trucks at the rate of 150 feet per minute
empty and 100 feet per minute loaded. The aisle
layout and distances are shown in the following.
All distances are in feet.
4THE EXPERIMENT FILE Transp.EXP
- BEGIN
- PROJECT, Transp, CIS 441
- ATTRIBUTES ProcessTime ArrTime
- QUEUES 5
- STATIONS StaA StaB StaC StaD Last
First - RESOURCES REPEAT(Machine, 4)
- SETS MachineSet, Machine1..Machine4
- StationSet, StaA, StaB, StaC, StaD
- SEQUENCES 1, , StaA, ProcessTimeTR(1,2)
StaB, ProcessTimeTR(2,2) - StaC, ProcessTimeTR(3,2) StaD,
ProcessTimeTR(4,2) Last - 2, , StaA, ProcessTimeTR(5,2)
StaC, ProcessTimeTR(6,2) - StaB, ProcessTimeTR(7,2) Last
- 3, , StaB, ProcessTimeTR(8,2)
StaD, ProcessTimeTR(9,2) - StaC, ProcessTimeTR(10,2) Last
- PARAMETERS 1, 5, 7, 9 2, 2, 4, 5 3, 2,
5, 7 4, 6, 9, 10 5, 5, 6, 7 - 6, 4, 6, 7 7, 3, 6, 8 8, 5, 9, 11 9, 11,
12, 14 10, 6, 8, 10 - 11, .4, 1, .75, 2, 1.0, 3 12, 8
- TRANSPORTERS Handler, 2, DISTANCE(1), 150,
Last-A, First-A
5to station --gt StaB StaC
StaD Last First DISTANCES 1, 1-6,
180, 100, 250, 280, 130/
180, 130, 220, 230/
150, 180, 230/
90, 360/
410 TALLIES
Type 1 FlowTime Type 2 FlowTime Type 3
FlowTime Overall FlowTime DSTATS NQ(1), 1
Queue Length NQ(2), 2 Queue Length NQ(3),
3 Queue Length NQ(4), 4 Queue
Length NR(1), Machine 1 Util NR(2), Machine
2 Util NR(2), Machine 3 Util NR(4), Machine
4 Util NT(Handler)/MT(Handler), Handler
Util REPLICATE, 1, 0, 5280,,,480 END
6THE MODEL FILE Transp.MOD
- BEGIN
- CREATE EX(12,1) MARK(ArrTime)
- ASSIGN NSDP(11,3) MFirst
- NextSta QUEUE, 5
- REQUEST Handler(SDS)
- TRANSPORT Handler, SEQ,
0.667VT(Handler) -
- STATION, StationSet
- FREE Handler
- QUEUE, M
- SEIZE MachineSet(M)
- DELAY ProcessTime
- RELEASE MachineSet(M) NEXT(NextSta)
-
- STATION, Last
- FREE Handler
- TALLY NS, INT(ArrTime)
- TALLY Overall Flowtime, INT(ArrTime)
- DISPOSE
7Conveyors Linked cells that move in unison along
a fixed path.Each cell represents a conveyor
space that can be occupied or empty. An entity
can occupy one or more cells of the conveyor.
Access and exit points are located at
stations. Examples are belts, chains, buckets,
powered rollers, overhead conveyors,
etc. Non-Accumulating Conveyors Entire conveyor
will disengage (cease movement) when loading or
unloading an item. Spacing of individual
entities does not change while the entities are
on the conveyor.
8Example 9 The Jobshop Problem with
Non-Accumulating Conveyors
- Modify the jobshop problem described in Example
5 by replacing the transporters with
non-accumulating conveyors. The conveyor layout
is shown on the following pages. Assume that each
job leaves the conveyor and enters an infinite
buffer (waiting area) at each machine station. - The entering and exiting conveyors move at a
speed of 40 feet per minute, and the loop
conveyor moves at 50 feet per minute. Parts 1, 2,
and 3 require two feet, one foot and four feet
of conveyor space, respectively. - The interior loop conveyor periodically
experiences random breakdowns. The time between
breakdowns is exponentially distributed, with a
mean of 45 minutes. Repair times are
exponentially distributed with a mean of 5
minutes. Assume that the input and output
conveyor do not break down. - Simulate the system as before. Collect
statistics on the fraction of space that is
occupied on each conveyor, in addition to the
statistics on queue length and machine
utilization.
9First
A
B
D
C
Last
10Modeling Strategy
- Define 3 non-accumulating conveyors, called In,
Loop and Out. Use an indexed submodel to
represent the four machine centers. Define the
following four stations - Sta. No. Sta. Name Description
- 1 STAA MACHINE A
- 2 STAB MACHINE B
- 3 STAC MACHINE C
- 4 STAD MACHINE D
- 5 LEAVELOOP TRANSFER POINT, CONVEYOR
LOOP TO CONVEYOR OUT - 6 FIRST SYSTEM ENTRY POINT
- 7 ENTERLOOP TRANSFER POINT, CONVEYOR IN
TO CONVEYOR LOOP - 8 LAST SYSTEM EXIT
11Modeling Strategy (Cont.)
- Use the CONVEYORS Element to define the name,
segment set and velocity of each conveyor. - Use the SEGMENTS Element to specify the segment
lengths along each conveyor path. - Use the ACCESS Block to access the empty cells
on the conveyors. - Use the EXIT Block to remove the entities from
the conveyors and to free the occupied cells. - Add a submodel to control the Loop conveyor
breakdowns. - Create a logical entity that cycles through the
submodel, creating breakdowns at random
intervals. - Use the STOP Block to stop the Loop conveyor
when a breakdown occurs. - Use the START Block to restart the Loop conveyor
after it has been repaired.
12Engaging / Disengaging a Non-accumulating
Conveyor
- Block Action
- ACCESS Conveyor is disengaged when the required
number of cells line up with the entitys
station. Conveyor remains disengaged until
instructions are given to resume movement. - CONVEY Conveyor is engaged (if active). Entity
begins movement immediately. - EXIT Conveyor is disengaged when entity reaches
its destination. Conveyor is reengaged when
entity is removed. - STOP Stops (deactivates) the conveyor.
- START Restarts the conveyor, or a conveyor that
is initially inactive. (Does not reengage a
conveyor that has been disengaged).
13Conveyor Variables
- User - assignable
- VC(CnvID) Velocity of the conveyor CnvID
- Status
- NEC(CnvID) Number of entities currently being
conveyed on the conveyor CnvID LEC(CnvID) Tota
l length of entities currently being conveyed
on conveyor CnvID - MLC(CnvID) Length of conveyor CnvID
- ICS(CnvID) Status of conveyor CnvID (0 idle,
1 moving, - 2 blocked, 3 inactive)
- nonaccumulating conveyors only
- NEA(CnvID) Number of accumulated entities on
conveyor CnvID - CLA(CnvID) Total length of accumulated entities
on conveyor CnvID
14Experiment Listing
- BEGIN
- PROJECT, CONVEYOR JOBSHOP, CIS 441
- ATTRIBUTES PROCESSTIME ARRTIME NUMCELLS
- VARIABLES PARTSIZE(3), 2, 1, 4
- QUEUES MACHAQ MACHBQ MACHCQ MACHDQ
- LEAVELOOPQ FIRSTQ ENTERLOOPQ
- ABELTQ BBELTQ CBELTQ DBELTQ
- STATIONS STAA STAB STAC STAD LEAVELOOP
- FIRST ENTERLOOP LAST
- RESOURCES MACHINE1 MACHINE2 MACHINE3
MACHINE4 - SETS StationSet, StaA..StaD
MachineSet,Machine1..Machine4 - QueueSet, ABELTQ BBELTQ CBELTQ DBELTQ
- CONVEYORS IN, 1,40,1,A,4 LOOP, 2,50,1,A,4
OUT, 3,40,1,A,4 - SEGMENTS 1,FIRST,ENTERLOOP-90
- 2,ENTERLOOP, STAA-40, STAC-100,
- LEAVELOOP-120, STAD-30, STAB-130,
- ENTERLOOP-140
- 3,LEAVELOOP,LAST-60
15Experiment Listing
- SEQUENCES 1,,STAA, PROCESSTIMETR(1,2) STAB,
PROCESSTIMETR(2,2) - STAC, PROCESSTIMETR(3,2) STAD,
PROCESSTIMETR(4,2) - LEAVELOOP
- 2,,STAA, PROCESSTIMETR(5,2) STAC,
PROCESSTIMETR(6,2) - STAB, PROCESSTIMETR(7,2) LEAVELOOP
- 3,,STAB, PROCESSTIMETR(8,2) STAD,
PROCESSTIMETR(9,2) - STAC, PROCESSTIMETR(10,2) LEAVELOOP
- PARAMETERS 1, 5, 7, 9 2, 2, 4, 5 3, 2, 5,
7 4, 6, 9, 10 5, 5, 6, 7 6, 4, 6, 7 - 7, 3, 6, 8 8, 5, 9, 11 9, 11, 12, 14 10,
6, 8, 10 - 11, .4, 1, .75, 2, 1.0, 3 12, 8 13, 45 14,
5 - TALLIES TYPE 1 FT TYPE 2 FTTYPE 3 FTOVERALL
FLOWTIME - DSTATS LEC(IN)/MLC(IN), IN CONV. UTIL.
- LEC(LOOP)/MLC(LOOP),LOOP CONV. UTIL.
- LEC(OUT)/MLC(OUT), OUT CONV. UTIL
- REPLICATE, 1,0,5280,,,480
- END
16Model Listing
- BEGIN
- CREATE, 1 EX(12,1) MARK(ARRTIME)
- ASSIGN NSDP(11,3) ! job type
- NUMCELLSPARTSIZE(NS) ! of cells
- MFIRST entrance station
- QUEUE, FIRSTQ wait for conveyor
- ACCESS IN,NUMCELLS access In conveyor
- CONVEY IN,ENTERLOOP convey to loop
-
- STATION, ENTERLOOP loop entrance
- QUEUE, ENTERLOOP wait for space
- ACCESS LOOP,NUMCELLS access loop space
- EXIT IN,NUMCELLS exit the In conveyor
- main CONVEY LOOP, SEQ convey to machine
17Model Listing (Cont.)
- MACHINE SUBMODEL
- STATION, StationSet
- EXIT LOOP, NUMCELLS
- QUEUE, M
- SEIZE MachineSet(M)
- DELAY PROCESSTIME
- RELEASE MachineSet(M)
- QUEUE, QueueSet(M)
- ACCESS LOOP, NUMCELLS NEXT(main)
-
- LEAVE LOOP
- STATION, LEAVELOOP loop exit
- QUEUE, LEAVELOOP wait for space
- ACCESS OUT,NUMCELLS access Out conveyor
- EXIT LOOP,NUMCELLS exit Loop conveyor
- CONVEY OUT,LAST convey to Exit
-
18Model Listing (Cont.)
EXIT STATION STATION, LAST exit
station EXIT OUT,NUMCELLS exit Out
conveyor TALLY NS, INT(ARRTIME) by
jobtype TALLY OVERALL FLOWTIME, INT(ARRTIME)
overall flowtime DISPOSE LOOP CONVEYOR
BREAKDOWN SUBMODEL CREATE breakdown
entity BREAK DELAY EX(13,1) uptime STOP
LOOP breakdown DELAY EX(14,1) downtim
e START LOOP NEXT(BREAK) restart the
conveyor END
19Example A Robot Cell
- An assembly requires five parts. Three are placed
in the assembly by one robot, and the other two
by another robot. Assume that there is always a
sufficient stock of all parts. -
- The robots move at a rate of 60 ft/sec. The cell
layout is given on the following page (distances
in feet). Each robot picks up a part, then moves
to the bench staging position. After it gains
access to the bench area, it moves to the
assembly at 20 of its normal velocity. It
positions the part, moves back to the staging
position (at full velocity), relinquishes control
of the bench area, and proceeds to pick up the
next part. When an assembly is complete, the
robot moves to the input position of the first
part, and begins another cycle. All pick-up times
are triangularly distributed (2,5,8 seconds). The
time to place a part onto the assembly is also
triangularly distributed (4,8,15). - Execute the simulation for one 8-hour shift and
collect statistics on the time each robot is
waiting for access to the bench area, and the
percentage of time a robot is performing assembly
at the bench.
202
7
1
1
3
6
8
4
21Modeling Strategy
- Model each robot as a separate transporter unit.
- Create one logical entity to control robot 1, and
a second logical entity to control robot 2. - Each logical entity will cycle through a station
submodel that represents the processing of one
part. - For each pass through the submodel, the robot
will - Begin at the bench staging position (station 1 or
station 6). - Move to the part station when the robot becomes
available. - Pick up the part and move it to the bench staging
position. - Move to the assembly position when the bench
becomes free. - Position the part, then move the empty robot back
to the bench staging position. - Release the bench, then repeat the procedure for
the next part (next station). - Represent the bench assembly position as a single
capacity resource.
22Experiment Listing
- BEGIN
- PROJECT, ROBOT, ISE
- ATTRIBUTES ROBOTNOBENCHNO
- VARIABLES SIDECOUNT
- RESOURCES BENCH
- QUEUES 4
- STATIONS 8
- EXPRESSIONS 1,TRIA(2,5,8,1)
2,TRIA(4,8,15,2) - TRANSPORTERS ROBOT,2,1,60,2-A,7-A
- DISTANCES 1, 1-8, 8, 14, 8, 2, 4, 14, 14 / !
FROM STA 1 - 8,14,10,12, 22, 22 / ! FROM STA
2 - 8,16,18, 28, 28 / ! FROM STA 3
- 10,12, 22, 22 / ! FROM STA 4
- 2, 12, 12 / ! FROM STA 5
-
10, 10 / ! FROM STA 6 -
10 FROM STA 7 - REPLICATE, 1,0,28800
- END
23Model Listing
- BEGIN
- CREATE
- NxtAssy BRANCH,2 ALWAYS, GETR1 ALWAYS, GETR2
- robot 1 logic
- GetR1 ASSIGN ROBOTNO1 BENCHNO1
- ROUTE 0,2 start at station 2
- robot 2 logic
- GetR2 ASSIGN ROBOTNO2 BENCHNO6
- ROUTE 0,7 start at station 7
- station submodel
- GetRobot STATION,1-8
- QUEUE, ROBOTNO wait for robot
- ALLOCATE ROBOT(ROBOTNO)
- Loop MOVE ROBOT(ROBOTNO), M move to part
station - DELAY ED(1) pick up the part
- MOVE ROBOT(ROBOTNO), BENCHNO staging station
- QUEUE, ROBOTNO2 wait for turn on bench
- SEIZE, ROBOTNO BENCH
- MOVE ROBOT(ROBOTNO),5,0.2vt(1)
24Model Listing
- ASSIGN MM1 increment to the next part
- BRANCH,1 IF, ROBOTNO.EQ.1.AND. M.GT.4, Done1
- IF,ROBOTNO.EQ.2.AND.M.GT.8, Done2 ELSE,
Loop - Done1 ASSIGN M2 SIDECOUNTSIDECOUNT1
- NEXT(RETURN) side 1 finished
- Done2 ASSIGN M7 SIDECOUNTSIDECOUNT1 side 2
finished - Return MOVE ROBOT(ROBOTNO), M move robot to
first part - FREE ROBOT(ROBOTNO)
- BRANCH,1 IF,SIDECOUNT.EQ.2, Partout this
assembly finished - Partout ASSIGN SIDECOUNT0 restart counter
- TALLY EXIT INTERVAL, BETWEEN
- NEXT(NxtAssy) start over
- END