How Event-based Scheduling Works
The Scheduler creates a simulation of what will happen given all the conditions and data you provide to it. When running this simulation, the Scheduler views all events that happen at a given time. Then it moves forward to the next point in time where any events occur. Thus, each time you run the schedule, all demands (jobs, estimates, production schedules, MPS orders, and APS planned orders) are rescheduled.
After the scheduling run is complete, the Scheduler generates output data that summarize how well your simulated schedule performed. For example, if an operation was idle for an hour, the summary information helps you determine why (for example, maybe the required resource was busy). You can then adjust your data to make the schedule more efficient, such as by adjusting the start date of an earlier job to free the resource faster. When the schedule results are acceptable, you can print a resource dispatch list to give to your shop floor personnel to execute the schedule.
About the Scheduler Trace Log
The Trace log records all events the Scheduler processes (when the Trace log is configured to record at the "Extensive" detail level on the Shop Floor Control Parameters form). In your day-to-day Scheduler activities, the trace log is useful only for troubleshooting. However, it serves as a good step-by-step illustration of how the Scheduler addresses each event in a schedule. Therefore, the events for the example in this help topic are illustrated in a format similar to what you would see in the trace log (they have been simplified for clarity in this example).
Event Processing Example
In this simple example, observe the Scheduler's view of the events. Assume these conditions:
- Item BK-110 has a routing with one operation, Oper110.
- The operation Oper110 requires a resource from resource group ST1.
- ST1 contains one resource, Crew1. The resource is on-shift for the time illustrated in the example.
- Operation Oper110 has a run duration of 15 minutes. Run duration is the time to complete a load on the operation. Depending on the Scheduler Rule defined on the operation, this could represent a fixed time or the time per piece. In this example, the run duration represents the time per piece.
- Job110-0000 for BK-110 is released on 2/27/2004 at 8:00 a.m. for a quantity of 3.
- The schedule starts on 2/27/2004 at 8:00 a.m.
Event | Description |
---|---|
SCHEDULE TIME ADVANCE TO 02/27/2004 8:00:00 | The Scheduler moves to the time the first events occur (the schedule itself may have been set to start earlier). |
02/27/2004 8:00:00
START OF JOB ARRIVAL EVENT FOR JOB Job110-0000 RELEASING LOADS FOR JOB Job110-0000 CREATING LOAD 1, SIZE 3 OPERATION Oper110, SELECTED AS FIRST |
The job is released and the Scheduler places the job quantity into a unit called a load. In most situations, the load contains the entire job quantity (in some cases the job quantity can be broken into several loads). The first job operation in the routing is identified. |
02/27/2004 8:00:00
START OF OPERATION EVENT PROCESSING OPERATION Oper110, LOAD 1 OF JOB Job110-0000 SCHEDULING END OF MOVE FOR OPERATION AT 02/27/2004 8:00:00 |
If any Move time had been defined for this operation, the Scheduler would have calculated its duration here. In this example, the operation is not defined with any Move time. |
02/27/2004 8:00:00
START OF OPERATION EVENT PROCESSING OPERATION Oper110, LOAD 1 OF JOB Job110-0000 REQUESTING RESOURCE GROUP ST1 REQUESTING RESOURCE Crew1 FROM GROUP ST1 ALLOCATION NOT COMPLETE |
The Scheduler forces the first operation event to delay allocating
the resource until the resource can check its request queue for
any pending requests. A request is entered into the resource's
request queue.
See Using Scheduler Rules for more information about request queues. This delay covers the possibility that a higher-priority operation arrives at the same time as a lower-priority operation, allowing the more critical operation to allocate the resource. |
02/27/2004 8:00:00
START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew1 PROCESSING OPERATION Oper110, LOAD 1 OF JOB Job110-0000 ALLOCATING 1 UNITS FROM RESOURCE GROUP ST1 CANCELING REQUEST FOR RESOURCE GROUP ST1 CANCELING REQUEST FOR RESOURCE Crew1 FROM GROUP ST1 ALLOCATING RESOURCE Crew1 FROM GROUP ST1 ALLOCATION COMPLETE SETUP NOT NECESSARY OR OF ZERO DURATION SCHEDULING END OF SERVICE FOR OPERATION AT 02/27/2004 8:45:00 |
The Crew1 resource checks its request queue for any pending
requests and finds the request from OperBK001's load.
The Scheduler allocates the Crew1 resource from the ST1 resource group and calculates the time when the operation will be complete. |
SCHEDULE TIME ADVANCE TO 02/27/2004 8:45:00 | The Scheduler moves to the time when the next events occur. |
02/27/2004 8:45:00
START OF OPERATION EVENT PROCESSING OPERATION Oper110, LOAD 1 OF JOB Job110-0000 FREEING 1 UNITS OF RESOURCE GROUP ST1 FREEING RESOURCE Crew1 FROM GROUP ST1 RESOURCE Crew1 IS NOW IDLE SCHEDULING END OF COOL FOR OPERATION AT 02/27/2004 8:45:00 |
The operation completes and releases ("frees") the
Crew1 resource.
The Crew1 resource is now idle and available for any other operations to allocate it. If any Finish time (that is, cooling time) had been defined for this operation, the Scheduler would have calculated its duration here. In this example, there is no additional post-operation processing. |
02/27/2004 8:45:00 START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew1 REQUEST QUEUE EMPTY | When a resource is freed, it checks whether any other operations have requested it while it was busy. In this example, there are no pending requests for the resource. |
02/27/2004 8:45:00
START OF OPERATION EVENT PROCESSING OPERATION Oper110, LOAD 1 OF JOB Job110-0000 END OF PROCESS FOUND SELECTING NEXT OPERATION END OF PROCESS FOR LOAD 1 OF JOB Job110-0000 0 LOADS OUTSTANDING JOB Job110-0000 COMPLETE |
Each operation specifies the next operation in the routing. In this example, the Scheduler finds no next operation, so it completes the job. |
SCHEDULE HALTED BECAUSE THERE WERE NO MORE JOBS TO PROCESS
SCHEDULE END AT 02/27/2004 8:45:00 |
The Schedule is now complete. |