Schedule Manager

The Schedule Manager Instantiable Model (users.%.models.scheduleManager), included in Iotellect Monitoring MES Planning & Scheduling, serves as the primary tool for schedule generation. Instances of this model, available from the root of the system tree, enable scheduling for various parts of the enterprise.

Schedule Manager Variables

Settings

Variable: Status

The Status variable (status) displays the current state of the Schedule Manager.

Field

Type

Description

status

Integer

Current Schedule Manager status:

  • 0 – Idle — the manager is not assigned to any commercial orders.

  • 11 – Running (Phase 1) — Phase 1 of the scheduling algorithm is active, or scheduling stopped at Phase 1.

  • 12 – Running (Phase 2) — Phase 2 of the scheduling algorithm is active, or scheduling stopped at Phase 2.

  • 13 – Running (Phase 3) — Phase 3 of the scheduling algorithm is active.

  • 14 – Running (Phase 4) — Phase 4 of the scheduling algorithm is active.

  • 20 – Completed (Manual) — the manager finished execution in manual mode.

  • 21 – Monitoring (Automatic) — the manager monitors schedule changes automatically.

  • 22 – Monitoring (Next Order) — the manager monitors schedule changes in “next order” mode.

  • 3 – Error — the manager failed to generate a consistent schedule.

Variable: Algorithm Settings

The Algorithm Settings variable (algorithmSettings) defines general parameters that affect how the Schedule Manager builds schedules.

Field

Type

Description

mode

Integer

Manager operation mode:

  • 0 – Manual — the operator manually starts the scheduling process and confirms the generated schedule/

  • 1 – Automatic — after generating a schedule, the manager monitors it and all related entities. When critical changes occur, the manager automatically rebuilds the schedule, cancels previously created work orders, and assigns new ones.

  • 2 – Next Order — the manager creates partial schedules instead of long work-order chains. It monitors schedule progress and replans dynamically as work orders complete, adding new ones when necessary

minStorageTime

Long

Minimum storage time — the shortest possible duration a lot can remain in a storage cell

maximumTravelTimeForParallelJobs

Long

Maximum travel time for parallel jobs — the longest allowable travel time for an employee moving between two production entities while performing parallel work orders

WOExecutionTimeError

Long

Work-order execution time tolerance — acceptable timing deviation for work-order start or finish before the system triggers automatic rescheduling

WOInfluenceTimeArea

Long

Work-order influence time window — the interval before and after a scheduled work order. If a work order changes and any related orders fall within this window, the system initiates schedule recalculation

autoUpdateDelay

Long

Automatic update delay — time period the manager waits after a rescheduling event before starting automatic recalculation

autoUpdateShift

Long

Automatic update shift — offset for the start date of the scheduling interval when triggering automatic rescheduling. The value accounts for the estimated schedule generation time

Variable: Event List

The Event List variable (eventList) stores information about triggered events that cause the Schedule Manager to recalculate the generated schedule when operating in one of the automatic modes. The variable clears automatically during rescheduling — that is, after the period defined by autoUpdateDelay elapses from the moment the first trigger event occurs.

Field

Type

Description

entity

String

Context of the entity where the trigger event occurred

dateTime

Date

Date and time when the event occurred

type

String

Type of the trigger event

Input

This group of variables defines the main input parameters for the Schedule Manager’s scheduling algorithm.

Variable: Time Range

The Time Range variable (timeRange) defines the time interval within which the Schedule Manager must place the work orders of the generated schedule.

Field

Type

Description

baseDateStart

Date

Start date of the schedule

baseDateEnd

Date

End date of the schedule

Variable: Root Production Entity

The Root Production Entity variable (rootProductionEntity) defines the production area for which the Schedule Manager generates the schedule.

Field

Type

Description

rootProductionEntity

String

Context of the root production entity

Variable: Commercial Orders

The Commercial Orders variable (commercialOrders) defines the list of commercial orders for which the Schedule Manager generates the schedule.
As soon as all work orders related to a particular commercial order are completed, that commercial order is removed from the list.

Field

Type

Description

product

String

Context of the product being manufactured.

quantity

Double

Quantity of the product to be produced.

measurementUnit

String

Measurement unit of the produced product.

commercialID

String

Commercial order identifier.

commercialOrder

Data Table

Additional user-defined data for the commercial order.

Variable: Cancelled Work Orders

The Cancelled Work Orders variable (cancelledWorkorders) defines the list of existing work orders that the Schedule Manager cancels during schedule generation.

