Scheduling Engine
The scheduling engine evaluates and maintains the production schedule, which results in automatic updates of estimated start/end dates on each order and production run. These calculations are based on the real-time status of current production runs, ensuring that scheduled projections remain as accurate as possible. For example, the progress of the active production run for a line influences the estimated start of the next run in the schedule.
Upon initial scheduling of a production run, the estimated dates of the run are determined as follows:
- Estimated Start Date: Set to the Estimated End Date of the preceding production run on the line.
- Estimated End Date: Set to the Estimated Start Date plus the calculated duration of the production run.
The estimated duration of a run is calculated using one of the following formulas:
- For a run that has a cycle time defined:
(Quantity to Product * Target Cycle Time * Budget Efficiency) + Target Setup Time- For a run that has a fixed time defined:
((Quantity to Product / Max Production Capacity) * Target Fixed Time) + Target Setup Time
- The master data fields Budget Efficiency (on Line Type) and Maximum Production Capacity (on Line) are obtained from the line that the production run is scheduled on.
- The fields for Target Cycle Time / Target Fixed Time and Target Setup Time are taken from the values set on the production run, which are initially sourced from the production order’s routing definition.
The application schedules production runs sequentially on each line. While building the schedule, the engine considers:
- Shift calendars, which define working and non-working periods. Production runs are never planned to start in non-working periods. See .
- Maintenance calendars (if configured), which identify planned maintenance activities that make a line unavailable. See, Maintenance Procedures.
Production runs can be planned through a non-working period, provided the run starts before the non-working period begins. In this scenario, the estimated duration is increased to reflect the non-working period.
If expected co-production is enabled, recipe orders associated with planned orders are also included in scheduling calculations.
If a job must not be scheduled to start before a specific date because, for example, the job is waiting for material, you can define an Earliest Start Date/Time. The scheduling engine considers this value when calculating estimated dates.
After the initial schedule is created, the scheduling engine periodically reassesses production progress and updates estimated dates as required. For a production run that is currently running, the assessment of the estimated remaining duration is performed, and if required the dependent schedule of production runs is refreshed.
The following logic is used for each running production run:
- If the produced quantity exceeds the ordered quantity:
- New Estimated End Date = Current Date/Time + 5% of Overall Run Duration
- If the progress is 100% (order quantity met fully):
- New Estimated End Date = Current Date/Time
- If the progress is at least 40% and less than 100% (not over-producing):
- Recalculate the Estimated End Date using the original calculation
- Replace Target Cycle Time with Actual Cycle Time in the calculation
- Compare the recalculated value with the current Estimated End Date.
- Update Estimated End Date only if the difference exceeds the greater of 10% of the production run duration, or and 10 minutes.
- If the progress is less than 40%:
- Recalculate Estimated End Date as per original calculation
- Update estimated End Date with the recalculated value
After calculating a revised estimated end date, the scheduling engine applies:
- Any scheduling dependencies or delays.
- Any defined Earliest Start Date or Time constraints.
If the revised Estimated End Date differs by at least 10% or 10 minutes from the previous estimate, the scheduling engine automatically recalculates the estimated dates of dependent production runs scheduled on the same production line. This ensures that the overall production schedule remains aligned with current production conditions and reflects the latest execution performance.