The MachineModuleProductionType Object provides information about the current production order and quantity produced as well as affordances to start/stop a production order and reset totals for the machine module.

The MachineModuleProductionType is formally defined in the table below.

Table 29 – MachineModuleProductionType Definition

Attribute

Value

BrowseName

MachineModuleProductionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 - Part 5: Information Model, i.e. inheriting the Instance Declarations of that Node.

0:HasComponent

Method

AbortProductionOrder

See below.

O

0:HasProperty

Variable

AssignedProductionOrders

ProductionOrderType[]

0:PropertyType

O, RO

0:HasComponent

Method

AssignProductionOrder

See below.

O

0:HasProperty

Variable

AutoComplete

0:Boolean

0:PropertyType

O, RW

0:HasProperty

Variable

AutoStart

0:Boolean

0:PropertyType

O, RW

0:HasComponent

Method

ClearProductionOrder

See below.

O

0:HasComponent

Method

CompleteProductionOrder

See below.

M

0:HasComponent

Object

Data

0:FolderType

O

0:HasProperty

Variable

ProductionOrder

ProductionOrderHeaderType

0:PropertyType

M, RO

0:HasProperty

Variable

ProductionStatus

ProductionStatusEnumeration

0:PropertyType

M, RO

0:HasComponent

Method

ResetProductionTotals

See below.

M

0:HasComponent

Method

StartAssignedProductionOrder

See below.

O

0:HasComponent

Method

StartProductionOrder

See below.

M

0:HasComponent

Object

StateMachine

MachineModuleProductionStateMachineType

O

0:HasComponent

Method

UnassignProductionOrder

See below.

O

0:GeneratesEvent

ObjectType

POStartedLogType

0:GeneratesEvent

ObjectType

POStoppedLogType

Conformance Units

TMC Core Production

TMC Single PO Production

TMC Multi PO Production

When the machine production is orchestrated by the ProductionOrderOrchestrationLayerType, all the MachineModuleProductionType components are mandatory.

The components of the MachineModuleProductionType are further described below.

BrowseName

Description

AssignedProductionOrders

The AssignedProductionOrders array contains the production orders that have been assigned to the machine module and have not yet been started or unassigned.

AutoComplete

The AutoComplete Boolean defines how to trigger the machine module to complete the execution of a production order. When AutoComplete is False, the completion of a production order at the machine module is triggered with the method CompleteProductionOrder. When AutoComplete is True, the machine module initiates the completion of the production order when all the active upstream machine modules running the production order are in state complete.

AutoStart

The Autostart Boolean defines how to trigger the machine module to start a production order.

When AutoStart is True and AssignedProductionOrders[] contains one PO, the assigned machine module initiates the starting sequence automatically for the assigned production order.

When AutoStart is False, the start of a production order at the machine module is triggered with the method StartProductionOrder. StartProductionOrder is also invoked when AutoStart is True and AssignedProductionOrders[] contains more than one production order.

Data

The Data folder provides additional production data that is not identified elsewhere in this specification. e.g. a shift report.

ProductionOrder

The production order header in execution at the machine module.

ProductionStatus

The execution status of the production order.

StateMachine

The StateMachine extends ProductionStatus and provides detailed production execution status as well as methods to trigger the transitions and events when the transitions occur.

The AbortProductionOrder method is used to abnormally terminate, or abort, a production order that is in execution or starting or completing. Aborting cannot be reversed or undone.

The signature of this Method is specified below. Table 30 specifies the Arguments representation.

Signature

AbortProductionOrder (

[in] ProductionOrderHeaderType POToAbort,

[out] MethodExecutionFeedbackType ExecutionFeedback);

Table 30 – AbortProductionOrder Method Arguments

Argument

Description

POToAbort

The production order to be aborted. The argument is unnecessary for execution (since at most one production order can be executed at any time in the machine module) but provided as a safety net since aborting cannot be reversed.

ExecutionFeedback

The extended feedback returning a detailed message in case of execution failure.

