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. |