System Snapshots

This group represents a set of variables that store various system data snapshots created during Phase 1 of the scheduling algorithm:

  • Shifts (shifts) — snapshot of employee shift information.

  • Storage Units (storageUnits) — snapshot of storage cell data, including current lots, lots after work order cancellation, and expected lots according to the generated schedule.

  • Employees (employees) — snapshot of employee data, including hourly rates, existing work orders, and work schedules.

  • Production Entities (productionEntities) — snapshot of production entity data and their work orders.

  • Tools (tools) — snapshot of tool data and their associated work orders.

Output

This group of variables defines the output data of the scheduling algorithm.

Variable: Possible Work Orders

The Possible Work Orders variable (possibleWorkorders) stores the schedule generated by the Schedule Manager.

Field

Type

Description

n

Integer

Sequential record number.

ID

String

Unique identifier of the work order.

type

String

Work order type (see the Work Order Types model):

  • production — production order

  • cleaning — cleaning (non-production)

  • maintenance — maintenance (non-production)

  • changeover — changeover (non-production)

  • testing — testing (non-production)

  • training — training (non-production)

orderID

String

Unique identifier of the commercial order.

segment

String

Segment executed as part of the order.

cycleCount

Integer

Required number of segment repetitions.

inputProducts

Data Table

List of input product lots.

outputProducts

Data Table

List of output product lots.

productionEntity

String

Context of the production entity assigned to the work order.

workload

Double

Workload of the production entity while executing the work order.

employees

Data Table

Team of employees assigned to execute the work order.

kit

Data Table

Set of tools required to complete the work order.

start

Date

Estimated start date and time of the work order.

end

Date

Estimated end date and time of the work order.

cost

Double

Estimated cost of executing the work order, calculated by the manager.

code

Integer

Code used in cost calculation.

comment

String

Manager’s comment on cost calculation.

Variable: Segments

The Segments variable (segments) stores templates for production orders prepared by the Schedule Manager.

Variable: Warnings

The Warnings variable (warnings) stores the list of warnings generated by the Schedule Manager about potential inconsistencies in the generated schedule.

Field

Type

Description

warning

String

Текст предупреждения.

data

Data Table

Warning message text.

code

Integer

Additional warning data.

wt

Integer

Warning code.

entity

String

Warning weight (importance).

type

String

Context of the entity associated with the warning.

Core Functions of the Schedule Manager

The Schedule Manager’s primary purpose is planning and schedule generation.
The scheduling algorithm operates in several phases.

Phase 1 — Initialization

This function launches Phase 1 of the scheduling algorithm.
During this phase, the algorithm creates multiple snapshots of system data and saves them into model variables. These snapshots include:

  • Standard work schedules of employees, including defined working and non-working time intervals.

  • Storage states and stock balances within the root production entity.

  • Data on active work orders of production entities that belong to the root production area.

After this phase completes, the operator who started the scheduling process can manually adjust the captured data. This allows “what-if” scenario planning.

Function:

callPhase1

Permissions:

Available at the Observer permission level

Input records:

1

Input format:

Field

Type

Description

start

Date

Schedule start date.

end

Date

Schedule end date.

rootProductionEntity

String

Root production entity.

commercialOrders

Data Table

List of commercial orders.

globalSchedule

Data Table

Global schedule.

cancelledWorkorders

Data Table

List of cancelled work orders.

Output records:

0...unlimited

Output format:

The function returns the global schedule updated to reflect cancelled work orders.

Field

Type

Description

ID

String

Unique work order ID

type

String

Work order type (see Work Order Types model)

orderID

String

Unique commercial order ID

segment

String

Segment executed as part of the order

cycleCount

Integer

Number of segment repetitions

workload

Double

Production entity workload

inputProducts

Data Table

List of input product lots

outputProducts

Data Table

List of output product lots

employees

Data Table

Assigned employee team

kit

Data Table

Set of tools required to complete the order

start

Date

Estimated start time

end

Date

Estimated end time

description

String

Detailed description

status

String

Current work order status (see Work Order Statuses model)

currentCycleCount

Integer

Current repetition count

scrapRate

Integer

Current number of defective repetitions

realStart

Date

Actual start time

realEnd

Date

Actual end time

disableAutoCancelling

Boolean

Flag preventing automatic cancellation during rescheduling

Phase 2 — Work Order Tree Generation