When the StateMachine is in state Starting, Execute or Completing, invoking the method causes the transition to state Aborting.

When the method is invoked in any other state, the method property Executable is False and when the method is invoked, the status code Bad_NotSupported is returned.

Aborting a production order is a non-reversible way to abnormally terminate a production order which requires removing all product or parts from the machine modules either automatically or manually depending on the implementation specifics. Because of the non-reversible impact, before executing the command to the underlying system, the server will verify that the ProductionOrder is the same as in the method argument provided as an additional safety net.

If the ProductionOrder is not the same as the POToAbort input argument, the execution of the method is terminated abnormally and reported via the execution feedback “The PO to be aborted is not running.”

The AssignProductionOrder Method is used to transfer the information of an upcoming production order to the machine module.

The signature of this Method is specified below. Table 31 specifies the Arguments representation.

Signature

AssignProductionOrder (

[in] ProductionOrderType POToAssign,

[out] MethodExecutionFeedbackType ExecutionFeedback);

Table 31 – AssignProductionOrder Method Arguments

Argument

Description

POToAssign

The production order to assign to the machine module for later execution.

ExecutionFeedback

The extended feedback returning a detailed message in case of execution failure.

The successful execution of the method causes the POToAssign production order argument to be added to the AssignedProductionOrders array when it is not already there, to overwrite the production order element in the AssignedProductionOrders array when it is.

The AssignProductionOrder method is executed by infeed machine modules. When the machine module is not an infeed machine module in the current configuration, a negative execution feedback is reported detailing the issue.

The ClearProductionOrder method is used to positively confirm that the machine module where a production order is aborted has been cleared of the product or parts left by the aborted production order.

The signature of this Method is specified below. Table 32 specifies the Arguments representation.

Signature

ClearProductionOrder (

[out] MethodExecutionFeedbackType ExecutionFeedback);

Table 32 – ClearProductionOrder Method Arguments

Argument

Description

ExecutionFeedback

The extended feedback returning a detailed message in case of execution failure.

When the StateMachine is in state Aborted, invoking the method causes the transition to state Complete. When the method is invoked in any other state, the method property Executable is False and when the method is invoked, the status code Bad_NotSupported is returned.

The CompleteProductionOrder method is used to complete a production order in execution.

The signature of this Method is specified below. Table 33 specifies the Arguments representation.

Signature

CompleteProductionOrder (

[out] MethodExecutionFeedbackType ExecutionFeedback);

Table 33 – CompleteProductionOrder Method Arguments

Argument

Description

ExecutionFeedback

The extended feedback returning a detailed message in case of execution failure.

When the StateMachine is in state Execute, the successful execution of the method causes the transition to state Completing.

When the method is invoked in any other state, the method property Executable is False and when the method is invoked, the status code Bad_NotSupported is returned.

The StartAssignedProductionOrder Method starts a production order whose state is Assigned at the machine module.

The signature of this Method is specified below. Table 34 specifies the Arguments representation.

Signature

StartAssignedProductionOrder (

[in] ProductionOrderHeaderTypePOHeaderToStart,

[in] 0:String[] SourceMaterialLoadingPointIDs,

[in] 0:String[] DestinationMaterialOutputPointIDs,

[out] MethodExecutionFeedbackTypeExecutionFeedback);

Table 34 – StartAssignedProductionOrder Method Arguments

Argument

Description

POHeaderToStart

The header of the production order to be started.

SourceMaterialLoadingPointIDs

The list of material loading points that are going to be used by the production order to be started.

DestinationMaterialOutputPointIDs

The list of material output points that are going to be used by the production order to be started.

ExecutionFeedback

The extended feedback returning a detailed message in case of execution failure.

When no production order is in execution, invoking the method causes the machine module to start the execution of a production order present in AssignedProductionOrders[]. The POToStart argument is copied to ProductionOrder and is removed from AssignedProductionOrders[].

