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.