TheMachineModuleProductionTypeObject 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 MachineModuleProductionTypeis 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 MachineModuleProductionTypecomponents are mandatory.

The components of the MachineModuleProductionTypeare 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 AutoCompleteBoolean defines how to trigger the machine module to complete the execution of a production order. When AutoCompleteis False, the completion of a production order at the machine module is triggered with the method CompleteProductionOrder. When AutoCompleteis 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 AutostartBoolean 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 AutoStartis False, the start of a production order at the machine module is triggered with the method StartProductionOrder. StartProductionOrderis also invoked when AutoStartis True and AssignedProductionOrders[] contains more than one production order.

Data

The Datafolder 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 StateMachineextends ProductionStatusand provides detailed production execution status as well as methods to trigger the transitions and events when the transitions occur.

The AbortProductionOrder methodis 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 Methodis specified below. Table 30specifies the Argumentsrepresentation.

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 StateMachineis in state Starting, Executeor Completing, invoking the method causes the transition to state Aborting.

When the method is invoked in any other state, the method property Executableis False and when the method is invoked, the status code Bad_NotSupportedis 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 ProductionOrderis the same as in the method argument provided as an additional safety net.

If the ProductionOrderis not the same as the POToAbortinput 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 Methodis used to transfer the information of an upcoming production order to the machine module.

The signature of this Methodis specified below. Table 31specifies the Argumentsrepresentation.

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 POToAssignproduction order argument to be added to the AssignedProductionOrdersarray when it is not already there, to overwrite the production order element in the AssignedProductionOrdersarray when it is.

The AssignProductionOrdermethod 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 Methodis specified below. Table 32specifies the Argumentsrepresentation.

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 StateMachineis in state Aborted, invoking the method causes the transition to state Complete. When the method is invoked in any other state, the method property Executableis False and when the method is invoked, the status code Bad_NotSupportedis returned.

The CompleteProductionOrdermethod is used to complete a production order in execution.

The signature of this Methodis specified below. Table 33specifies the Argumentsrepresentation.

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 StateMachineis 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 Executableis False and when the method is invoked, the status code Bad_NotSupportedis returned.

The StartAssignedProductionOrder Methodstarts a production order whose state is Assignedat the machine module.

The signature of this Methodis specified below. Table 34specifies the Argumentsrepresentation.

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 POToStartargument is copied to ProductionOrderand is removed from AssignedProductionOrders[].

The StartAssignedProductionOrdermethod can be invoked for infeed machine modules (i.e. machine modules without an active upstream connected machine module and machines modules with all MaterialPointswith PropagatesProductionOrderFalse) and for machine modules with AutoStartfalse. When AutoStartis 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 StartAssignedProductionOrdermethod 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 StateMachineis 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 Executableis False and when the method is invoked, the status code Bad_NotSupportedis returned.

The StartProductionOrder Methodstarts a production order at the machine module.

The signature of this Methodis specified below. Table 35specifies the Argumentsrepresentation.

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 StateMachineis implemented, invoking the method causes the machine module to start the execution of a production order present in AssignedProductionOrders[]. The POToStartargument is copied to ProductionOrderand is removed from AssignedProductionOrders[].

The StartProductionOrdermethod can be invoked for infeed machine modules (i.e. machine modules without an active upstream connected machine module and machines modules with all MaterialPointswith PropagatesProductionOrderFalse) and for machine modules with AutoStartfalse. When AutoStartis 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 StartProductionOrdermethod 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 StateMachineis 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 Executableis False and when the method is invoked, the status code Bad_NotSupportedis returned.

When no production order is in execution and StateMachineis 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 UnassignProductionOrdermethod is used to remove the specified production order from AssignedProductionOrders[] of an infeed machine module.

The signature of this Methodis specified below. Table 36specifies the Argumentsrepresentation.

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_NotSupportedis reported back.

The Method ResetProductionTotals simultaneouslyresets 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 Methodis specified below. Table 37specifies the Argumentsrepresentation.

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.