This function launches Phase 2 of the scheduling algorithm. Using storage data, production recipes, and commercial orders, the algorithm recursively reconstructs the genealogy of all production orders required to fulfill each commercial order. If free (unreserved) product lots already exist in storage, the algorithm trims corresponding branches from the work order tree — no production is needed for those items. Draft work orders (“stubs”) are created according to minimal batch sizes. At this stage, the system also specifies production recipes and the input/output products of each recipe segment.

At the end of Phase 2, the algorithm validates material availability and supplements work order drafts with:

  • Suitable production entities

  • Employee teams and tools required for execution

  • Storage cells used for input and output products

  • Other essential parameters for planning

Function:

callPhase2

Permissions:

Available at the Observer permission level

Input records:

1

Input format:

Field

Type

Description

removedEmployees

Data Table

List of employee contexts excluded from scheduling

removedProductionEntities

Data Table

List of production entity contexts excluded from scheduling

removedTools

Data Table

List of tool contexts excluded from scheduling

Output records:

1

Output format:

Field

Type

Description

result

Data Table

Tree of generated production orders

storageStatus

Data Table

Preliminary storage status after executing required orders

segments

Data Table

Drafts of production work orders

code

Integer

Completion code:

  • 0 — Work order drafts created successfully

  • 1 — Commercial order products already available in storage

  • 2 — Insufficient raw materials

  • 3 — Insufficient production resources

Phase 3 — Optimization and Validation

The primary objective of the third phase of the scheduling algorithm is to select the most cost-effective option for completing each production order. Different work order execution options are determined by a combination of the production entity, the team of employees, and the task start time (timeslot). The set of time slots considered depends on both the task's team and the production entity of the work order option.

The problem of selecting the most cost-effective option for completing a work order is reduced to the problem of minimizing the conditional cost function for task completion. In the out-of-the-box solution, the real values ​​of this function depend on several parameters: the hourly and overtime rates of the employees for the work order option, the total cost of non-production work orders (changeovers, etc.) associated with completing the task on specific equipment at a specific point in time, and the distance between the start time of the work order and the start time of the schedule generation interval. Taking these three parameters into account when calculating the cost of work orders allows for schedule optimization based on labor costs, the time/number of changeovers, and the lead time of the commercial order. As part of the cost calculation function, the order option undergoes a series of feasibility checks. If a variant with a given production entity and work team cannot be completed within the specified time for any reason, its cost is considered infinite. An additional task of the cost function is to specify the input and output product lots for the variant and the tool set.

The algorithm sequentially searches for the best options for each task based on the list generated in the previous phase, taking into account the best options already found for previous tasks in the list (posted work orders). If a consistent schedule cannot be generated, that is, if there is no implementation option with a real cost for any of the tasks, the algorithm terminates early.

After the schedule is generated, it undergoes several additional low-priority consistency checks. Based on these checks, a list of warnings about possible minor errors in the schedule can be generated. The generated schedule and the list of warnings are saved in the Possible Work Orders and Warnings variables, respectively.

Function:

callPhase3

Permissions:

Available at the Observer permission level

Input records:

0

Input format:

Output records:

0

Output format:

Phase 4 — Schedule Application

In manual mode, this function returns information about the generated work orders and product lots.
In automatic mode, it automatically assigns and cancels work orders and lots in storage units and production entities.

Function:

callPhase4

Permissions:

Available at the Observer permission level

Input records:

0

Input format:

Output records:

0-1

Output format:

The function output depends on the manager’s operation mode.
If the manager runs in an automatic mode, the function returns null.
In manual mode, it returns the following table:

Field

Type

Description

addedWO

Data Table

List of newly created work orders.

removedWO

Data Table

List of cancelled work orders.

addedLots

Data Table

List of newly added product lots.

removedLots

Data Table

List of cancelled product lots.

changedLots

Data Table

List of modified product lots.

Schedule Creation Call

This function runs the Schedule Manager in one of the automatic modes.
It sequentially executes all scheduling algorithm phases.

Function:

callCreateSchedule

Permissions:

Available at the Observer permission level

Input records:

1

Input format:

Field

Type

Description

start

Date

Schedule start date.

end

Date

Schedule end date.

rootProductionEntity

String

Root production entity.

commercialOrders

Data Table

List of commercial orders.

globalSchedule

Data Table

Global schedule.

cancelledWorkorders

Data Table

List of cancelled work orders.

Output records:

0...unlimited

Output format:

The function output is dynamic. If a scheduled error occurs at any algorithm phase, the function returns detailed information about the error; otherwise, it returns null.

Was this page helpful?