The StartAssignedProductionOrder method can be invoked for infeed machine modules (i.e. machine modules without an active upstream connected machine module and machines modules with all MaterialPoints with PropagatesProductionOrder False) and for machine modules with AutoStart false. When AutoStart is True the Executable property of the method is set to False and when the method is invoked, the status code Bad_NotSupported is returned.

The StartAssignedProductionOrder method requires input arguments specifying the loading point(s) where the input materials will be loaded and the output point(s) where the output material will be collected.

When the StateMachine is in state Assigned, the successful execution of the method shall cause a transition to state Starting. In case the method execution terminates unsuccessfully, no transition shall occur.

When the method is invoked in any other state, the method property Executable is False and when the method is invoked, the status code Bad_NotSupported is returned.

The StartProductionOrder Method starts a production order at the machine module.

The signature of this Method is specified below. Table 35 specifies the Arguments representation.

Signature

StartProductionOrder (

[in] ProductionOrderType POToStart,

[in] 0:String[] SourceMaterialLoadingPointIDs,

[in] 0:String[] DestinationMaterialOutputPointIDs,

[out] MethodExecutionFeedbackTypeExecutionFeedback);

Table 35 – StartProductionOrder Method Arguments

Argument

Description

POToStart

The production order to be started.

SourceMaterialLoadingPointIDs

The list of material loading points that are going to be used by the production order to be started.

DestinationMaterialOutputPointIDs

The list of material output points that are going to be used by the production order to be started.

ExecutionFeedback

The extended feedback returning a detailed message in case of execution failure.

When no production order is in execution and StateMachine is implemented, invoking the method causes the machine module to start the execution of a production order present in AssignedProductionOrders[]. The POToStart argument is copied to ProductionOrder and is removed from AssignedProductionOrders[].

The StartProductionOrder method can be invoked for infeed machine modules (i.e. machine modules without an active upstream connected machine module and machines modules with all MaterialPoints with PropagatesProductionOrder False) and for machine modules with AutoStart false. When AutoStart is True the Executable property of the method is set to False and when the method is invoked, the status code Bad_NotSupported is returned.

The StartProductionOrder method requires input arguments specifying the loading point(s) where the input materials will be loaded and the output point(s) where the output material will be collected.

When the StateMachine is in state Assigned, the successful execution of the method shall cause a transition to state Starting. In case the method execution terminates unsuccessfully, no transition shall occur.

When the method is invoked in any other state, the method property Executable is False and when the method is invoked, the status code Bad_NotSupported is returned.

When no production order is in execution and StateMachine is not implemented, invoking the method causes the machine module to start the execution of the production order.

The underlying system will be responsible to verify that the production order information is complete and will otherwise terminate the method execution with a negative execution feedback.

The UnassignProductionOrder method is used to remove the specified production order from AssignedProductionOrders[] of an infeed machine module.

The signature of this Method is specified below. Table 36 specifies the Arguments representation.

Signature

UnassignProductionOrder (

[in] ProductionOrderHeaderType POToUnassign,

[out] MethodExecutionFeedbackType ExecutionFeedback);

Table 36 – UnassignProductionOrder Method Arguments

Argument

Description

POToUnassign

The production order to be unassigned at the machine module.

ExecutionFeedback

The extended feedback returning a detailed message in case of execution failure.

When the machine module is not an infeed machine module in the current configuration, the following StatusCode Bad_NotSupported is reported back.

The Method ResetProductionTotals simultaneously resets the totals of the machine components belonging to the following machine folders: DefectDetectionSensors, MaterialLoadingPoints, MaterialOutputPoints, MaterialRejectionPoints.

The master totals belonging to the same objects are not reset.

The signature of this Method is specified below. Table 37 specifies the Arguments representation.

Signature

ResetProductionTotals (

[out] MethodExecutionFeedbackType ExecutionFeedback);

Table 37 – ResetProductionTotals Method Arguments

Argument

Description

ExecutionFeedback

The extended feedback returning a detailed message in case of execution failure.