FlexSim Supplemental Training part of the FlexSim Education Initiative: • Textbook: Applied Simulation, modeling and Analysis using FlexSim – Educator support materials – Video insight series • Supplemental training 4 week series – Introduction, In-depth topics • FlexSim application aids (help menu) – User Manual – Getting Started tutorials • FlexSim formal training courses – Basic, Advanced, Specialized 20121029 1 Example Model- Overview • Introduction of common modelling concepts – – – – – – Dynamic routing decisions Itemtypes Labels Statistical Distributions Object Triggers Global Tables 2 • Purpose Model Description – Learn how to assign and use labels on flowitems for routing and processing purposes. Learn how to use an empirical distribution to assign itemtypes. • Description – Parts arrive in a queue exponentially every 30 seconds. There are four part types (1,2,3,4) distributed (20%, 30%, 40%, 10%) respectively (see dempirical in Flexsim Command Summary). – The parts are processed on one of four machines. Each machine is dedicated to a single part type. The processing times at each machine is uniform(100,120) seconds for first time parts, and uniform(120,130) seconds for rework parts. – After the parts are machined, they are put in a queue and wait to be tested. The test time is a constant 10 seconds. Parts that pass, leave the model, failed parts are routed back to the first queue to be reworked. 10% of the parts fail. – Parts being reworked are given priority in the queue. 3 Model Layout 4 Model Flow – From the Source to the Sink Requirements: • Four part types • Each part type has a dedicated machine • Randomly assign part types Concepts: • • • • Itemtype Attribute Send to Port picklist options Statistical distributions Object triggers 5 Understanding the Basic Pick List Option Name Choose an option or type an expression directly into the field Edit the selected option graphically (template editing) Edit Code for this option 6 Editing Picklists • Graphical pop-up windows will guide you in editing picklist options. Different options will require different information to use correctly 7 Using Distributions What you need to know: • The name of the distribution • The parameters it requires – Check the documentation! • Where to use it! Example: dempirical(“TableName”) See the commands help from within Flexsim for more information 8 Order of Execution (pushed flowitem) flowitem enters OnEntry Pick Operator Process Time delay OnProcessFinish OnExit delay Setup Time Pick Operator OnSetupFinish Use Transport delay Send To Port possible delay 9 Ex. Change Source Arrival • The statistical probability distribution which best simulates the inter-arrival pattern is an exponential distribution with a location value of 0 and a scale value of 30. 10 Itemtypes • itemtype – all flowitems have an attribute called itemtype. It’s a numeric identifier used to distinguish one “type” of flowitem from another in processing and routing decisions in a model. • Addressable to the user via getitemtype( flowitem ) 11 Concept of Triggers • When key events occur on an object, a trigger is fired. • The user may specify a variety of things to happen when a trigger fires (trigger logic). • There are triggers when a flowitem enters or exits an object. There are triggers when a process time finishes or a repair time is complete. • Each type of object has a unique set of triggers. 12 Triggers • Define and customize system behavior at a specific event occurrence. – Write/read information to/from a flowitem. – Change visual properties of flowitems or objects. – Send Messages to other objects. – Change behavior of other objects. – And much more… 13 Understanding the Trigger Pick List Trigger Name Edit** the options (template editing) Edit Code for this option **The Edit button shown will take on the “Add” icon When no options are selected for the trigger. 14 Editing Triggers • Trigger pop-up windows show all the active options for the trigger • Add or remove options with the appropriate buttons • Individual options can be editing by clicking the hide/collapse triangle • Blue Text can be edited. Tab will jump between fields. Some options have a hint window 15 Labels • labels – information can be stored on flowitems (and other modelling objects) in the form of labels. • Flowitems and other Flexsim objects can have an unlimited number of labels. • Labels have a name and data. The data may be numeric, string, list, or table. 16 • syntax Object Labels – getlabelnum( object, “labelname” ) – setlabelnum( object, “labelname” , value ) – getlabelstr( object, “labelname” ) – setlabelstr( object, “labelname” , string ) – label( object, “labelname” ) • examples – – – – – getlabelnum( item, “serialnumber” ) setlabelnum( item, “serialnumber”, 5 ) getlabelstr( current, “category” ) setlabelstr( current, “category”, “groceries” ) inc( label(item, “stepnum”), 1 ) • The increment command only works with number data 17 The Flowitem Bin • Sources create copies of objects in the Flowitem Bin • Any changes made to objects in the Bin affect the flowitems that are created by Sources • Used to create labels, set size, color, shape, etc. 18 Routing Back to the Queue Requirement: • 10% of all tested parts fail, and are sent back to the first queue awaiting rework. Concepts: • Send to Port picklist • Object Trigger Events 19 Edit Object Behavior Requirements: • Conditional process times based on items needing to be reworked • Prioritize items in the queue that need to be reworked Concepts: • Labels • Object Trigger Events • Statistical distributions 20 Questions & Bonus • Where is the bottleneck? • Can you change the color of failed parts? • Change the model to count how many times a part has failed. • Add a Dashboard to Track throughput per hour of the system. 21 Dashboards • Adds customizable charts and graphs that update in real-time with your model • Many Predesigned charts available • Using the Tracked Variables tool, also allows for the creation of user defined charts 22