Paul Toone avatar image
Paul Toone posted

Order of Events   

As flowitems move through your model, they enter and exit Fixed Resource objects. Each flowitem will follow a path similar to the one displayed above. This path is for a Processor object.


Consider a flowitem entering a Processor. The following images show where each trigger and picklist can be accessed through the Processor's Properties window. Some of these can also be accessed through the Quick Properties.

Step 1: OnEntry

When the Entry Trigger fires, the flowitem has already been moved into the Processor object, so the content of the Processor increases by one. Code can be added to the OnEntry trigger to customize what occurs when the flowitem enters.

Step 2: Setup Time

The next segment of code to fire is the Setup Time. This picklist gives you the option to define the number of model time units it takes for the flowitem to be "setup" in the Processor.

Step 3: Pick Operator

If the "Use Operator(s) for Setup box is checked, the Pick Operator code will fire, calling to a TaskExecuter object. There is a delay associated with calling an operator as the operator must move from their current location to the Processor. The delay may lengthen if there are no available operators when the Pick Operator code is fired.

Step 4: OnSetupFinish

Once setup is complete, the Setup Finish Trigger will fire.

Step 5: Process Time

Similar to the Setup Time, this picklist allows you to define a Process Time for the flowitem.

Step 6: Pick Operator

If the "Use Operator(s) for Process" is checked, the Pick Operator will fire. If operators were used for the Setup and Process, and "Use Setup Operator(s) for both Setup and Process" is unchecked, then this picklist will fire twice, once to call a setup operator and then again to call a process operator. Otherwise, this picklist will only be called once.

Step 7: OnProcessFinish

Once setup is complete, the Process Finish Trigger will fire.

Step 8: Send to Port

At this point, the flowitem is ready to leave the Processor, or FixedResource object. The Send To Port will fire and attempt to find a destination for the flowitem. The possible delay happens if the object is unable to find an available destination for the flowitem. This typically happens when downstream objects are full and have no available space to accept the flowitem. It may also be because downstream FixedResource objects are stopped, or their inputs are closed.

Step 9: Use Transport

If "Use Transport" is checked, and once a destination has been founding using the Send to Port, the Use Transport picklist with fire to call a Task Executer to the Processor to transport the item from the Processor to its destination. Again, this will result in a delay as an available operator is found and moves to the Processor.

Step 10: OnExit

Finally, the Exit Trigger fires. When this trigger fires, the flowitem has not yet exited the Processor, so the content of the processor remains unchanged. Once this trigger is complete, the flowitem will be moved from the processor (decreasing its content by 1) and into the Task Executer or downstream Fixed Resource object. If you need code to be executed when an item leaves a FixedResource, but it needs to be fired immediately following the item actually be moved from the object, call senddelayedmessage() with a delay time of 0.

flexsim users manual
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.



paul.t contributed to this article


FlexSim 2016.1