Lab Module 07

Learning Simio Lab Series
Lab Module 07
Simio Processes and Add-on Processes
Copyright © 2013 - Jeffrey S. Smith and Simio LLC | All Rights Reserved
1
Objectives and Outline
• Lab Objectives
– Continue learning basic Simio modeling
– Learn about processes and add-on processes
– Learn how to use stations as detached queues for model entities
• Switched from 5.87 to 5.91 in this module
• Lab Outline
–
–
–
–
Video 1 – Using Add-on Processes: TV Adjust/Inspect Model Revisited
Video 2 – Using Stations with Add-on Processes
Video 3 – Building a “Process Model”
Video 4 – Assignments
Copyright © 2013 - Jeffrey S. Smith and Simio LLC | All Rights Reserved
2
Video 1 – Using Add-on Processes: TV Adjust/Inspect Revisited
TV adjust-inspect model from Lab Module 05
Copyright © 2013 - Jeffrey S. Smith and Simio LLC | All Rights Reserved
3
Simio Processes
• A process is a set of actions that take place over time that may change the state of the system.
• In Simio a process is defined using a flowchart including steps that are executed by tokens and may
change the state of one or more elements.
• Steps perform actions such as:
– Delay by a specified time.
– Seize or release an object.
– Wait for an event to occur.
– Decide based on a probability or condition.
– Transfer an entity into a station.
– ….
Tokens
• A token may have properties and states.
• A token carries a reference to both its parent
object and associated object.
• The attributes of the associated object may
be referenced using the class name; e.g.
ModelEntity.TimeCreated
• The attributes of the parent object may be
referenced by name; e.g.
ProcessTime
In the case of entity
visits the associated
object is the visiting
entity.
Associated
Object
If the process is being
executed inside the Server,
then the Server would be
the parent object.
Parent Object
Tokens
Process Types
• A standard process is a Simio-defined
process that is automatically executed by the
Simio engine. For example OnRunInitialized is
executed by Simio for each object on initialization.
– A decision process is a standard process used by the engine to ask the object to return a True/False
decision (e.g., Will you pick me up?). Decision processes cannot have time delays.
• An add-on process is a user-defined process that is incorporated into the model of an
object to allow the user of that object to insert special logic.
• An event-triggered process is a user-defined process that is triggered by an event that
fires within the model (e.g., Output@Server1.Entered).
Video 2 – Using Stations With Add-on Processes
• Decoupling entity arrivals from “availability for processing”
– In this example, random arrivals are stored and periodically made available for processing.
• Key Concepts:
–
–
–
–
Stations
Add-on processes
Search step
User-defined events
Copyright © 2013 - Jeffrey S. Smith and Simio LLC | All Rights Reserved
7
Stations
A station is an element that
models a capacityconstrained location for
holding entities.
Processing
Input Buffer
Output Buffer
Copyright © 2013 - Jeffrey S. Smith and Simio LLC | All Rights Reserved
8
Video 3 – Building a “Process-Model”
• A standard process is a Simio-defined
process that is automatically executed by the
Simio engine. For example OnRunInitialized is
executed by Simio for each object on initialization.
– A decision process is a standard process used by the engine to ask the object to return a True/False
decision (e.g., Will you pick me up?). Decision processes cannot have time delays.
• An add-on process is a user-defined process that is incorporated into the model of an
object to allow the user of that object to insert special logic.
• An event-triggered process is a user-defined process that is triggered by an event that
fires within the model (e.g., Output@Server1.Entered).
Video 3 – Building a “Process-Model”
Utilization (r)
Number in System (L)
0.800
4.000
Number in Queue (Lq)
Time in System (W)
Time in Queue (Wq)
3.200
0.083
0.067
Copyright © 2013 - Jeffrey S. Smith and Simio LLC | All Rights Reserved
10
Video 4 – Assignment 1
• Assignment 1 – Modify the TV Adjust/Inspect Model so that:
– 5% of the TVs that fail inspection are immediately rejected (regardless of the number of
adjustments).
– When a TV is rejected, record a tally (to count) and destroy the entity from within the add-on
process (i.e., there is no need to transfer to the ‘Bad’ sink).
– Animate the model to make it look like a TV adjust/inspect operation.
Copyright © 2013 - Jeffrey S. Smith and Simio LLC | All Rights Reserved
11
Assignment 2: Amusement Park Ride Model
• Passengers arrive at the rate of 9.6/minute and wait in line (of course). Every 10
minutes, up to 100 passengers move from the line to a room to watch a 7-minute video
(the actual time is between 6 and 8 minutes, counting the startup and shutdown time
for the video). After the movie, the passengers line up (of course) and are loaded into
the ride. Two passengers can load at a time and loading takes between 8 and 10
seconds per passenger. After loading, the passengers start the ride. The ride has
capacity of 50 passengers and takes 5 minutes. The first video should start 15 minutes
after the park opens (passengers start arriving immediately).
• You are interested in:
–
–
–
–
Average group size (for the video);
Load process utilization
Ride process utilization
Waiting time from when a passenger arrives until s/he starts the load process
• Run your model for 10 replications of length 160 hours for your experimentation
Copyright © 2013 - Jeffrey S. Smith and Simio LLC | All Rights Reserved
12