Scheduling Tutorial#
Estimated time to read: 78 minutes
Scheduling is used to plan activities so you can achieve your goals and priorities in the time you have available. This way you will ensure maximum efficiency while minimizing or eliminating delays, unnecessary wastage, or potential interruptions.
In manufacturing, Scheduling is also the process of arranging, controlling and optimizing work because it allows you to allocate resources in the most efficient way.
Info
Scheduling is a separately licensed module.
This document will guide you on the configuration and utilization of the Scheduling module.
Overview#
The goal of the Scheduling module is to provide operational level production planning and controlling functionalities as part of the MES. The plans provided by Scheduling consist on determining a good sequencing and scheduling solution for the orders present on the shop floor, taking into consideration shop floor conditions such as equipment availability and maintenance plans, setups/changeovers, tools and labor requirements, among others.
Once the plan has been created, the system is able to release it into production. Once released, the MES will then support the execution by, for example, updating the operators' GUIs with information about the new plan.
Setting up Scheduling#
This section describes how to transition from a model working through dispatching to scheduling. As this can be quite complex, this section is divided into two sections:
- Basic Model: what changes are needed to have a functioning scheduling.
- Additional Functionalities: functionalities present within scheduling which can be implemented once the basic model is working.
In addition, there are some important considerations when transitioning to Scheduling with execution:
- First, consider how many Schedules may be needed: if two processes need to be planned independently, then they should be in separate Schedules. Consider also that having a larger number of Schedules, although implying a greater effort, may also minimize risk since any error that may affect one Schedule will impact a smaller number of processes.
- In addition, if there are multiple calendars and employee scheduling, since the model for this can be quite complex (Calendars, Shift Definition, Teams, Shift Plans, Workgroups, ...), it is advisable to design this part of the model in advance.
- Scheduling is more demanding in terms of master data than Dispatching. Many incorrect features can exist in a model working through dispatching without ever becoming apparent (for example, services connecting to unused Resources) but that will cause problems once Scheduling is activated: therefore, it is advisable not to underestimate the effort involved in cleaning and preparing the model prior to activating Scheduling.
- Since Scheduling connection with the rest of MES master data is done through the Area, it is possible to transition area by area.
- In addition, besides fragmenting the transitioning process into areas, it is possible to transition by smaller blocks: for example, going through a flow, and for each step, activating the Step and the Resources connected to it (through the Service).
- The critical moment for the transition is when the Resources are set with Dispatch Schedule Type set to Scheduling. Once this is done, the operators will no longer be able to work through dispatching. Therefore, at this point, it should be expected that the rest of the model is completely set up, that operator, supervisor and planner training has been complete and that all processes (when to replan, when to override the plan in execution, by whom, ...) have all been defined.
- Before activating schedule in production, it's recommended to use the Include in Planning functionality for the Resource that allows the Schedule Scenarios of type Planning Schedule to be used while the Resource is still working through dispatching. This can be used as a rehearsal, checking that the model is correct in the planning Schedule Scenarios, before activating the Schedule for execution in the shop floor.
Basic Model#
As scheduling requires an extensive number of other entities in the System to be correctly configured in order to function properly, this section intends to describe what steps should be taken in order to setup scheduling when the system is already working with dispatching.
Create a Schedule#
A Schedule object is the core of all the scheduling/planning process. Each Schedule is an independent planning object for the scheduling of a set of Areas, therefore the number of Schedules is determined by defining how many independent groups of Areas exist from a planning standpoint.
To create a Schedule, it is necessary to define the properties listed in the table below:
| Property | Description |
|---|---|
| Name | The Schedule's Name |
| Description | The Schedule's Description |
| Schedule mode | Schedule mode: automatic assumes that the scheduling engine will be used to create the plans |
| Owner | The Owner Role for this Schedule |
| Default view | The default size of the window for visualizing the schedule |
| Default Planning Horizon | The default planning horizon for scenarios of type Operational Accurate Schedule |
| Default Planning Horizon for Planning | The default planning horizon for scenarios of type Planning Schedule |
| Default Fast Mode Planning Horizon | The default planning horizon for scenarios of type Operational Fast Schedule |
| Default Frozen Period | The default frozen period to be applied to a Scenario |
| Time Quantum | The granularity of the schedule: the duration of jobs will be rounded to a multiple of this value. |
| Use Area Groups | A Material should only be scheduled to Resources belonging to an Area within its current Area Group. If no Resource exists within the current Material Area Group for a certain Step within its Area Group, the Material may be scheduled to any Resource of any Area Group. In this case, for the subsequent steps, the Material should be kept in the new Area Group of the Resource to which it was scheduled. |
| Holds processing mode | How to handle Materials and Durables on hold: - Include: Materials are included in scheduling and Durables are considered as available - Exclude: Materials are not included in scheduling and Durables are not considered as available |
| Future holds processing mode | How to handle Materials with Future Holds: - Ignore: Materials are scheduled up until the end of their Flow - Stop: Material are schedule up until the first Future Hold |
| Use local sorting for setups | How should setups be considered when using the Minimize Setup Times criterion: - False: scheduling will determine a global sequence of Materials with low total setup time. - True: scheduling will locally, at each resource, determine the sequence that minimizes the setup time for that Resource, with the trade-off that there might be changes in the sequence from the one in the previous step. |
| Scheduling Durables | Activates durables scheduling for all scenarios |
| Enforce Scheduled Durables at Track-In | Whether Track-In should enforce the utilization of the durables scheduled for each job |
| Schedule Personnel | Activates employee scheduling for all scenarios |
| Schedule Personnel Mode | How employees should be considered for employee scheduling: - All Certifications: an Employee is available to work with any of his/her granted Certification - Position: an Employee is only available to work with his/her Position |
| Schedule Personnel restrict to Area | If an Employee can work only on Resources of his/her Area, or any Area of the Schedule |
| Enforce Schedule Personnel at Track-In | Whether Track-In should enforce the utilization of the employees scheduled for each job |
| Use zero setup time | Whether the default setup times defined in the Resource should be considered when there is no change of the Setup Characteristic: - False: Any job scheduled to a Resource will incur the Default Setup Time - True: Only jobs which apply a change in the Setup Characteristic will carry a Setup Time This property does not apply if there is a Setup Matrix in the Resource |
| Schedule batches in risk | How batches should be scheduled: - False: If batches should always be scheduled with full occupation of the Resource's capacity - True: If batches should be scheduled only with partial occupation of the Resource's capacity if due date's are in danger |
| Terminate Scenarios on release | If when a Schedule Scenario is released all other Schedule Scenarios should be terminated |
Table: Schedule properties
Once these properties are defined, it is necessary to define the optimization criteria and untie sort rules.
Define Optimization Criteria#
These are the primary objectives for the Scheduling process. Although it is possible to combine more than one criterion so long as the weight adds up to 100%, it is advisable to keep to a single criterion, and use the untie sort rules to add some behavior on top of the criterion.
Two main scheduling behaviors are possible, depending on the criteria chosen:
- Forward Scheduling: Scheduling begins at the Material's Possible Start Date (or the Planning Horizon Start, if not defined), and runs forward until its end.
- Backwards Scheduling: Scheduling begins at the Material's Due Date and runs backwards until its start. If, by doing this, it's not possible to meet the Material Possible Start Date/Scenario Planning Horizon Start, then the Material is rescheduled through forward scheduling
The available optimization criteria are listed in the table below:
| Criterion | Type | Behavior |
|---|---|---|
| Maximize Resource Utilization | Forward | Maximizing the utilization percentage of all resources |
| Minimize Setup Times | Forward | Sorting according to Setup matrixes, to minimize the sum of setup times |
| Minimize Total Waiting Time | Forward | Minimizing the total time between consecutive steps of materials |
| Minimize Average Lateness | Forward | Sequencing based on Earliest Due Date, to minimize average delay for all Materials |
| Minimize Maximum Lateness | Forward | Minimizing the maximum delay of all materials |
| Minimize Deviation from Delivery Dates | Backwards | Minimizing the earliness of the end date of each Material to its due date |
| Maximize Priority Fulfillment | Forward | Sequencing according to due dates, taking into consideration the Materials' Priorities |
| Minimize Late Materials | Forward | Minimizing the number of late Materials |
| Minimize Quantity Weighted Cycle Time | Forward | Minimizing the total cycle time, weighted to the Materials' quantity -- the higher the quantity, the more impact its cycle time has on this criterion |
| Minimize Priority Quantity Weighted Cycle Time | Forward | Minimizing the total cycle time, weighted to the Materials' quantity and priority -- the higher the quantity and priority, the more impact its cycle time has on this criterion |
| Minimize Priority Weighted Lateness | Forward | Minimizing the total delay, weighted to the Materials' quantity -- the higher the quantity, the more impact its delay has on this criterion |
| Minimize Total Cycle Time | Forward | Minimizing the total cycle time |
Table: Scheduling optimization criteria
Define Untie Sort Rules#
The untie sort rules are used to refine the behavior imposed by the optimization criteria chosen by the user. They are used to sort materials in each step if the optimization criteria cannot prioritize one over the other. For example, if there are two materials of the same product, it may be important to sequence according to priorities and due dates, even if the main objective is to minimize the setup times is equal regardless of the chosen sequence.
The untie sort rules are defined as a list of rules to be considered sequentially, that is, the first rule in the list used and if a tie still exists, then the second rule is applied. For each rule, it is possible to choose the order in which the property is considered. As an example, for due dates, it's possible to consider from earliest to latest or vice-versa.
These available untie sort rules are listed below:
| Untie Sort Rule | Type |
|---|---|
| Possible Start Date | Ordering according to the Material's Possible Start Date |
| Priority | Ordering according to the Material's Priority |
| Execution Time | Ordering according to the Job's Execution Time |
| Material Name | Ordering according to the Materials' Name |
| Quantity | Ordering according to the Job's Quantity |
| Setup Characteristic | Ordering according to the Job / Resource Characteristic |
| Setup Time | Ordering according to the Job's Setup Time |
| Wait Time | Ordering according to the Job's Wait Time |
| Material Due Date | Ordering according to the Material's Due Date |
| Operational Due Date | Ordering according to the Component Material's Due Date, calculated internally by scheduling during BOM Explosion |
Table: Scheduling untie rules
Associate the Schedule with Areas#
The Area entity is used to define the scope of Scheduling: only Materials, Resources, and Steps that are within one of the Areas associated with the Schedule will be used for Scheduling. As such, it is necessary, in each desired Area, to establish the connection with the Schedule. It is possible to see which areas are currently connected to a Schedule in the Details tab.
Defining Calendars for Areas#
The availability of Resources is given by the Calendar Days and Shift Definitions in the Calendar associated with their Area.
Include Products in Scheduling#
For a Product's Materials and Production Orders to be considered, the Product's property Include in Scheduling must be activated.
Include Steps/Flows in Scheduling#
The Steps also have properties to trigger whether they should be considered by Scheduling. These are:
- Include in Scheduling: the Step will be considered for all three types of Schedule Scenarios
- Include in Planning: the Step will only be considered for Schedule Scenarios of type Planning Schedule.
The default configuration for a Step to be considered is to have Include in Scheduling set to true. For a Material to be part of Scheduling, besides having its Product Included in Scheduling, at least one of the Step's in its Flow must be Included in Scheduling (or Planning).
Depending on the configuration set at the Step level, two different behaviors may occur for the Step jobs. The Step jobs may become Process jobs or Filler jobs.
Process Jobs#
If the Step has Include in Scheduling set to true or the Step has Include in Planning set to true and the Schedule Scenario is of type Planning Schedule, then all the Jobs associated with that Step will be treated as Process jobs, that is, the scheduling must assign them to a resource. This requires that:
- The Step must have a valid Service Context resolution for all materials to be scheduled
- There must at least one resource included in scheduling which provides each of the required services
- Each resource must have a valid cycle definition in the Resource Process Time table for each material it may process
Filler Jobs#
If the Step has Include in Scheduling set to false, or Include in Planning set to true and the Schedule Scenario is not of type Planning Schedule, or if the Step has Is Passthrough set to true, then all the Jobs associated with that Step will be treated as Filler Jobs, that is, they do not require a resource and are relevant only due to their lead time. This requires that:
- The Step should have a valid cycle definition in the Step Product Yield and Cycle Time table.
Include Resources in Scheduling#
The way Resources are Included in Schedule depends on the Scheduling mode, as different modes may require different configurations, as can be seen in the following table:
Info
The different scheduling types are described later in this document.
| Dispatch Schedule Type | Include in Planning | Operational Accurate | Operational Accurate | Operational Fast | Planning |
|---|---|---|---|---|---|
| Scheduling | X | X | X | X | |
| Dispatching | X | X |
Table: Resource configuration and scheduling types
In short, for Operational Modes, that is, when it is intended to generate a schedule scenario, the Resource must have Dispatch Schedule Type set to Scheduling. This means that the Resource will obtain its sequence assignment from the Schedule associated with its Area and it will be indicated as the suggested Resource for planning and processing, unlike what happens by manually dispatching. You can still choose any Resource you want to use for processing but the indication of the Resource selected by the Scheduling engine will be visible and available.
Therefore it is also possible to have resources continuing to work with Dispatch Schedule Type set to Dispatching and having the Include in Planning set to true. This way, it is possible to obtain simulation plans without any disruption to the shop floor. The Include in Planning functionality is useful when transitioning from dispatching to scheduling to see, in a Planning scenario, if there are no errors in the model before setting the Dispatch Schedule Type set to Scheduling.
In addition to this condition, for a Resource to be taken into consideration, it must provide at least one of the required Services and have a Resource Process Time Context for every Material that may be allocated to it.
Materials#
Once the previous steps are executed, all Materials which have Products included in Schedule, and whose Flow has Steps included in Scheduling and which belong to Areas included in Schedule may be scheduled, given that there are resources included in scheduling which can provide the required services.
Scheduling considers the Due Date of Materials as the target end date. Should a Due Date not be defined at the Material level, the Production Order Due Date is used. If you prefer to have the Due Date at the Production Order level, consider not setting it during Release/Start, which can be accomplished by using the following configuration /Cmf/System/Configuration/OrderManagement/ProductionOrderStart/IgnoreMaterialDueDate (defaults to false).
Additional Functionalities#
Once the basic model is set up as previously described, it is possible to enable and take advantage of the different scheduling functionalities as needed.
Frozen Period#
Re-scheduling is an essential process. As both costumer demand and shop floor conditions can be quite volatile, plans quickly become obsolete. This is made even more significant by the fact that scheduling is an operational planning system, considering all the entities present in the shop-floor. As such, whether done on a regular basis to accommodate new demand and smooth out small plan deviations or carried out on a contingency basis to resolve major disturbances (Resources breakdowns, for example), re-scheduling is a necessity.
However, it is important to take into consideration that it may not be possible to put a new plan immediately into practice. There might be delays caused by issuing the new plan, for example, in retrieving the necessary components, durables or setting up the Resources. In addition, the planner may have decided to close the plan for a certain period, not being possible to change that portion of the plan in the schedule.
As such scheduling gives the option of fixing the initial part of the planning horizon to what was set in the original plan by using a Frozen Period. This is defined by default in the Schedule but can be overridden in the Schedule Scenario level.
For every Schedule Scenario Job that falls within the horizon defined by the Frozen Period, the system will attempt to preserve the original plan, by:
- Attempting to keep the Resource allocations the same as they were in the released Schedule.
- Attempting to preserve the sequence of Schedule Jobs for each Resource.
However, this approach of attempting to preserve part of the original plan may conflict with several common situations:
- Delays - whenever one or more Schedule Jobs were scheduled to be executed at a time which has, by the time of the new Planning Start Date, already passed. As these Schedule Jobs still need to be executed, scheduling will move them to a feasible moment (after the Planning Start Date). If a Frozen Period is defined, the system will attempt to preserve the sequence of Schedule Jobs for each Resource; as such, the Schedule Jobs with the most delay will be the first to be planned.
- Anticipation - should one or more Schedule Jobs that were planned for after the new Planning Start Date already have been executed in the past, then there will be periods of availability, where the corresponding Resources will be in a standby mode. In this case, and should the Frozen Period include these moments of availability, it will be assumed that resource capacity should be utilized to its fullest, and scheduling will attempt to occupy this excess capacity by anticipating other Schedule Jobs.
- Capacity Changes - major disturbances, such as, for example, a Resource breakdown, which renders part of the schedule caught by Frozen Period infeasible. This will result in the normal re-scheduling of the affected Schedule Jobs.
Resource Preference Step Group#
In certain situations, it may occur that the same Resource is able to perform a series of Steps for the same Material. Therefore, it may make sense to prioritize keeping the same Material in its current Resource for this series of Steps. This can be achieved by using the Resource Preference Step Group functionality, which ensures that the same Resource processes these Steps without sequence changes (i.e. another Material being processed in between these Steps, for example, due to having a higher priority than the original Material).
Info
This preference can be overriden in two cases: if there is a Time Constraint in risk of being violated, or if there is a Hotlot Material which needs to be processed in the Resource.
In order to implement the Resource Preference Step Group, it is necessary to:
- Set Resource as Preferred
- Define the Resource Preference Step Groups
Set Resource as Preferred#
The Resource can be set as preferred by activating the property Set Resource as Preferred - this allows the Resource to be kept as preferred for any Material, while there are Steps with a Resource Preference Step Group configured.
Define the Resource Preference Step Groups#
The Resource Preference Step Group is defined in two stages:
- Create the Resource Preference Step Groups in the ResourcePreferenceStepGroup Lookup Table.
- Associate Steps with a Resource Preference Step Group.
Once these groups are defined, then if a Material is scheduled to a Resource which has been set as preferred for a Step belonging to a Resource Preference Step Group, then that Resource should be scheduled for the remaining Step of that Resource Preference Step Group.
Machine Types#
Scheduling supports three different Scheduling Machine Types:
- Machine
- Batch
- Tunnel
Machine#
A Resource of Scheduling Type Machine is a Resource that processes a single Material at a time and does not have a capacity limitation, that is, there is no limitation to the quantity in a single Material that may be loaded into a Machine.
Machine Characteristics#
- Number of Materials concurrently: one.
- Total processing time: Fixed Cycle Time + (Quantity x Variable Cycle Time).
- Setup time: Defined setup time for the Material, either through Setup Matrixes or through the Resource's Default Setup Time property.
- Capacity: no limitation capacity.
Machine Requirements#
- The Resource Process Times table must provide either the fixed and variable cycle times or both for each required context.
Machine Example#
The picture below shows Materials A, B and C being processed in a sequence in a Resource of Scheduling Type Machine (no setup times considered).
Batch#
A Resource of Scheduling Type Batch is a Resource that can process a certain number of Materials simultaneously. As such, depending on the capacity of this Resource, it may be possible to batch together multiple Materials to be processed at once, or it may require that a certain Material be split into multiple successive batches. When a batch of Materials is placed on this type of Resource, the operation will go on for as long as the longest fixed process time of its Materials and cannot be interrupted to load/remove Materials. This model is exemplified by an oven.
Batch Characteristics#
- Number of Materials concurrently: multiple, processed simultaneously.
- Total processing time: maximum of the Fixed Cycle Time for all the Materials in one batch.
- Setup time: Default Setup Time defined at the Resource level.
- Capacity: capacitated, the capacity gives the available volume within the Resource.
- Compatibility: Materials can only be batched if their Services are compatible.
Batch Requirements#
- The Resource Process Times table must provide the fixed cycle times for each required context.
- In terms of capacity, it is necessary for the Products of all Materials to be processed in a Batch Resource to have their Capacity Class properties filled in; afterwards, the Resource Capacity smart table must be filled in, detailing in the Capacity field how many units of a certain Capacity Class fit in the Resource at once.
- In terms of compatibility:
- Materials with the same Service can always be batched together.
- Materials with Services that are compatible can always be batched together.
- Materials that are not in any of the previous situation cannot be batched together.
Batch Example#
The picture below shows the processing of four Materials within a batch Resource, if all Materials are compatible. Note that:
- For the first batch, the entire batch takes the longest processing time, that of Material A.
- For the second batch, since it is not possible to load all of Material D, given that half of the capacity was already taken by Material C, Material D is split between two batches.
Batch Additional configurations#
Since there may be a high energy cost associated with the activation of a batch Resource (for example, an industrial oven), it may be desirable to guarantee that any batch formed will occupy at least a certain level of the Resource's Capacity. This is possible using the Resource property Minimum Batch Capacity Usage; by defining a percentage here, scheduling will only be able to create batches with at least this level of capacity occupation (it is a hard constraint).
Tunnel#
A Resource of Scheduling Type Tunnel is a Resource that processes multiple Materials continuously like a production line. The ability to process uninterruptedly is given by the Service compatibility. This is also a capacitated Resource, as there is a limited length of conveyor belt to fit Materials - this determines both the quantity and the number of Materials which can occupy the Tunnel Resource at once and also the processing time for each Material.
Tunnel Characteristics#
- Number of Materials concurrently: multiple, processed sequentially with overlap (one Material may be being loaded into the conveyor as another Material is exiting).
- Total processing time: Variable Cycle Time x (1 + Quantity / Capacity). The Variable Cycle Time is time a unit takes being processed within the conveyor.
- Setup time: Defined setup time for the Material, either through Setup Matrixes or through the Resource's Default Setup Time property. Note that using the Default Setup Time may lead to the setup time being applied when the changeover is between compatible Services (for more information, check the section 3.2.3 Setups).
- Capacity: capacitated, the Capacity gives the available length within the Resource.
- Compatibility: Materials can only occupy the conveyor simultaneously if their Services are compatible.
Tunnel Requirements#
- The Resource Process Times table must provide the variable cycle times for each required context, which corresponds to how much time each unit spends inside the tunnel.
- In terms of capacity, it is necessary for the Products of all Materials to be processed in a tunnel Resource to have their Capacity Class properties filled in; afterwards, the Resource Capacity context resolution table must be filled in, detailing in the Capacity field how many units of a certain Capacity Class fit in the conveyor's length at once.
- In terms of compatibility:
- Materials with the same Service can occupy the conveyor simultaneously.
- Materials with the Services that are compatible can occupy the conveyor simultaneously.
- Materials that are not in any of the previous situation cannot occupy the conveyor simultaneously (the first Material must exit the tunnel completely before the second Material begins being loaded).
Tunnel Example#
The picture bellow shows the processing of three Materials within a tunnel Resource, with their compatibility being shown in the matrix on the top left. Note that:
- Since Materials A and B are compatible, B can begin being loaded into the Resource before A has completely left. This, however, is not true for Material C which, being incompatible with A, must wait for A to completely exit the Tunnel (it is, however, compatible with B, meaning it can be loaded while B is still in the Tunnel).
- Since the Variable Cycle Time is the time a unit takes traveling between the start and the end of the conveyor, it will take this time for the first unit of a Material to reach the end of the tunnel. From then on, the rate at which each unit exits the Resource is (Variable Cycle Time)/Capacity, taking in total Quantity x (Variable Cycle Time)/Capacity. Summing these two times, we reach the Total Process Time of Variable Cycle Time x (1 + Quantity/Capacity).
Infinite Capacity#
Besides these previous models for the Resource, it is also possible to consider a Resource having Infinite Capacity. This means that any number of Materials may be processed there simultaneously, with the Total Processing Type for each Material being calculated similarly to a Machine Resource (Fixed Cycle Time + (Quantity x Variable Cycle Time)). This can be used for processes where there are no Resource Capacity and Availability Constraints, therefore, in practice, Scheduling will only apply a lead time between the previous and following steps.
Exclude from Scheduling#
The Exclude From Scheduling property is managed manually in the Scheduling section of the Resource page by selecting Manage, which will open the Manage Resource Scheduling wizard.
Note
Exclude From Scheduling will only be active if the Dispatch Schedule Type is set to Scheduling.
Additionally, as the SEMI E10 System State does not have the Exclude From Scheduling attribute by default, your manual configurations will not be overriden when you Change State within a Resource.
However, you can configure any state of the SEMI E10 State Model to automatically manage the Exclude From Scheduling attribute if the following way:
- Go to the Administration menu and select State Models.
- Select SEMI E10 and the Flowchart view will open by default.
- Select Edit on the top ribbon so you can access the State Settings wizard for each state.
-
In the Attributes tab, use and complete the Attribute Details to include Exclude From Scheduling, which you can set as True or False.
Info
The Type of the Exclude From Scheduling attribute is Bit.
-
Select Close to complete the operation.
Info
For more information, see Manage Scheduling/Batching.
Setups#
Setups represent changes in the configuration of a certain Resource, preparing it to process another range of Materials than what was initially possible. Since these changeovers in configurations can have long durations, they are an important constraint to a production line and must be considered.
Scheduling can implement setup times when these changes occur. In addition, these configurations can also reduce the total time of setups in a certain schedule:
- Optimization criterion Minimize Total Setup Time: This optimization criterion will determine a sequencing and scheduling solution focused on having a low percentage of the Resources' availability spent on setups.
- Untie Sort Rule Setup Time: This untie sort rule is used to ensure that, at a given resource, the next job to be scheduled is the one that will cause the least setup time
- Schedule Property Use Local Sorting for Setups: This property determines the behavior of the Minimize Setup Times criterion. If set to False, scheduling will determine a global sequence of Materials with low total setup time. If set to True, scheduling will locally (at each resource) determine the sequence that minimizes the setup time for that Resource, with the trade-off that there might be changes in the sequence from the one in the previous step.
For setups to be considered by the system, the user must provide two inputs:
- Setup Characteristics - how to recognize a change in configuration
- Setup Times - how long the change takes
Implementing Setup Characteristics#
Firstly, for scheduling to implement setup times, it is necessary to identify which configuration/property must be monitored for changes.
This is done at the Step level, with the property Setup Characteristic. This can assume four values:
- Service - a change in the Service being offered by a Resource in consecutive jobs is considered a setup.
- Product - a change in the Product being processed at a Resource in consecutive jobs is considered a setup.
- Product Group - a change in the Product Group being processed at a Resource in consecutive jobs is considered a setup.
- Recipe - a change in the Recipe being used at a Resource in consecutive operations is considered a setup.
Info
When using Product Group for the Step Characteristic, all Materials which are included in the scheduling universe and whose Flow passes through that Step must have a Product which is associated with a Product Group.
Info
When using Recipe for the Step Characteristic, for all Materials which are included in the scheduling universe and whose Flow passes through that Step, there must be a Recipe Context, which must not be specific to Resource.
Thus, whenever for two consecutive jobs in the same Resource the chosen characteristic changes, then the scheduling will assume that a setup is required. The configuration of the times for these setups are explained below.
There are two ways of implementing setups in the system, as described below:
Implementing Setup Times Using Setup Matrixes#
The Setup Matrix object details the changes between the different configurations of a Resource. These configurations are expressed in terms of what Service the Resource is providing at any moment. An example of a Setup Matrix is shown in the table below.
| From Service\To Service | Service A | Service B |
|---|---|---|
| Service A | 0 | 3 |
| Service B | 3 | 0 |
Table: Setup matrix example
Assuming in this example that the Setup Matrix's Time Scale is in hours, this means that for any Resource associated with this Setup Matrix, whenever that Resource is forced to change from providing Service A to Service B, the first operation executed with Service B after the change will suffer a setup time of 3 hours; if the change occurs in the other direction, the first operation executed with Service A after the change will suffer a setup time of 5 hours.
Info
Since the diagonal of the Setup Matrix represents the situation when the Service provided by the Resource is not changed, and since this situation may not require a setup time, it is possible to activate the Setup Matrix property Use Zero in Diagonal in order to automatically zero these Matrix positions.
Info
Setup Matrixes do not work for Resources of Schedule Type Batch, as a single batch of Materials may contain multiple (compatible) Services, not being possible to identify the transition between consecutive batches. Instead, the Default Setup Time is applied whenever a new batch is planned.
Info
Setup Matrixes only work for a Setup Characteristic of Service.
Implementing Setup Times Using Default Setup Times#
An alternative to using Setup Matrixes is using Default Setup Times, defined at the Resource level. Default Setup Times do not allow the user to give different times according to the transition. However, it can define a default setup time for all the available Setup Characteristics: Service, Product, Product Group and Recipe. The Default Setup Time creates a virtual Setup Matrix, where all the positions have its value: assuming a case where the Default Setup Time equals 2 hours, and that the Setup Characteristic being used is Service, the virtual matrix is shown in the table below:
| From Service\To Service | Service A | Service B | Service C | Service D |
|---|---|---|---|---|
| Service A | 2 | 2 | 2 | 2 |
| Service B | 2 | 2 | 2 | 2 |
| Service C | 2 | 2 | 2 | 2 |
| Service D | 2 | 2 | 2 | 2 |
Table: Virtual setup matrix table
This means that for any operation, even when the Setup Characteristic does not change, a 2-hour setup time is applied. However, as in many situations, a lack of a Setup Characteristic change means that there should not be a setup time, it is possible to use the Schedule property Use Zero Setup Time to consider these setups as 0. By activating this property, the virtual matrix changes to the one below:
| From Service\To Service | Service A | Service B | Service C | Service D |
|---|---|---|---|---|
| Service A | 0 | 2 | 2 | 2 |
| Service B | 2 | 0 | 2 | 2 |
| Service C | 2 | 2 | 0 | 2 |
| Service D | 2 | 2 | 2 | 0 |
Table: Virtual setup matrix table with Use Zero Setup Time
If the Setup Characteristic is Service, it is possible to combine both Setup Matrixes and Default Setup Times. If a Resource supplies many Services, and most of the transitions have the same setup penalty, but some transitions are different, it is possible to define a Default Setup Time and to override the transitions which have different setup times with a Setup Matrix. By combining the last scenario (Default Setup Time set to 2) with a setup matrix, the result is described below where the transitions given by the Setup Matrix are shown in green, and those given by the Default Setup Time are show in orange.
| From Service\To Service | Service A | Service B | Service C | Service D |
|---|---|---|---|---|
| Service A | 0 | 3 | 2 | 2 |
| Service B | 5 | 0 | 2 | 2 |
| Service C | 2 | 2 | 0 | 2 |
| Service D | 2 | 2 | 2 | 0 |
Table: Setup matrix used in combination with the Default Setup Time
Info
The Schedule's property Use Zero Setup Time only works when there is no Setup Matrix associated with it; as such, when combining a Setup Matrix with the Default Setup Time, it is also necessary to zero the transitions where the Service doesn't change.
Info
The combination of using a setup matrix together with a Default Setup Time may be particularly helpful when using Default Setup Times with Resources of Scheduling Type Tunnel that have compatible Services. Since, in principle, it would not be desirable to have a setup between these Services, it is possible to define a Setup Matrix which overrides these transitions to 0.
Calendars#
Work Calendars define the normal operating hours for a factory and, for scheduling purposes, define the availability periods where Schedule Scenario Jobs may be sequenced. Calendars affect the availability of Resources, Employees and Durables, imposing up and down times according to working and non-working periods respectively.
For Resources, the Calendar associated with the Resource's Area will determine the availability periods of the Resource: this includes non-working days given at the Calendar level and non-working times specified in the Shift Definition. Any Resource non-working times will be shown in the Scheduling GUI as crossed out periods.
For Employees, the calendar definition consists not only for the Calendar associated with the Employee but also from the shift planning assignation and employee calendar days generated:
- At the Calendar Level, shift definitions can be used to break down a working day into different shifts and to define to each one a team pattern. When Calendar Days are generated, each calendar day is assigned the shifts specified in the shift definition, with a team being associated to each shift according to the Team Pattern.
- At the Employee Level, the employee can be assigned to a Shift Plan, Team, Workgroup and Position. By Generating Shift Plan Calendar Days, for each Day, the Employee is connected to the shift in which his/her team will work.
Info
For more information on Employee Scheduling, please check the section Employees.
The default behavior of the Scheduling engine is to never to schedule jobs on non-working times. However, there are two configurations that can change the way non-working periods are handled.
Processing in non-Working Time#
The Resource property Can Process in Non-Working Time allows for a Schedule Scenario Job to continue its execution or finish it during non-working periods. However, the jobs still cannot start in a non-working period. This is intended to model cases where machines have preset switching-off timers, and therefore do not require human intervention to process, for example industrial ovens with switch-off timers. As such, even though one or more non-working periods may be crossed, the Resource is kept processing.
Spanning Jobs Across Working Times#
The Step property Can Span Across Working Times allows for a Schedule Scenario Job to be started during a working period, suspended at the start of a non-working period, and then resumed during the next working period. As such, whenever the Schedule Scenario Job crosses a non-working period, execution is stopped, and is resumed during the next working period.
Maintenance#
Maintenance represents an important constraint in scheduling in two ways:
- Corrective maintenance: whenever there is a Resource or Durable breakdown, an Ad-Hoc Maintenance Activity Order (MAO) should be issued for that equipment. Scheduling will consider the MAO as an unavailability period for the Resource or Durable.
- Preventive maintenance: the preventive maintenance plans for a certain Resource or Durable can schedule MAOs with a frequency specified by the user. These MAOs in turn will be considered by scheduling, thereby limiting the availability of the Resource/Durable.
Scheduling considers MAOs which are associated with Resources or Durables of the scheduling universe, that have not been marked with Ignore in Scheduling and that are:
- Ad-hoc
- Time based
- Usage based with a schedule date defined
Note that for Preventive Time Based Activities, since Scheduling will only consider MAOs which exist at any given point, it is advised to set the Maintenance Activity in the Maintenance Plan with the Schedule Next Mode set to True configuration, so as to enable the Number of Instances to Schedule property, which allows the user to set enough MAOs to cover the scheduling planning horizon. Otherwise, only the next instance of the Maintenance Activity will be created, therefore not having the real impact of the Maintenance Plan in the Resource/Durables availability.
The next picture shows a schedule scenario where two ad-hoc maintenance activity orders are requested for the resources Laser Trimming - 01 and Laser Trimming - 03, and where a daily preventive maintenance plan is applied for the contact printing resources.
Schedule Scenario Maintenance Activity#
To support the scheduling of various types of calibration activities that are often required on the shop floor, a Schedule Scenario supports a type of Maintenance Activity that corresponds to these calibration activities which is predicted to take place at any given moment. Although this activity does not hold the properties of a traditional Schedule Scenario Job, you can see this type of activity in the Schedule View, represented by a dark grey background and a dashed black border:
Durables#
Durables are tools which may be used together with a Resource in order to produce different Products. It may be the case that for the same Resource, different Products may require different durables. Furthermore, it may be possible that, for a single operation, more than one type of durables is required, with each individual durable having its own Maintenance Plan. The same pool of durables can be shared across multiple Resources.
If durables are a constraining factor in the production process, it may become important to include them in scheduling. Scheduling supports durables scheduling, in other words, constraining the operations execution to when both the required resource and durables are available.
Info
Durables scheduling significantly worsens the performance of scheduling in terms of time. Therefore, this functionality should only be activated when durables are a constraining factor.
In order to implement durable scheduling, it is necessary to:
- Activate durables scheduling
- Specify the durable availability
- Specify the durable requirements
Activating Durables Scheduling#
Activating durable scheduling is done through the Schedule, with two properties:
- Schedule Durables - activates the functionality.
- Enforce Scheduled Durables at Track-In - when executing the Schedule the system will enforce, at Track-In, that the exact durables that were scheduled are the ones attached to the Resource: in other words, it is not just sufficient to have the correct quantity of durables of the correct Product, it must be the ones determined by scheduling.
Info
If the Durable property Exclude from Scheduling has been set to true, the Durable will not be considered for scheduling.
Info
If the Schedule property Holds Processing Mode is set to Exclude and the Durable is put on hold, it will not be considered for scheduling.
Specifying the Durable Availability#
For Durables to be considered, they must:
- Be in a Step where Include in Scheduling is set to True, and be present in an Area connected to the Schedule
- Belong to a Product that has both Include in Schedule and Is Durable set to true.
- Not have Exclude from Scheduling set to True and not be on hold if the Schedule's property Holds Processing Mode is set to Exclude
Info
The processing Flow of the durable itself is not considered, that is, the scheduler will never attempt to plan the durable processing through the various Steps of its Flow.
Specifying the Durable Requirements#
To define the Durable requirements, it is necessary to specify:
- A BOM of Scope Durables, for each set of durables required.
- The MaterialDurablesContext smart table should provide a BOM for every context where durables are required. In addition, if Usage Steps are used in the BOM, then only BOM Products whose Usage Steps match the Step of the MaterialDurablesContext will be used for that Context.
It is possible to see the durable allocation to a Schedule Job/Schedule Scenario Job by selecting the Job, opening the details tab on the right, and expanding the Tools tab.
In addition, by navigating to the Durables view, it is possible to see which Jobs are assigned to each Durable.
Employees#
In certain manufacturing environments, particularly when the production process consists of manual assemblies and operations, labor may be the restricting factor, as a pool of Employees may be responsible for executing a large spectrum of operations. In addition, considering that there may be multiple Shifts and Teams which rotate throughout the day/week, that each Employee may have his own Calendar as a result of absenteeism, sick leave and vacations, and also that each Employee may have his/her own set of Skills/Certifications, this constraining factor may need to be planned.
Scheduling supports labor scheduling, in other words, constraining the operations execution to when both required Resource and Employee are available.
Info
Labor scheduling significantly worsens the time performance of scheduling. Activate it only when labor is a constraining factor.
In order to implement labor scheduling, it is necessary to:
- Activate labor scheduling
- Specify the labor availability
- Specify the labor requirement
Activating Employee Scheduling#
Activating Labor Scheduling is done through the Schedule, with four properties:
- Schedule Personnel - activates the functionality.
- Scheduled Personnel Mode - whether, in terms of labor availability, each Employee should only have his/her position considered, or if he/she is eligible for any of his/her granted Certifications. This only applies for the Resource Personnel Requirements, not to the Step Certification Requirements.
- Scheduled Personnel restrict to Area - whether each Employee should be considered just for Jobs in his Area, or all the Areas associated with the Schedule.
- Enforce Scheduled Personnel at Track-In - when executing the Schedule, the system will enforce, at Track-In, that the exact Employees that were scheduled are checked in the Resource: in other words, it is not just sufficient to have the correct quantity of Employees with the correct Certifications, it must be the ones determined by scheduling.
Employee Availability#
For Employees to be considered, the following steps are required:
- Create the required Certifications and grant them to corresponding Employees.
- Create the Team. Make sure that the Team's property Code is filled in. Assign the Employees to their respective teams.
- Create a Calendar.
- Create a Shift Definition. For each shift, enter the Team Pattern by combining the Team Codes in order to represent the team rotation for that shift. For example, if there are three Teams with the Codes A, B and C, and if a shift has a Team Pattern of A, then it will always be the Team A allocated to that shift; if the Team Pattern is ABC, then in consecutive days with the same Shift Definition, the Team assigned to the shift will rotate in this way: A -> B -> C -> A.
- Associate the Shift Definition with the appropriate Calendar weekdays. Generate Calendar Days for the required horizon.
- Create a Shift Plan and associate it with the Calendar. Add as many Workgroups as required. A Workgroup is a group of Employees with likewise Positions.
- Assign each Employee to a Team, a Shift Plan, a Workgroup and a Position.
- Generate Employee Calendar Days in the Shift Plan.
Resource Personnel Requirements#
To implement labor requirements, the resource personnel requirements must be filled in for each Resource that requires employees. This is done in terms of Certifications, being possible to assign multiple Certifications to a single Resource. Also, for each Certification, it is possible to define these properties:
- Quantity: number of required Employees with this Certification
- Allocation Type: if the employee is required during Process, Setup or both
- Allocation: how much of the Employee's allocation is to be spent in this Resource. In other words, a single Employee may be assigned to multiple Resources at once, so long as the sum of all his allocations is less than or equal to 1.
Step Certification Requirements#
In addition to the Resource Personnel Requirements, it is also possible to define requirements in the Step Certification Requirements Context table, using the Step and, optionally, the Product or Product Group.
If this is configured, then for all the Resource Personnel Requirement placed by the Resources included in the scheduling process, the system will only consider the employees which have not only the certification specified in the Resource Personnel Requirements but also the certification of the Step Certification Requirements, if the context applies.
It is possible to see the Employee's allocation to a Schedule Job/Schedule Scenario Job by selecting the Job, opening the details tab on the right, and expanding the Employees tab.
In addition, by navigating to the Employee view, it is possible to see which Jobs are assigned to each Employee.
Material Dependencies#
A production process of a certain industry may require that, besides producing the finished goods that are shipped to the customer, it is also necessary to produce the components that are used to assemble them (and possibly, other intermediate assemblies).
Since the availability of the components at the right step in their flow is a constraint for assembling dependent products, it is possible to take these dependencies into consideration in one of two ways:
- If this relation is given through Material Dependencies, Scheduling will only Schedule the successor Schedule Scenario Job once the predecessor Schedule Scenario Job has finished. In other words, the End Date of the Job associated with the Material Dependency's From Material and From Step must be smaller than the Start Date of the Job associated with the Material Dependency's To Material and To Step.
- In a Schedule Scenario of mode Planning Schedule, for any planned Production Order with the properties Include in Planning and Include in BOM Explosion marked as true, the system will perform a BOM Explosion looking at the BOMs associated with the Product. In this case Virtual Materials will be created for the components specified in these BOMs, and Virtual Material Dependencies will be created between them, so as to ensure that the finished good jobs aren't started before the component is ready.
Info
For more information on BOM Explosion, please visit the section Production Order Planning.
For both these cases, the dependencies associated with each Schedule Scenario Job/Schedule Job can be seen in the details bar, by expanding the Dependencies tab. Jobs which have dependencies are also marked with a dependency icon.
Time Constraints#
During a certain production process, it may be necessary to impose maximum and/or minimum time limits between Steps, consecutive or not. This logic can be implemented in scheduling using Time Constraints. In order to implement Time Constraints, three conditions are required:
- The Steps that mark the beginning and end of the Time Constraint must belong to the schedule universe.
- The Steps that mark the beginning and end of the Time Constraint must have the Enable Time Constraints property activated.
- The Time Constraint Context must give either/both a maximum or a minimum type time constraint between these two Steps.
Filling in the Time Constraint Context#
Since the Time Constraint Context table can be used both for Scheduling and Execution purposes, only some of its fields are taken into consideration for scheduling. These are:
- From Step - the starting Step of the Time Constraint.
- From Operation - the operation of the starting Step where the clock starts running for the Time Limit.
- To Step - the ending Step of the Time Constraint.
- Type - whether this is a maximum or minimum time limit.
- Time Limit - the value for the time limit, in hours.
Info
Although there is a To Operation field in the Time Constraints Context table, this is used for execution only; for scheduling, it is assumed that the clock stops running at the Start Date of the Job associated with To Step.
Info
Although is possible to give both a maximum and a minimum Time Constraint between the same pair of Steps, the From Operation field must be the same for both Time Constraints: either both start the clock at the Track-in or both start the clock at the Track-Out.
The following picture shows a Time Constraint of type minimum given between the Contact Printing Step and the Metalizing Step, with a Time Limit of 2 hours, being measured from the End Date of the Material's Job in the Contact Printing Step. The delay between the execution of the two Steps within the same Flow, when there is no Resource availability constraint (no other Schedule Scenario Job is blocking the Metalizing Resources immediately after the first Job) can be attributed to this Time Constraint.
Holds and Future Holds#
Scheduling can take into consideration holds and future holds that may have been placed on Materials.
Holds#
Materials that are currently on hold can be treated one of two ways, according to the Holds Processing Mode property, defined at the Schedule level:
- Included: Materials with holds will be considered in Scheduling normally
- Excluded: Materials with holds will be excluded from Scheduling
Future Holds#
Materials that have future holds can be treated one of two ways, according to the Future Holds Processing Mode property, defined at the Schedule level:
- Ignore: Materials will be scheduled normally, as if the future holds did not exist
- Stop: Materials will be scheduled only partially
- If the first future hold which the Material will be subject to is of state Queued, it will be scheduled up until the previous Step of that future hold.
- If the first future hold which the Material will be subject to is of state Processed, it will be scheduled up until the Step of that future hold.
Saturation#
In certain situations, it may be desirable to attempt to either concentrate a larger portion of the load onto a certain Resource or, as a side effect of this action, shift load from another Resource if possible; however, this shift should not imply due dates should go unfulfilled. These cases include, for example, having a Resource with lower reliability, which would process a smaller portion of the work unless its substitutes are overloaded and due dates are in risk; alternatively, having a Resource with greater throughput, it may be desirable to limit its availability so as to safeguard against the arrival of high priority/hot Production Orders or Materials.
Saturation is activated using two Resource properties: Priority and Saturation. Scheduling will then, for each Resource, forecast the level of load that will be placed on it: if it exceeds the level defined in the Saturation property, the load will be distributed between it and other Resources with lower Priority. The level of Saturation can be defined between 0 (default, Resource is always considered Saturated and load will be evenly distributed) and 1 (Resource is never considered Saturated, and will accumulate all the load not taken by higher Priority Resources; in this case, their Saturation will be considered first). Any value between 0 and 1 represents the threshold of the Resource's available time, in decimal, after which it is considered saturated.
Below is shown a case where all the Resources are considered saturated (default case) and another where a single Resource (Laser Trimming Machine - 01) has a Saturation level of 0.8.
Production Order Planning#
Although the focus of the Scheduling engine as an operational planning tool is in sequencing and scheduling the Materials already in production, the release of planned Production Orders in the short-term may also have impacts on the shop-floor which must be considered in the short-term.
Scheduling tries to capture this reality by using a look ahead mode, called planning schedule, which simulates the release of these planned Production Orders by creating virtual Materials which will then be planned alongside the real Materials. Since this is a Simulation with virtual Materials which do not physically exist yet, and the production orders haven't been released yet, this kind of a plan cannot be Released/be put into effect.
Info
Even though the planning schedule's primary purpose is to simulate the Production Order Start, since it is a plan that will not be put into effect (cannot be released), it can be used with all the Resources still working with dispatching to generate a plan. For more info, check the Basic Model.
Functionality#
Production Order planning will take into consideration every planned Production Order (System State set to Created) that has the property Include in Planning activated. For these Production Orders, it will also consider the production of in-house components for those which have the property Include in BOM Explosion activated.
Finished Good Product#
For a Production Order to be considered:
- Its System State must be Created
- It must have Include in Planning set to true
- Its Product must have Include in Scheduling set to true, and it must have a Default Material Form, Default Material Type and Maximum Material Size. Optionally, the Minimum Material Size must also be specified.
- Either the Production Order or its Product must have a Default Flow Path defined. If the Step specified in either Default Flow Path is present in multiple Areas, the Production Order's Facility must be specified.
In these conditions, the system will split its quantity according to the Product's Maximum Material Size and Minimum Material Size properties, creating a set of virtual Materials that will be considered by scheduling. This can be seen in the figure below, where a Production Order of 10 000 units is broken down according to a Maximum Material Size of 1600.
Info
For Production Orders that take a long time until completion, a Production Order can be split into a number of Production Order Steps, dividing the Production Order quantity into as many steps as required to fulfill the current Flow where the Material is placed, with a fraction of the Material quantity being placed in each of the Production Order Steps. As an example, a Production Order with remaining quantity equal to 100 units, bound to a specific Flow with seven Steps, where the first Step has a the Production Order Step Size property set to 20, can be divided into 100 / 20 = 5 Production Order Steps, each of them with seven different Steps.
Component/BOM Explosion#
For a Production Order to be considered for a BOM Explosion, in addition to the conditions already specified, it must:
- Have the property Include in BOM Explosion activated
- Have a BOM of Scope Materials associated with the Product's Flow.
- The BOM's Units must match the Step's Primary Units
- At least one of the BOM Products has Include in Scheduling activated
In these conditions, the system will calculate what is the material necessity of the BOM Product to fulfill the Production Order. Having determined the total requirements for each component Product, the system will attempt to fulfill it in the following sequence:
- Semi-Finished Products - the system will try to firstly use components which have already finished production and are ready to be consumed. For this to happen:
- The Product should have the property Use Stock in Scheduling activated.
- The Step where the Semi-Finished Products are being stored should have Include in Scheduling set to true, if these Steps are to be scheduled for planning and operational scenarios, or Include in Planning, if these Steps are to be scheduled just for planning scenarios.
- The Step's property Scheduling Inventory Type should be set to Semi Finished Products.
- WIP - If the Semi-Finished quantity is insufficient, the system will try to use materials still being processed. For this to happen:
- The Product should have the property Use Stock in Scheduling activated.
- The Steps where the processing is occurring should have Include in Scheduling set to true, if these Steps are to be scheduled for planning and operational scenarios, or Include in Planning, if these Steps are to be scheduled just for planning scenarios.
- The Step's property Scheduling Inventory Type should be set to In Progress.
- Raw Material - If both the Product's Quantity in Semi-Finished and In Progress states is insufficient, the system will look for Materials stored as Raw Materials, at the start of the process. For this to happen:
- The Product should have the property Use Stock in Scheduling activated
- The Steps where the Raw Material is being stored should have Include in Scheduling set to true, if these Steps are to be scheduled for planning and operational scenarios, or Include in Planning, if these Steps are to be scheduled just for planning scenarios.
- The Step's property Scheduling Inventory Type should be set to Raw Material.
- New virtual Materials - If all the quantity present in the system is insufficient to cover the necessities, the system will create new virtual Materials, taking into consideration the Product's Maximum and Minimum Material Size in the same way as for the finished good Product.
As the system determines materials (real or virtual) that can be used to fulfill these necessities, it also creates virtual dependencies between the materials of the finished good Product and of the component Product. This is used during planning to ensure that the job associated with the assembly Step of the finished good Product is not started until the component has finished all the necessary operations.
The figure below shows an example of the planning of a component with a total necessity of 10000:
Info
As the total requirements for a certain component Product may come from multiple Production Orders, the system will prioritize the fulfillment of the Production Orders with highest Priority first, and the earliest Due Date second.
Info
Production Order planning will look for components recursively. If one of the Steps of the component product has a context with a BOM of Scope Materials, and if at least one of the BOM Products has the property Include in Scheduling activated, Scheduling will create virtual Materials for that Product and look for BOM Contexts in the Steps of its Flow.
Availability Dates#
During scheduling, it may be desirable to only consider certain entities as available after a certain date:
- A Resource may currently be undergoing maintenance and will only be able to resume production after a certain moment.
- A Material may currently be undergoing inspection or rework and will only be released after a certain date.
- A Production Order may have a defined start date, so as to avoid WIP accumulation and material costing being given too early
As such, these three entities have Availability Date properties, which allows the user to specify from which moment should scheduling consider them as available:
- Resource: Availability Date
- Material: Possible Start Date
- Production Order: Planned Start Date
Feed Steps#
Although scheduling may focus on giving a plan for a certain set of productive Areas, the Flow for a certain Product may cross other Areas or Facilities which feed the productive Areas with Material, such as a Warehouse or an Outsourcer: although the work in this facilities will not be scheduled as occurs in the productive Area, it may be necessary to consider the lead associated with those operations.
This can be achieved by using the scheduling Feed Steps functionality, specified in the Schedule. The system will look for Materials in these Steps, in addition to the ones already included in the Schedule Universe (Area associated with Schedule, Material in a Flow with Steps marked as Include in Schedule). To define a feed step, it is necessary to input both the Step and the Facility. These Steps must have Include in Schedule marked as true, must not belong to any Area associated with the Schedule, must belong to an Area of the Facility specified in the Feed Step, and the combination Schedule, Step and Facility must be unique.
Info
Should there be a lead time associated with the Feed Steps, these can be specified in the Step Product Yield and Cycle Time Context table, similarly to Pass-through Steps.
Scheduling Generation#
This section aims to explain the processes associated with obtaining, analyzing and generating a scheduling.
Schedule Scenario Types#
There are three types of Schedule Scenario which can be created:
- Operational Accurate Schedule - the typical scheduling scenario, where all the eligible Materials are scheduled until the end of their flow. As an operational scenario, it can be released, therefore updating the effective plan in the Schedule.
- Operational Fast Schedule - another operational scenario, which instead of planning the Material until the end of the flow, predicts which jobs must be planned given the planning horizon (typically short, 1-2 days to reduce the time to generate the scenario), and schedules them. This prediction is based on the theoretical times given in the Step Product Yield and Cycle Time table, and the Material's due date. The Operation Fast Schedule Scenario should be used if the Operational Accurate Schedule takes too long to provide a solution, with the assumption that the solution may not be as accurate.
- Planning Schedule - the planning schedule is a lookahead scenario, where not only the Materials are scheduled, but also the planned Production Orders. This occurs by simulating the release of these orders and the creation of virtual Materials to fulfill this order. As this is not an operational plan, it cannot be released: its implementation is based upon first releasing the Production Orders, either through integration with the ERP or in the MES through the Start Production Order operation and then the creation and release of an operational scenario.
The following table sums up the different types of Schedule Scenario:
| Scenario Type | Operational Accurate | Operational Fast | Planning |
|---|---|---|---|
| Scope | Materials | Materials | Materials and Production Orders |
| Steps planned | All | Those predicted to be within the planning horizon | All |
| To Release? | Yes | Yes | No |
| Purpose | Release a new plan | Release a new plan if the time to generate an Operational Accurate schedule unacceptable | Lookahead/simulate the release of planned Production Orders |
Table: Schedule scenarios types
Depending on the Schedule Scenario type, different values can be used when determining the amount of additional calendar days to generate. These values are located under the /Cmf/System/Configuration/Scheduling configuration entry, under the following keys:
| Schedule Scenario Type | Configuration Entry |
|---|---|
| Operational Schedule Accurate | AccurateModeAdditionalCalendarDays |
| Operational Schedule Fast | FastModeAdditionalCalendarDays |
| Planning Schedule | PlanningModeAdditionalCalendarDays |
Table: Additional Calendar Days configuration entries
Scheduling Process Workflow#
The Scheduling workflow process consists on:
- Synchronize the Shop-Floor Information -- this operation can be performed on an existing Schedule Scenario or a new Schedule Scenario can be created for this purpose. The synchronization process is used to retrieve all the necessary scheduling information, including the current released schedule information (if any) as well as WIP, Equipment and Personnel data.
- Generate the Schedule Scenario -- the schedule generation will use the information from the synchronization process and will use different algorithms based on the defined optimization criteria to generate a Schedule Scenario. It's possible to lock or unlock a particular job (see section 5.2.2.6 Lock/Unlock Schedule Scenario Job) and regenerate the schedule again.
- Optionally, Generate Additional Schedule Scenarios -- it's possible to generate additional schedule scenarios varying for example the optimization criteria and the untie sort rules.
- Optionally, Compare the Different Schedule Scenarios -- the different schedule scenarios can be compared across a series of KPIs and also material completion dates.
- Release the Schedule Scenario -- this operation is only possible for Operational Schedule Scenarios and once it's carried out, the Schedule Scenario becomes the effective Schedule that the shop floor receives as a suggestion to follow.
Given the volatility present in the shop-floor and the granularity with which scheduling works, any released schedule will quickly become obsolete. As such, it is expected the process described above needs to be repeated with some frequency. Depending on the process lead time, typically at least once a day, the schedule should be updated. The definition of the rescheduling frequency should take into consideration how much the typical variability, such unforeseen events and delays take place. Based on this information, it must be defined at which point does the schedule become obsolete and when must a schedule be regenerated. However, major disturbances, such as an equipment breakdown or labor absence may require a quick regeneration and release of a new plan to solve the problem promptly.
Using the Schedule#
There are three entities are essential for the scheduling process: the Schedule, the Schedule Scenario and the Schedule Scenario Job.
Schedule#
The Schedule is an effective plan for a set of Areas to which it is connect, thereby defining the scope of which Materials/Production Orders will be planned/tracked within this Scenario.
The Schedule is the plan which will feed the operator GUI with the correct sequencing of Materials, and will automatically be updated with the execution status of the plan: for example, once a Material is Tracked-In, the Schedule will update the start of the Material's job to the actual date where it was Tracked-In.
The effective plan shown in the Schedule will, in time, become outdated, due to unforeseen events, such as delays, equipment breakdowns, losses, among others. The user can then run through the scheduling process in order to implement a new schedule into production.
Schedule Views#
In the Schedule object, there are three views:
- Schedule: the effective plan
- Scenarios: all the scenarios created for that schedule
- Details: a view detailing some of the properties and relations of that schedule
These three views are accessible from the Views button on the top right corner.
Schedule View#
The Schedule View is the default View when opening a Schedule. This view is only populated if there is a released Schedule Scenario, that is, if an operational schedule scenario has been made effective; otherwise it will be empty. This view is similar to the one shown at the Schedule Scenario level.
Should the view be populated, it allows for different visualizations of the effective production plan.
The six top left icons allow changing the visualization of the effective plan in two ways.
The first four icons allow to alternate between four Views:
- The Resource view, which shows the Schedule Job (remaining Steps to be executed for each Material) allocation for each equipment. This can be helpful in determining the load allocation in critical resources in the system.
- The Material view, which shows, in each row, the sequence of Schedule Jobs for each Material. This can be helpful in visualizing the execution of a single Material in the chosen time frame, as well as detecting if there are significant wait times between consecutive operations (as well as between components and finished good Materials, should there be dependencies in the system).
- The Employee view, which displays a list of jobs assigned to each Employee
- The Durables view, which displays a list of jobs assigned to each Durable
Info
The Search bar on the top right of the page applies to whatever Entity is chosen for the View: for example, in the Resource view it will look for Resources and, in the Material view, it will look for Materials.
The second two icons allow to alternate between two different layouts:
- Calendar view, which draws up a Gantt chart and shows all the different Schedule Jobs graphically.
- List view, which shows the different Schedule Jobs in a tabular view.
Info
It's possible to combine these two view types at will: there is a Calendar and a List view for the Resource, Material, Employee and Durable view.
The figure below shows these visualization configurations.
Calendar View#
The Calendar view has functionalities that help the user browse through the production schedule.
Regarding the time window that is shown, the user can configure its width with the Time Window Width combo box (1.). Its possible values are:
- Year
- Month
- Week
- Day
- Hour
- Custom
Alternatively, the user can use the Planning Horizon Bar (2.) to either move or expand/narrow the time window. Note that within this bar, two symbols are shown:
- The vertical blue bar represents the current date/time.
- The dark grey bar represents the presence of schedule jobs in different moments of the Planning Horizon, thereby showing the load across the horizon.
This last functionality is also used on the header of the time window (3.), with the dark grey bar showing the presence of schedule jobs in different moments of the current time window.
In order to restrict the scope of the current window, when using the Resource view (4.), it is possible to collapse/expand the different Areas, hiding or showing their respective Resources. In addition, besides the usage of the Search Bar described earlier, it is possible to use the Step Filter bar (5.), which shows only the Schedule Jobs for that Step.
By hovering over a Schedule Job, a tooltip will appear with the job details as illustrated below:
By clicking on a Schedule Job on the resource, durable or employee calendar view, the other Jobs related to the same Material will be highlighted, showing the other Steps where the Material must be processed. Additionally, in the resource view, the precedence arrows will show what is the planned flow for that Material in the shop floor.
It's also possible to expand the Details tab on the right, showing the job details and any possible employees, durables or dependencies connected to that job.
List View#
The List View allows to filter the jobs according to a start and end date, using the From (1.) and To (2.) dates. It's also possible to expand and collapse the Schedule Jobs assigned to an entity, by clicking on the Name (3.) of that entity.
Scenarios View#
The Scenarios view for the Schedule offers two functionalities:
- Managing the different schedule scenarios by creating new scenarios or releasing a scenario, thus making it effective.
- Comparing different schedule scenarios.
Scenarios can be compared in two ways.
By accessing the scenario KPI view, it is possible to compare a set of global KPIs for all the different schedule scenarios. The view is color coded, to easily identify which are the best and the worst results in terms of a specific KPI, with solid green being the best result and solid red being the worst result.
By selecting two or more schedule scenarios on the scenarios view and clicking compare, the comparison view opens. This provides a head-to-head comparison for each Material timeline in the different Scenarios, either in Calendar or List view. It also allows the comparison between the Planned End Date for the Material with its Due Date, represented by a diamond symbol. This symbol takes a specific color according to the fulfillment of the Due Date:
- If the Material is finished early, the diamond becomes green, and the anticipation is shown on the List View to the left of the icon.
- If the Material is finished late, the diamond becomes red, and the delay is show on the List View to the right of the icon.
- If the Material is finished in the Due Date, the diamond becomes blue.
Details View#
The Details view of a Schedule is very similar view to a generic entity - in the details section, it displays the various properties of the Schedule, in particular those that are important to the planning process, such as the Default Planning Horizon, Default Frozen Period and the Holds Processing Mode.
Moving further down to the areas section, it is possible to see which Areas relate to the current Schedule: only Resources, Steps, Materials, Durables and Employees which are present in these areas will be taken into consideration for Scheduling.
Further bellow, the feed steps section allows the user to define feed steps. Feed Steps are Steps which although are not included in any of the Areas which are connected to the Schedule and would otherwise not being taken into consideration at all for scheduling, will be considered for supplying material to the Schedule without any capacity limitations (as if there was no allocation to a Resource).
The other sections, Attachments and History, work in the same way as for any other entity.
Schedule Operations#
There are two operations available at the Schedule level:
Adjust Job#
This operation allows the user to change the Resource allocation of a certain Job. This can be done either through the Adjust button or by dragging and dropping a Schedule Job. Any adjustment made on a Job will immediately impact the operator GUI, therefore this operation can be used by a planner/supervisor to make real time changes in the plan being carried out by the shop floor.
Create Schedule Scenario#
This operation allows the user to create new schedule scenarios for a Schedule. This operation can be accessed from the Scenarios View, as can be seen in the next picture.
Once the user has chosen to create a Schedule Scenario, this information must be filled in:
- Name
- Description
- Planning Start Date: the date when the planning will start. Defaults to Now
- Type: the type of Scenario to be created. For more information, please check section 4.1 Schedule Scenario Types
- Planning Horizon: the length of the schedule
- Frozen Period: how much of the new schedule scenario should stay unchanged regarding what is planned in the schedule
Schedule Scenario#
A Schedule Scenario is a hypothetical plan created by the user within the scope of a certain Schedule. Three factors are considered when creating a Schedule Scenario:
- The current shop floor status, such as the Work-In-Process and Equipment Availability, is collected from the MES.
- The current effective plan i.e. the Schedule, if the user intends to keep the jobs at the beginning of the plan unchanged.
- The scheduling objectives defined by the user, in the form of optimization criteria and untie sort rules.
The user can create a new Schedule Scenario at any moment or create multiple Scenarios in order to compare the impact of different scheduling objectives.
Schedule Scenario Views#
In the Schedule Scenario object, there are two views:
- Schedule Scenario: the schedule scenario itself
- Details: a view detailing some of the properties and relations of that schedule scenario
These two views are accessible from the Views button on the top right corner
The Schedule Scenario View is the default View when opening a Schedule Scenario. This view is only populated if the Schedule Scenario has previously been Generated.
When the view is populated, it supports different visualizations of the scenario.
As this view is in most ways identical to the Schedule View described earlier in the 5.1.1.1 Schedule View section, please refer to this section for any questions
Schedule Scenario Details View#
The Details view of a Schedule Scenario is very similar to a generic entity - in the details section, it displays the various properties of the Schedule Scenario, in particular those that are important to the planning process, such as, the Default Planning Horizon, Default Frozen Period, Untie Sort Rules and Optimization Criteria, as well as to its status, such as State, Last Synchronization Date and Last Processed Date.
Moving down to the statistics section, it is possible to see the Processing Time for the Generation of the Schedule Scenario, as well as statistics about the number of scheduled/unscheduled Schedule Scenario Jobs.
Further down below, the messages section displays any exception or warning obtained during either the Synchronization or the Generation operations.
The final section, History, works in the same way as in any other entity.
Schedule Scenario Operations#
Three main operations are relevant for the Schedule Scenario:
Synchronize Schedule Scenario#
This operation will calculate all the needed inputs for the creation of a plan. This will include, as stated previously, all the information related with the shop floor and current effective plan. In other words, the Schedule Scenario is static in the sense that it will not be kept up-to-date automatically; this will only occur when the Schedule Scenario is synchronized. Once Synchronization is complete, the Generation becomes available.
Generate Schedule Scenario#
Once the Scenario is synchronized, it is possible to obtain a plan by generating the Scenario. Before the Generation is started, the user can also adjust the objectives, that is, the optimization criteria and untie sort rules for the new plan. Once the generation is complete, if the obtained plan is feasible, it will be displayed on the Scheduling GUI; if not, an error message will be reported. Once the plan is generated, if the user wishes to obtain a new plan with a different set of objectives, it's possible to regenerate the plan.
Info
For more information on Optimization Criteria and Untie Sort Rules, please check sections 3.1.1.1 Optimization Criteria and 3.1.1.2 Untie Sort Rules respectively.
Release Schedule Scenario#
Once the Scenario is generated, if the user approves the new plan for deployment, it is possible to release it. The Schedule with which the current Schedule Scenario is associated will be updated with the information from the released scenario.
Three other minor operations exist for the Schedule Scenario:
Copy Schedule Scenario#
This operation creates a new Schedule Scenario based on the current one. This can be useful if the synchronization process is long and the user wants to try different criteria at once: if the Scenario is synchronized and then copied, the new Scenario can immediately be generated.
Adjust Schedule Scenario Job#
The Adjust Schedule Scenario Job allows the user to change the Resource allocation of a certain job once the Scenario is Generated. This makes it possible to, for example, make some minor adjustments to a plan before deploying it through the Release operation, or alternatively, reschedule (generate) the entire scenario again but taking into consideration a change the user has imposed on the plan. Adjust can have two behaviors:
- Adjust only current job: just the job in question is adjusted and locked
- Adjust all jobs: the job in question is adjusted, locked and a generation of the Schedule Scenario is triggered
In addition, adjust can be performed in one of two ways:
- By clicking the Adjust button and setting the new Resource, Planned Start Date and Planned End Date and picking the behavior for the Adjust.
- By dragging-and-dropping the job to the desired Resource at the desired time. Using drag-and-drop, the behavior will be to Adjust only current job.
Lock/Unlock Schedule Scenario Job#
This operation allows the user to lock a certain job once a Generation has completed. Once a job is locked, if the user chooses to regenerate the scenario, for example with another set of optimization criteria or untie sort rules, the schedule will not move the allocation of locked schedule scenario jobs.
Job#
A Job is the basic building block of Scheduling. Each Job represents a Material being processed at a certain Step of its Flow. The objective of the Scheduling process is to assign each of these Jobs to a certain Resource, with a certain Start and End Date. Jobs are represented with the Scheduling GUI as rectangles in the Calendar View or as Rows in the List View
The graphical representation of a Job in the Calendar View is shown below:
This graphical representation gives out several details about the Job. The start of the job corresponds to the Planned Start Date, while the end corresponds to the Planned End Date. The entire span of the job corresponds to the Planned Duration, with the greyed portion corresponding to the Planned Setup Time and the lighter portion to the Planned Process Time.
Schedule Scenario Job#
Schedule Scenario Jobs are created or updated whenever a Schedule Scenario of that Schedule is released, thereby acquiring the results of the scheduling process for that Scenario. As the Schedule keeps track of the execution of the plan, the Schedule Scenario Jobs state is changed throughout the execution of their associated Material through the state model shown below.
Table: Job states
Once the Material has moved to the next step, the Schedule Job referring to the Current Schedule Job is terminated and will no longer be visible in the Schedule's GUI.
In the case of a Schedule Scenario of type Planning, the system will not only consider the WIP but will also perform a lookahead taking into consideration the planned Production Orders imported into the MES. This occurs by splitting the Planned Production Order into one or more multiple virtual materials, which will then be scheduled alongside the real materials of the WIP in the Planning Scenario. To distinguish between these two types of Material, the Jobs related with Real or Virtual materials will have different representations on the Scheduling Scenario GUI as shown below:
| Material | Job Appearance | Description |
|---|---|---|
| Real | ![]() | A job connected to a Material in MES |
| Virtual | ![]() | A job connected to a virtual material, simulated from a planned Production Order in MES |
Table: Material types
Execution#
As the schedule is an operational planning and control tool, it is possible to put a chosen plan into effect and to track if the plan is followed during execution. This section aims to deal with the implication of having a system working with scheduling for execution as well as for planning.
FabExplorer#
Once a plan is released, the involved Resources will receive their respective process sequence lists, shown in FabExplorer. These lists can be shown either in a tabular view or as a Gantt chart.
In the same manner, the Step View in the FabExplorer will show the processing list for the step, either in a tabular view or as a Gantt chart.
From both views, it is possible to perform the required operations to execute the schedule.
Material Management#
The typical sequence for a Material at a certain Step to be processed at a specific Resource, when using dispatching (default mode) is:
- Dispatch
- Track-In
- Track-Out
- Move Next
When switching a Resource to scheduling, this sequence is not altered and dispatching takes place as usual, however the allocation of the Material to a Resource is done by the scheduling and the information that a specific Resource is assigned to a Material via Scheduling is displayed on screen.
As the various operations associated with material management are being executed, the Schedule Jobs are being updated with the most recent status of the execution of the Material. Thus, besides being possible to track the execution of the entire plan in the Schedule, it is also possible, at any moment, to synchronize and generate a Schedule Scenario based on the updated status of the shop-floor.
Validations and Overrides#
When using Scheduling for execution, there are two major changes that occur in the system regarding the normal operating mode:
- The dispatch order is given by the scheduling allocations
- Track-in must be done in the sequence given by the schedule
Besides these validations, two additional validations can be activated depending on the configuration:
- By activating the Schedule property Enforce Scheduled Durables at Track-In, the system will verify if each individual durable suggested by the Schedule for a Job is attached to the Resource during Track-In.
- By activating the Schedule property Enforce Scheduled Personnel at Track-in, the system will verify if each individual Employee suggested by the Schedule Job is checked-in at the Resource during Track-in.
Dispatching/Resource Allocation#
As can be seen in the figure below, each Job shown in the FabExplorer has a pre-allocated resource given by the Scheduling.
In the case that this allocation is not satisfactory or infeasible to execute, it can be changed by performing a regular Dispatch through on the Material page or in the Step view of the FabExplorer, which will behave in a way similarly to the Dispatch and Track-In operation. A visual indicator will be displayed to show the Resource selected by the Scheduling engine but no hard sequence enforcement will be made.
In addition, it is also possible to allocate a Material to another Resource without a track-in. This can be achieved by performing an Adjust Schedule Job, either by clicking on the respective button or by dragging and dropping the Job in the Calendar View.
Durables and Labor Enforcement#
As mentioned earlier in this section, it is possible to have the system validate whether the Durables and Employees allocated to each individual Job are associated with the Resource during Track-In. It is possible to check which Durables and/or Employees are associated with a certain Job by selecting it in the Schedule, opening the details tab on the right, and expanding the Durables or Employees tabs respectively.
Info
To learn more about scheduling durables, please check the Durables section.
Info
To learn more about scheduling labor, please check the Employees section.
As with other scheduling validations, it is possible to ignore this constraint by using Track-In with Schedule Override. Note that other constraints regarding Durables and Employees which are not imposed by scheduling still apply while using Track-in with Schedule Override.
















































