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