I've been working with SIMUL8 since 1994 and, for as long as I can remember, SIMUL8 has treated work center changeovers as an extension of the work center's process time.
The changeover requirement is detected as a work item enters a work center. At this moment, the work center can check label values, check the number of items processed (or the amount of working time) since the last changeover and determine if a changeover is required before starting the next work item.
Since changeovers were introduced, SIMUL8 added:
- the changeover result so we could evaluate what percentage of time a work center spent in changeover
- resource requirements for changeovers
- a Visual Logic event at the end of changeover (On State Change)
These additions have all been great, but we are still left with the fact that a changeover occurs at the beginning of a work center's process time. This means we need the next work item to trigger the changeover. But what if we want to use changeover to model cleanup or some other post-process time event?
Our frequent work in healthcare provides several good examples of this situation. Sometimes a pre-process changeover just can't accurately reflect the true process. Imagine that a trauma center's operating room has been left a mess from the previous patient. Would the staff wait until the next trauma patient arrives to clean and prep the room? Of course not. To do so would mean that the staff has both failed to make use of the free time between patients and, worse, risks making a potentially critical patient wait to receive care. Instead, staff would initiate the cleaning process as soon as the previous patient has left the room.
So how can we model this in SIMUL8 given that changeover times are tied to the next patient by default? Simple - we trick the work center into initiating the changeover sequence ealier. One easy solution is to create a "change over" work item to pass through the work center after each "patient" is compete. Using the On Work Complete Visual Logic, simply use the "Add work to Queue" visual logic command to create and add a new work item to the appropriate queue. Next set a label on the newly created work item to indicate that it is a "changeover" work item.
When a work item arrives into the work center use Visual Logic After Loading Work to determine if the item represents a "patient" or a "changeover". If it is a "Patient", set the work center's operation time accordingly and the changeover time to zero. If the item is a changeover, set the operation time to zero and the changeover accordingly. When the item is complete, route the "changeover" to an exit point, and the "patient" to the next step in the process.
This solution will ensure that any changeover (i.e. cleaning) required will occur immediately after the previous process time completes. It also has the advantage of keeping the working percent and changeover percent results correct. You should keep in mind, however, that the number of work items completed result at the work center will reflect twice the number of patients, as it will have one count for each patient plus one count for each changeover.
This example illustrates a lesson that we have seen so often in our years of using SIMUL8 for complex problems - just because there may not be an immediate built-in dialog or check box to handle a given situation, that doesn't mean it can't be modeled with SIMUL8. With a little creativity and SIMUL8's powerful built-in programming capabilities, you can conquer just about any modeling challenge. And don't forget that you can always ask us for help if you get stuck!