One of the most important and interesting results in a simulation model is the time that Work Items spend in the overall process. In SIMUL8, this information is readily available on the End Point Results tab that provides the user with the minimum, average and maximum time work items spend in the simulation.
Although variability of work items’ time in the system is commonly determined directly by the distribution around the process times of the activities, in more complex situations variable results might also be due to differences in how quickly different resource types process a Work Item. For example, differently skilled staff or machines that have different process times due to machine degradation or other quality differences.
Some of our users have asked us about how to capture the time-in-system result differences that occur depending on the resource that processed a work item. Or in other words, they want to do a more detailed analysis on how less skilled resources can affect the overall process time results.
We can easily capture this level of detail in SIMUL8. In the below example simulation, we first create a Resource Pool and allocate both, Resource: Slow and Resource: Fast, to this pool (for more information on how to set up a resource pool, see our Help Files). With a Resource Pool we implement the logic that either one of the resources is chosen, depending on their availability and the pool’s priority settings. This is different to assigning both resources to an activity directly, in that case we need both resources to be available to process a work item.
Next, we assign different activity timings depending on whether Resource: Slow or Resource: Fast is used. In our example, the first requires 40 minutes (on average) to process a Work Item at Activity 1 and Activity 2, whereas the fast resource can finish work (on average) in 10 minutes at both activities. We can adjust the timings specific to a resource on the Timing panel by choosing a resource from the pool list and ticking the box “[timing] depends on resource”. The standard SIMUL8 timing dialog will pop up and we can set the timings.
Then, for Activity 1 and Activity 2 we use the Visual Logic code on After Loading as shown below. By calling this code on After Loading, this Visual Logic is executed every time a work item enters either Activity 1 or Activity 2.
The command “Get Held Resource Count” returns the quantity of a particular resource (here, either Resource: Slow or Resource: Fast) that is currently held by a current Work Item to a global variable. The parameters are the global data item, which counts the resources held, and the name of the resource that is held. As a result, each time a work item enters either Activity 1 or Activity 2, we can check whether currently Resource: Slow is in use (i.e. the count is above 0) before we check whether Resource: Fast is used. Given that one resource has to be in use for the Work Item to be processed and only one of them can be used, we then assign a label value of one or two to the label lbl_ResUse depending on which resource has processed the work item.
Finally, we then use SIMUL8’s built-in functionality of segregating results by label where the chosen label is lbl_ResUse. You can learn more about setting up results segregation in a previous SIMUL8 tip post.
We can see below how in this example the overall result of the average time in system is determined by the difference of the resources’ timings.
This can be valuable information for decision making and helps you to better what influences overall process times.
We hope that you enjoyed this SIMUL8 tip and if you have any questions on how to use a feature, please get in touch with our support team.