The MachineModuleType represents a machine module or workcentre and is formally defined in the following table.
Table 12 – MachineModuleType Definition
Attribute |
Value |
||||
BrowseName |
MachineModuleType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the TMCDeviceType, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Object |
Configuration |
|
MachineModuleConfigurationType |
M |
0:HasComponent |
Object |
ControlModules |
|
0:FolderType |
O |
0:HasComponent |
Object |
DefectDetectionSensors |
|
0:FolderType |
O |
0:HasComponent |
Object |
EquipmentModules |
|
0:FolderType |
O |
0:HasComponent |
Object |
LiveStatus |
|
MachineModuleLiveStatusType |
M |
0:HasComponent |
Object |
MaterialBuffers |
|
0:FolderType |
O |
0:HasComponent |
Object |
MaterialLoadingPoints |
|
0:FolderType |
O |
0:HasComponent |
Object |
MaterialLocations |
|
0:FolderType |
O |
0:HasComponent |
Object |
MaterialOutputPoints |
|
0:FolderType |
O |
0:HasComponent |
Object |
MaterialRejectionPoints |
|
0:FolderType |
O |
0:HasComponent |
Object |
PastSpecificationRecords |
|
0:FolderType |
O |
0:HasComponent |
Object |
ProcessControlLoops |
|
0:FolderType |
O |
0:HasComponent |
Object |
ProcessItems |
|
0:FolderType |
O |
0:HasComponent |
Object |
Production |
|
MachineModuleProductionType |
O |
0:HasProperty |
Variable |
Remote |
0:Boolean |
0:PropertyType |
M, RO |
0:HasComponent |
Object |
Setup |
|
MachineModuleSetupType |
O |
0:HasComponent |
Object |
Specification |
|
MachineModuleSpecificationType |
O |
Conformance Units |
|||||
TMC Data Collection |
|||||
TMC Core Production |
|||||
TMC Process Variables Ingestion and Control |
|||||
TMC Intralogistics at the machine |
The components of the MachineModuleType are further described below.
BrowseName |
Description |
Configuration |
The Configuration Object provides the descriptions (metadata) for settings, stop reasons and root causes of the machine module as well as affordances to make modifications. |
ControlModules |
The ControlModules folder provides control modules belonging to the machine module (and not belonging to an equipment module). |
DefectDetectionSensors |
The DefectDetectionSensors folder provides the sensor(s) and sensing systems fitted to the machine module that detect product defects. |
EquipmentModules |
The EquipmentModules folder provides equipment modules of the machine module. |
LiveStatus |
The LIveStatus Object provides information about the real time status of the machine module and provides affordances to control the machine module remotely in real time. |
MaterialBuffers |
The MaterialBuffers folder provides material storage buffers of the machine module. |
MaterialLoadingPoints |
The MaterialLoadingPoints folder provides the loading points and the materials being loaded, as well as the brand integrity checks required. |
MaterialLocations |
The MaterialLocations folder provides material locations used to deliver or retrieve materials to/from the machine. |
MaterialOutputPoints |
The MaterialOutputPoints folder provides the output(s) of the machine module. |
MaterialRejectionPoints |
The MaterialRejectionPoints folder provides rejection traps where material is discarded from the machine module. |
PastSpecificationRecords |
The PastSpecificationRecords folder contains the information about the machine as was operating in a previous period of time. |
ProcessControlLoops |
The ProcessControlLoops folder provides control loops of the machine module. |
ProcessItems |
The ProcessItems folder provides analog sensor values. |
Production |
The Production 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. |
Remote |
When Remote is True, all methods exposed by the machine module and contained objects are executed and all variables marked as RW can be written to. When Remote is False, the OEM may decide to not execute some qualified methods and/or not allow some qualified RW variables to be written to because of justified safety concerns. The justification shall be provided in the machine safety assessment provided to the customer. Lacking justification, the method shall be executable. For instance, informative methods such as (but not limited to) GetProductionOrder, GetDataSet, GetMaterialList, GetDataSetList, GetRootCauseGroupList, GetRootCauseList, GetStopReasonList, ValidateDataSet, ValidateMaterialList are executable regardless of the value of Remote. The invoking of qualified methods and/or writing of qualified RW variables can be disallowed only for the MachineModuleLiveStatus which includes the methods SendCommand and SetControlMode. When a method is not executed due to the Remote flag, the MethodExecutionFeedback shall report “The system is under local control. Please, switch to Remote to execute the method.” When a RW variable is not allowed to be written to, the StatusCode “Bad_NotWritable” is produced. Remote is read-only because of safety concerns and because it is typically implemented as a physical rotary selector on the machine cabinet: it is the operator who will release the control to a remote system. |
Setup |
The SetUp Object contains the value of all the settings (including mechanical adjustments) required to run production as well as affordances to validate and load settings for the machine module. |
Specification |
The Specification Object contains the specification about the machine as currently operating including capabilities, internal buffers and loading points. |
The components of the MachineModuleType have additional subcomponents which are defined in the following table.
Table 13 – MachineModuleType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
||
ControlModules |
0:HasComponent |
Object |
AnalogInputs |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<AnalogInput> |
|
AnalogInputType |
OP |
||
ControlModules |
0:HasComponent |
Object |
DigitalInputs |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<DigitalInput> |
|
DigitalInputType |
OP |
||
ControlModules |
0:HasComponent |
Object |
Motors |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<Motor> |
|
MotorType |
OP |
||
ControlModules |
0:HasComponent |
Object |
Sensors |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<Sensor> |
|
SensorType |
OP |
||
ControlModules |
0:HasComponent |
Object |
Valves |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<Valve> |
|
ValveType |
OP |
||
DefectDetectionSensors |
0:HasComponent |
Object |
<DefectDetectionSensor> |
|
DefectDetectionSensorType |
OP |
||
EquipmentModules |
0:HasComponent |
Object |
<EquipmentModule> |
|
EquipmentModuleType |
OP |
||
MaterialBuffers |
0:HasComponent |
Object |
<MaterialStorageBuffer> |
|
MaterialStorageBufferType |
OP |
||
MaterialLoadingPoints |
0:HasComponent |
Object |
<MaterialLoadingPoint> |
|
MaterialLoadingPointType |
OP |
||
MaterialLocations |
0:HasComponent |
Object |
<MaterialLocation> |
|
MaterialLocationType |
OP |
||
MaterialOutputPoints |
0:HasComponent |
Object |
<MaterialOutput> |
|
MaterialOutputPointType |
OP |
||
MaterialRejectionPoints |
0:HasComponent |
Object |
<MaterialRejectionPoint> |
|
MaterialRejectionPointType |
OP |
||
PastSpecificationRecords |
0:HasComponent |
Object |
<SpecificationRecord> |
|
MachineModuleHistoricalRecordType |
OP |
||
ProcessControlLoops |
0:HasComponent |
Object |
<ProcessControlLoop> |
|
ProcessControlLoopType |
OP |
||
ProcessItems |
0:HasComponent |
Object |
<ProcessItem> |
|
ProcessItemType |
OP |
||
ProcessItems |
0:HasComponent |
Object |
<ProcessControlItem> |
|
ProcessControlItemType |
OP |
||
ProcessItems |
0:HasComponent |
Object |
<ProcessControlItem> |
|
ProcessControlItemType |
OP |
Instances of the MachineModuleType are components of the DeviceSet Object as defined by OPC10000-100, 5.9 DeviceSet.
For additional clarity, MachineModuleType instances shall be grouped under the DeviceSet object.
The MachineModuleHistoricalRecordType ObjectType contains the specifications of the machine module that have been valid in the past. When the machine module manufacturer modifies the machine in a way that impact the OPC UA server specification, the machine module manufacturer will save an object of type MachineModuleHistoricalType to the folder PastSpecificationRecords which is a component of the relevant MachineModule
The MachineModuleHistoricalRecordType is formally defined in the following table.
Table 14 – MachineModuleHistoricalRecordType Definition
Attribute |
Value |
||||
BrowseName |
MachineModuleHistoricalRecordType |
||||
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 |
Object |
MachineModuleSpecification |
|
MachineModuleSpecificationType |
M |
0:HasProperty |
Variable |
ValidUntil |
0:UtcTime |
0:PropertyType |
M, RO |
Conformance Units |
|||||
TMC Asset Management |
The components of the MachineModuleHistoricalRecordType are further described below.
BrowseName |
Description |
MachineModuleSpecification |
The MachineModuleSpecification Object contains a specification that was valid in the past. |
ValidUntil |
The ValidUntil Propertyontains the date and time the MachineModuleSpecification was last valid. The Property ValidUntil shall be set by the OEM when changes that impact the machine module specification are made. |
The MachineModuleConfigurationType provides descriptions for settings, stop reasons and root causes as well as affordances to make modifications.
The MachineModuleConfigurationType is formally defined in the following table.
Table 15 – MachineModuleConfigurationType Definition
Attribute |
Value |
|||||
BrowseName |
MachineModuleConfigurationType |
|||||
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:HasProperty |
Variable |
DataSetList |
DataSetDefinitionType |
0:PropertyType |
O, RO |
|
0:HasComponent |
Method |
GetDataSetList |
See below. |
O |
||
0:HasComponent |
Method |
GetRootCauseGroupList |
See below. |
M |
||
0:HasComponent |
Method |
GetRootCauseList |
See below. |
M |
||
0:HasComponent |
Method |
GetStopReasonList |
See below. |
M |
||
0:HasProperty |
Variable |
LastChangeDate |
0:UtcTime |
0:PropertyType |
M, RO |
|
0:HasProperty |
Variable |
LongestMicroStopDuration |
0:Double |
0:PropertyType |
M, RW |
|
0:HasProperty |
Variable |
RootCauseGroupList |
RootCauseGroupType[] |
0:PropertyType |
M, RW |
|
0:HasProperty |
Variable |
RootCauseList |
RootCauseMessageType[] |
0:PropertyType |
M, RW |
|
0:HasProperty |
Variable |
RootCauseListInputIsMandatory |
0:Boolean |
0:PropertyType |
M, RW |
|
0:HasComponent |
Method |
SetDataSetListMESID |
See below. |
M |
||
0:HasComponent |
Method |
SetRootCauseLists |
See below. |
M |
||
0:HasProperty |
Variable |
StopReasonList |
MessageType[] |
0:PropertyType |
M, RO |
|
0:GeneratesEvent |
ObjectType |
RootCauseGroupListChangeLogType |
|
|
|
|
0:GeneratesEvent |
ObjectType |
RootCauseListChangeLogType |
|
|
|
|
0:GeneratesEvent |
ObjectType |
StopReasonListChangeLogType |
|
|
|
|
Conformance Units |
||||||
TMC Data Collection |
||||||
TMC Single PO Production |
||||||
TMC Multi PO Production |
The components of the MachineModuleConfigurationType are further described below.
BrowseName |
Description |
DataSetList |
The Property DataSetList of type DataSetDefinition contains the descriptors for all the parameters used to set up the machine. |
LastChangeDate |
The Property LastChangeDate is the date and time of the last change applied to the machine module configuration and the effective date of the modification. |
LongestMicroStopDuration |
The Property LongestMicroStopDuration is the maximum duration of a micro-stop in seconds, longer stops are not micro-stops. Operators are not required to enter a root cause for micro-stops. |
RootCauseGroupList |
The Property RootCauseGroupList is the list of groups that root causes can be grouped in. They are defined by the end user. Same as the RootCauseList property. The RootCauseGroupList is user defined. |
RootCauseList |
The Property RootCauseList is the complete list of the root causes that the end user has defined to classify and organize the downtime due to the machine module stops. The RootCauseList is user defined. |
RootCauseGroupListIsMandatory |
The Property RootCauseListInputIsMandatory is true when the operator is mandatorily required to select the root cause that best describes the current stop situation. For micro- stops such requirement does not apply. |
StopReasonList |
The Property StopReasonList is a list containing the descriptors for all the possible machine module messages, including alarms and warnings. Messages include their localization. The list is defined, created and maintained by the OEM. |
StopReasonList is defined by the OEM. RootCauseList and RootCauseGroupList are defined by the user.
For each StopReasonList item there is a corresponding RootCauseList item. Different RootCauseList items may provide the same contents indicating that the corresponding stop reasons have the same root cause. The RootCauseList is the default associated root cause and may be overridden by the operator at the machine with another root cause. Root causes are further organised by the user into groups e.g., electric, mechanical, product and so on and so forth in the RootCauseGroupList.
Upon first use, the server will default the RootCauseList to be equal to the StopReasonList.
At any time the user will change messages of the RootCauseList (but not their number) and the root cause groups without limitation.
The GetDatasetList Method returns the list of descriptions for parameters of the dataset filtered by the dependency and subset created by the user.
The GetDatasetList Method is typically used for clients to visualize the parameters’ descriptions and related metadata.
The signature of this Method is specified below. Table 16 specifies the Arguments representation.
Signature
GetDataSetList (
[in] ParameterDependencyEnumeration Dependency,
[in] 0:Boolean UserSubset,
[in] 0:Boolean CompleteSet,
[out] DataSetDefinitionType DataSetList,
[out] MethodExecutionFeedbackType ExecutionFeedback
);
Table 16 – GetDataSetList Method Arguments
Argument |
Description |
Dependency |
Dependency specifies how to select (filter) a subset of the dataset based on dependency. |
UserSubset |
UserSubset specifies how to select (filter) a subset of the dataset based on the user-defined UserSubset. |
CompleteSet |
If CompleteSet is True, then the method returns the complete dataset without considering the input parameters Dependency and UserSubset. |
DataSetList |
The list of parameters filtered as per the input arguments Dependency and UserSubset. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The GetRootCauseGroupList Method returns the complete list of root cause groups as persisted by the server.
The signature of this Method is specified below. Table 17 specifies the Arguments representation.
Signature
GetRootCauseGroupList(
[out] RootCauseGroupType[] RootCauseGroupList,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 17 – GetRootCauseGroupList Method Arguments
Argument |
Description |
RootCauseGroupList |
The complete list of root cause groups. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The GetRootCauseList Method returns the complete list of root causes as persisted by the server.
The signature of this Method is specified below. Table 18 specifies the Arguments representation.
Signature
GetRootCauseList(
[out] RootCauseMessageType[] RootCauseList,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 18 – GetRootCauseList Method Arguments
Argument |
Description |
RootCauseList |
The complete list of root cause messages. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The GetStopReasonList Method returns the complete list of stop reasons as persisted by the server.
The signature of this Method is specified below. Table 19 specifies the Arguments representation.
Signature
GetStopReasonList(
[out] MessageType[] StopReasonList,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 19 – GetStopReasonList Method Arguments
Argument |
Description |
StopReasonList |
The complete list of stop reason messages. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The SetDataSetListMESID Method sets the MES_ID of one or more items of the array Definitions contained in the DataSetList.
For clarity, the DataSetList is a Variable of type DataSetDefinitionType which contains Definitions, an array of structures of type DataDefinitionType. In turn DataDefinitionType is a subtype of DataDescriptionType, meaning it inherits MES_ID. The latter is set by SetDataSetListMESID.
Each item of Definitions is identified by its ID.
The signature of this Method is specified below. Table 20 specifies the Arguments representation.
Signature
SetDataSetListMESID (
[in] 0:String[] IDs,
[in] 0:String[] MESIDs,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 20 – SetDataSetListMESID Method Arguments
Argument |
Description |
IDs |
The IDs of the elements of the Definitions array whose MES_ID shall be changed if the method executes successfully. |
MESIDs |
The values of the MES_IDs to be set. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The SetRootCauseLists Method sets both the RootCauseList and RootCauseGroupList according to the input arguments. The RootCauseList and RootCauseGroupList properties are set together to ensure consistency of root causes with the relevant groups.
The signature of this Method is specified below. Table 21 specifies the Arguments representation.
Signature
SetRootCauseLists (
[in] RootCauseMessageType[] RootCauseList,
[in] RootCauseGroupType[] RootCauseGroupList,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 21 – SetRootCauseLists Method Arguments
Argument |
Description |
RootCauseList |
The list of root causes to be transferred to and used by the server. |
RootCauseGroupList |
The list of root cause groups to be transferred to and used by the server. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The MachineModuleLiveStatusType ObjectType contains information about the real time status of the machine module and provides affordances to control the machine module remotely in real time.
The MachineModuleLiveStatusType is formally defined in the following table.
Table 22 – MachineModuleLiveStatusType Definition
Attribute |
Value |
||||
BrowseName |
MachineModuleLiveStatusType |
||||
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 |
AcknowledgeAlarms |
See below. |
M |
|
0:HasComponent |
Object |
Alarms |
|
0:FolderType |
M |
0:HasProperty |
Variable |
ControlMode |
ControlModeEnumeration |
0:PropertyType |
M, RW |
0:HasComponent |
Object |
Data |
|
0:FolderType |
O |
0:HasProperty |
Variable |
IdleEnergySavingMode |
0:Boolean |
0:PropertyType |
M, RW |
0:HasComponent |
Method |
ResetAggregates |
See below. |
M |
|
0:HasComponent |
Method |
SendCommand |
See below. |
M |
|
0:HasComponent |
Method |
SetControlMode |
See below. |
M |
|
0:HasComponent |
Method |
SetIdleEnergySavingMode |
See below. |
M |
|
0:HasProperty |
Variable |
State |
StateEnumeration |
0:PropertyType |
M, RO |
0:HasComponent |
Object |
StateMachine |
|
TMCStateMachineType |
O |
0:GeneratesEvent |
ObjectType |
ControlModeChangeLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
0:DiscreteAlarmType |
|
|
|
0:GeneratesEvent |
ObjectType |
DowntimeLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
ExternalAlarmType |
|
|
|
0:GeneratesEvent |
ObjectType |
StateChangeLogType |
|
|
|
Conformance Units |
|||||
TMC Basic Machine Status |
|||||
TMC Advanced Machine Status |
The components of the MachineModuleLiveStatusType are further described below.
BrowseName |
Description |
ControlMode |
The ControlMode property describes the current control mode of the machine. |
IdleEnergySavingMode |
The IdleEnergySavingMode Property is set to True when the energy saving mode during the idle phase is set. |
State |
The Property State describes the status of the state machine controlling the machine module. State provides a subset of the information of the state machine, when the latter is implemented. |
StateMachine |
The state machine describes the current state of the machine, the possible transitions and their conditions. |
Alarms |
The Alarms folder contains alarms of the machine module. |
Data |
The Data Folder contains additional data that is not identified elsewhere in this specification. |
The components of the MachineModuleLiveStatusType have additional subcomponents which are defined in the following table.
Table 23 – MachineModuleLiveStatusType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Alarms |
0:HasComponent |
Object |
<Alarm> |
|
0:DiscreteAlarmType |
OP |
Alarms |
0:HasComponent |
Object |
<ExternalAlarm> |
|
ExternalAlarmType |
OP |
Data |
0:HasComponent |
Variable |
<DataItem> |
0:BaseDataType |
0:BaseDataVariableType |
OP, RO |
The AcknowledgeAlarms Method acknowledges all alarms of the machine module. The acknowledgement is cascades to other objects belonging to the machine module e.g., equipment modules and control modules.
The signature of this Method is specified below. Table 24 specifies the Arguments representation.
Signature
AcknowledgeAlarms (
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 24 – AcknowledgeAlarms Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The ResetAggregates resets all the aggregates for the objects contained in the ProcessItems and ProcessControlLoops of the machine module.
The signature of this Method is specified below. Table 25 specifies the Arguments representation.
Signature
ResetAggregates (
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 25 – ResetAggregates Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method SendCommand sends a command to change the state of the machine module state machine remotely.
The signature of this Method is specified below. Table 26 specifies the Arguments representation.
Signature
SendCommand (
[in] CommandEnumeration Command,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 26 – SendCommand Method Arguments
Argument |
Description |
Command |
The command to be sent to the machine module. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The SetControlMode Method sets the control mode of the machine module.
The signature of this Method is specified below. Table 27 specifies the Arguments representation.
Signature
SetControlMode (
[in] ControlModeEnumeration ControlMode,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 27 – SetControlMode Method Arguments
Argument |
Description |
ControlMode |
The control mode to be set to the machine module. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method SetIdleEnergySavingMode activates the energy saving mode when the machine module is idle.
The signature of this Method is specified below. Table 28 specifies the Arguments representation.
Signature
SetIdleEnergySavingMode (
[in] 0:Boolean IdleEnergySavingMode,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 28 – SetIdleEnergySavingMode Method Arguments
Argument |
Description |
IdleEnergySavingMode |
The energy saving mode to set. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
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. |
The MachineModuleSpecificationType provides the specification of the machine module as currently operating including capabilities, internal buffers and loading points.
This MachineModuleSpecificationType is formally defined in the table below.
Table 38 – MachineModuleSpecificationType Definition
Attribute |
Value |
||||
BrowseName |
MachineModuleSpecificationType |
||||
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 |
DeleteSpecificationRecord |
See below. |
M |
|
0:HasComponent |
Object |
Documentation |
|
0:FolderType |
M |
0:HasComponent |
Method |
LoadMachineModuleDocumentation |
See below. |
M |
|
0:HasProperty |
Variable |
LocationName |
0:String |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
MaterialLoadingPoints |
MaterialPointType[] |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
MaterialOutputPoints |
MaterialPointType[] |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
MaterialRejectionPoints |
MaterialPointType[] |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
MaterialStorageBuffers |
MaterialStorageBufferDataType[] |
0:PropertyType |
M, RO |
0:HasComponent |
Method |
RemoveMachineModuleDocumentation |
See below. |
M |
|
0:HasComponent |
Method |
SetNewSpecification |
See below. |
M |
|
0:HasProperty |
Variable |
TimeZone |
0:TimeZoneDataType |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
TotalRunningHours |
0:UInt64 |
0: PropertyType |
M, RO |
0:HasProperty |
Variable |
UserMachineName |
0:String |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
ValidSince |
0:UtcTime |
0:PropertyType |
M, RO |
0:GeneratesEvent |
ObjectType |
MachineModuleSpecificationChangeLogType |
|
|
|
Conformance Units |
|||||
TMC Single PO Production |
|||||
TMC Asset Management |
Additionally, references of type FlowsTo shall be implemented.
The components of the MachineModuleSpecificationType are further described below.
BrowseName |
Description |
Documentation |
The Object Documentation is the sole repository for the machine module documentation resources. The Documentation is accessed, for example, by clients and HMIs. |
LocationName |
The Property LocationName of type String contains the location of the machine module within the user production site. The Property LocationName will contain the following: Country/City/Department/Floor/Bay/Position. LocationName and UserMachineName uniquely identify the machine module in the user organization. |
MaterialLoadingPoints |
The Property MaterialLoadingPoints identifies the loading points of the machine module and their capability in terms of what materials can be loaded at a loading point. The Property MaterialLoadingPoints is defined as a list of objects of type MaterialPointType. |
MaterialOutputPoints |
The Property MaterialOutputPoints identifies the output points of the machine module and their capability in terms of what materials can be output The Property MaterialOutputPoints is defined as a list of objects of type MaterialPointType. |
MaterialRejectionPoints |
The Property MaterialRejectionPoints identifies the rejection points of the machine module and their capability in terms of what materials are rejected The Property MaterialRejectionPoints is defined as a list of objects of type MaterialPointType. |
MaterialStorageBuffers |
The Property MaterialStorageBuffers describes the buffers inside the machine module and their current status. The Property MaterialStorageBuffers is a list of objects of type MaterialStorageBufferDataType. |
TimeZone |
The local time zone where the machine operates. It is required to convert UTC times into local time. |
TotalRunningHours |
The Property TotalRunningHours counts the number of hours the machine module has been in operation since the last time its configuration was changed. More specifically, time is counted when the machine module state is different from: Stopping, Stopped, Aborting, Aborted, Clearing. |
UserMachineName |
The Property UserMachineName of type String contains the name used by the user to identify the machine module. LocationName and UserMachineName uniquely identify the machine module in the user organization. |
ValidSince |
The Property ValidSince is the date since the configuration was last modified. |
The components of the MachineModuleSpecificationType have additional subcomponents which are defined in the table below.
Table 39 – MachineModuleSpecificationType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Documentation |
0:HasProperty |
Variable |
<DocumentName> |
0:ByteString |
0:PropertyType |
OP, RO |
The DeleteSpecificationRecord Method deletes a specification record.
The signature of this Method is specified below. Table 40 specifies the Arguments representation.
Signature
DeleteSpecificationRecord (
[in] 0:NodeId SpecificationRecord,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 40 – DeleteSpecificationRecord Method Arguments
Argument |
Description |
SpecificationRecord |
The OPC UA unique node identifier for the specification to be deleted from the underlying system repository. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The LoadMachineModuleDocumentation Method allows to securely load any machine module documentation to the documentation repository Documentation folder where it can be reached by applications.
The signature of this Method is specified below. Table 41 specifies the Arguments representation.
Signature
LoadMachineModuleDocumentation (
[in] 0:ByteString DocumentToBeLoaded,
[in] 0:String DocumentName,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 41 – LoadMachineModuleDocumentation Method Arguments
Argument |
Description |
DocumentToBeLoaded |
The document, as a byte string, to be transferred to the Documentation folder. |
DocumentName |
The document name to be associated to the document in the underlying system. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The RemoveMachineModuleDocumentation Method allows to securely remove, i.e. permanently delete, any machine module documentation from the documentation repository Documentation.
The signature of this Method is specified below. Table 42 specifies the Arguments representation.
Signature
RemoveMachineModuleDocumentation (
[in] 0:String DocumentName,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 42 – RemoveMachineModuleDocumentation Method Arguments
Argument |
Description |
DocumentName |
The document name to be associated to the document in the underlying system. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method SetNewSpecification saves its arguments as the new specification for the machine module. Prior to that it saves the previous specification into the PastSpecification Records Object of the same machine module.
The signature of this Method is specified below. Table 43 specifies the Arguments representation.
Signature
SetNewSpecification (
[in]MaterialPointType[] NewMaterialLoadingPoints,
[in]MaterialStorageBufferDataType[]NewMaterialStorageBuffers,
[in]MaterialPointType[] NewMaterialOutputPoints,
[in]MaterialPointType[] NewMaterialRejectionPoints,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 43 – SetNewSpecification Method Arguments
Argument |
Description |
NewMaterialLoadingPoints |
The information about the material loading points that will be valid after the machine specification is changed. |
NewMaterialStorageBuffers |
The information about the storage buffers that will be valid after the machine specification is changed. |
NewMaterialOutputPoints |
The information about the material output points that will be valid after the machine specification is changed. |
NewMaterialRejectionPoints |
The information about the material rejection points that will be valid after the machine specification is changed. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The MachineModuleSetupType ObjectType contains the value of all the settings (including mechanical adjustments) required to run production as well as affordances to validate and load settings for the machine module.
This MachineModuleSetupType is formally defined in the table below.
Table 44 – MachineModuleSetupType Definition
Attribute |
Value |
||||
BrowseName |
MachineModuleSetupType |
||||
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:HasProperty |
Variable |
DataSet |
DataSetType |
0:PropertyType |
M, RW |
0:HasComponent |
Method |
LoadDataSet |
See below. |
O |
|
0:HasComponent |
Method |
LoadMaterialList |
See below. |
O |
|
0:HasProperty |
Variable |
MaterialList |
MaterialListType |
0:PropertyType |
M, RO |
0:HasComponent |
Object |
MechanicalAdjustments |
|
0:FolderType |
M |
0:HasComponent |
Object |
DataSetFolder |
|
0:FolderType |
M |
0:HasComponent |
Method |
ValidateDataSet |
See below. |
O |
|
0:HasComponent |
Method |
ValidateMaterialList |
See below. |
O |
|
0:GeneratesEvent |
ObjectType |
DataSetChangeLogType |
|
|
M |
Conformance Units |
|||||
TMC Single PO Production |
|||||
TMC Advanced Setup |
The components of the MachineModuleSetupType are further described below.
BrowseName |
Description |
DataSet |
DataSet contains all the digital settings (other than the mechanical settings stored in the folder MechanicalAdjustments) required by the machine module. |
MaterialList |
MaterialList contains the list of materials that are going to be used for the production of the current production order. |
MechanicalAdjustments |
The MechanicalAdjustments folder contains the non-digital settings required to setup the machine e.g. mechanical adjustments. |
DataSetFolder |
The DataSetFolder contains the DataSet including values and descriptions. It contains the same information as DataSet but in a way that is friendlier to simple clients. |
The components of the MachineModuleSetupType have additional subcomponents which are defined in the table below.
Table 45 – MachineModuleSetupType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
MechanicalAdjustments |
0:HasProperty |
Variable |
<DocumentName> |
0:ByteString |
0:PropertyType |
OP, RO |
DataSetFolder |
0:HasComponent |
Variable |
DataSetID |
0:String |
0:DataItemType |
M, RW |
DataSetFolder |
0:HasComponent |
Variable |
DataSetDescription |
0:LocalizedText |
0:DataItemType |
M, RW |
DataSetFolder |
0:HasComponent |
Variable |
<DataSetValue> |
0:BaseDataType |
0:DataItemType |
OP, RW |
The DataSetID Variable subcomponent is the ID of the DataSet, the DataSetDescription Variable subcomponent is the Description of the DataSet which contains many values represented by <DataSetValue >.
The mapping between the DataSet and <DataSetValue> in DataSetFolder shall be as follows:
- The BrowseName of each <DataSetValue > shall be the ID of the corresponding Definition in the DataSetList and DataSet.
- The DataType of each <DataSetValue > shall be equal to the DataType of the corresponding Definition in the DataSetList.
- If the <DataSetValue > is numeric, its type definition shall be 0:AnalogUnitRangeType which includes EURange and EngineeringUnits.
- EURange shall be equal to the ControlRange of the corresponding definition in the DataSetList.
- EngineeringUnits shall be equal to EngineeringUnits of the corresponding definition in the DataSetList.
The LoadDataSet Method loads the dataset to the underlying system after having validated that (a) the dataset is complete when IsCompleteDataset is True and (b) the dataset is valid.
When the validation is not passed, then the data set is not loaded to the underlying system rolling back any data change and a specific message shall be returned via ExecutionFeedback.
For detailed validation diagnostics, the Method ValidateDataSet shall be invoked.
The signature of this Method is specified below. Table 46 specifies the Arguments representation.
Signature
LoadDataSet (
[in] DataSetType DataSet,
[in] Boolean IsCompleteDataSet,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 46 – LoadDataSet Method Arguments
Argument |
Description |
DataSet |
The dataset to be transferred to the underlying system. |
IsCompleteDataSet |
When true, the DataSet argument is a complete dataset, meaning all DataSet entries are included. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The LoadMaterialList Method loads the material list to the underlying system after having validated that (a) the material list is complete and (b) the material list is valid.
When the validation is not passed, then the material list is not loaded to the underlying system rolling back any data change and a specific message shall be returned via ExecutionFeedback.
For detailed validation diagnostics, the Method ValidateMaterialList shall be invoked.
The signature of this Method is specified below. Table 47 specifies the Arguments representation.
Signature
LoadDataSet (
[in] MaterialListType MaterialList,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 47 – LoadMaterialList Method Arguments
Argument |
Description |
MaterialList |
The material list to be transferred to the underlying system. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The ValidateDataSet Method transfers a dataset, complete when IsCompleteDataSet is True, to the underlying system and returns the result of the validation, i.e. verifying that the dataset is complete and can run in production.
When the ValidateDataSet Method is executed, the DataSet variable is not affected. If the validation is not passed, the identifiers of the datapoints that did not pass are provided with the ExecutionFeedback.
The validation of the DataSet normally occurs before the DataSet is required, i.e. while production is running and using a different dataset. As a matter of fact, the ValidateDataSet Method is used to validate a DataSet beforehand giving time to the higher-level systems in charge to correct mistakes. Thus the underlying system is required to provide all affordances to perform the validation without disrupting running production orders.
The signature of this Method is specified below. Table 48 specifies the Arguments representation.
Signature
ValidateDataSet (
[in] DataSetType DataSet,
[in] Boolean IsCompleteDataSet,
[out] DataSetEntryType[] FailedValidationEntries,
[out] MessageType[] FailedValidationMessages,
[out] MethodExecutionFeedbackTypeExecutionFeedback);
Table 48 – ValidateDataSet Method Arguments
Argument |
Description |
DataSet |
The dataset to be validated by the underlying system. |
IsCompleteDataSet |
When true, the DataSet argument is a complete dataset, meaning all DataSet entries are included. |
FailedValidationEntries |
The dataset items that failed the validation. |
FailedValidationMessages |
The detailed reasons the validation failed. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The ValidateMaterialList Method transfers a material list to the underlying system and returns the result of the validation, i.e. verifying that the material list is complete and can run in production.
When the ValidateMaterialList is executed, the MaterialList variable is not affected. If the validation is not passed, the identifiers of the materials that did not pass are provided with the ExecutionFeedback.
The validation of the MaterialList normally occurs before the MaterialList is required, i.e. while production is running and using a different material list. As a matter of fact, the ValidateMaterialList Method is used to validate a MaterialList beforehand giving time to the higher-level systems in charge to correct mistakes. Thus the underlying system is required to provide all affordances to perform the validation without disrupting running production orders.
The signature of this Method is specified below. Table 49 specifies the Arguments representation.
Signature
ValidateMaterialList (
[in] MaterialListType MaterialList,
[out] MaterialListItemType[] FailedValidationEntries,
[out] MessageType[] FailedValidationMessages,
[out] MethodExecutionFeedbackTypeExecutionFeedback);
Table 49 – ValidateMaterialList Method Arguments
Argument |
Description |
MaterialList |
The material list to be validated by the underlying system. |
FailedValidationEntries |
The material list items that failed the validation. |
FailedValidationMessages |
The detailed reasons the validation failed. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The MaterialLoadingPointType ObjectType describes the machine module part where materials are loaded (either manually or by means of an automated system or both) and the materials being loaded, as well as the brand integrity checks required.
The MaterialLoadingPointType is formally defined in the following table.
Table 50 – MaterialLoadingPointType Definition
Attribute |
Value |
||||
BrowseName |
MaterialLoadingPointType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the TMCDeviceType i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Variable |
ActualDispensingRate |
0:Double |
MaterialRateType |
M, RO, HR |
0:HasComponent |
Variable |
ConsumedMaterialMasterTotal |
0:Double |
MaterialQuantityVariableType |
M, RO |
0:HasComponent |
Variable |
ConsumedMaterialTotal |
0:Double |
MaterialQuantityVariableType |
M, RO, HR |
0:HasComponent |
Variable |
DispensedMaterialMasterTotal |
0:Double |
MaterialQuantityVariableType |
M, RO |
0:HasComponent |
Variable |
DispensedMaterialTotal |
0:Double |
MaterialQuantityVariableType |
M, RO, HR |
0:HasComponent |
Variable |
DispensingRateState |
0:LocalizedText |
0:StateVariableType |
M, RO, HR |
0:HasProperty |
Variable |
ExpectedMaterials |
MaterialSublotType[] |
0:PropertyType |
M, RO |
0:HasComponent |
Variable |
LoadedMaterial |
MaterialSublotType[] |
0:BaseDataVariableType |
M, RO |
0:HasProperty |
Variable |
MaterialPointDefinition |
MaterialPointType |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
MaterialIntegrityAgent |
MaterialIntegrityAgentEnumeration |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
MES_ID |
0:String |
0:PropertyType |
M, RW |
0:HasComponent |
Variable |
NominalDispensingRate |
0:Double |
MaterialRateType |
M, RO |
0:HasComponent |
Variable |
PresentedMaterial |
MaterialSublotType |
0:BaseDataVariableType |
M, RW |
0:HasComponent |
Variable |
PresentedMaterialValidationStatus |
MaterialValidationStatusEnumeration |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Method |
SetPresentedMaterialValidationStatus |
See below. |
M |
|
0:HasProperty |
Variable |
AllowMixedLots |
0:Boolean |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
UpstreamHold |
0:Boolean |
0:PropertyType |
M, RO |
0:GeneratesEvent |
ObjectType |
IntegrityRejectedMaterialLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
LoadingPointUnloadedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
MaterialConsumedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
MaterialDispensedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
MaterialUnloadingRequiredLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
NewPresentedMaterialLogType |
|
|
|
Conformance Units |
|||||
TMC Core Production |
Additionally, references of type FlowsTo shall be implemented.
The components of the MaterialLoadingPointType are further described below.
BrowseName |
Description |
ActualDispensingRate |
The actual rate at which the input material is being dispensed. |
ConsumedMaterialMasterTotal |
The total quantity of material that entered the machine loading point. This total is never reset. |
ConsumedMaterialTotal |
The total quantity of material that entered the machine loading point. When the material is loaded, it may be immediately dispensed or may be stored and dispensed when required according to the machine logic. When the material is immediately dispensed, the consumed material quantity equals the dispensed material quantity (DispensedMaterialTotal). The quantity is reset by the successful execution of the ResetMachineTotals method, only. |
DispensedMaterialMasterTotal |
The total quantity of material dispensed at the machine after loading at the loading point. This total is never reset. |
DispensedMaterialTotal |
The total quantity of material dispensed at the machine after loading at the loading point. The quantity is reset by the successful execution of the ResetMachineTotals method, only. |
DispensingRateState |
The DispensingRateState provides information about the state of the dispensing rate justifying why the ActualDispensingRate is different from the NominalDispensingRate. At a minimum the list of states below shall be provided: Id=0, Speed is at Nominal value Id=1, Speed Changed by Operator Id=2, Speed Followed from Downstream Internal Id=3, Speed Reduced due to low input material Id=4, Speed Reduced due to internal high input material level Id=5, Speed Reduced due to Filling Mode Id=6, Speed Reduced due to internal procedure (e.g. calibration) Id=7, Speed Reduced due to input material change (e.g. foil splicing, inner frame bobbin change, etc.) Id=8, Speed Changed by Remote Host When the actual rate is not measured, Id=0 Speed is at Nominal value will be returned. The speed set by an external host, if any, is used as the NominalDispensingRate. Null speed is a speed reduction. The list may be extended for specific states not already covered in the list above. |
ExpectedMaterials |
The array of sublots of the material that are expected at the machine loading point for the current production. ExpectedMaterials is a set of MaterialListItems such that the UserMachineName in LoadingPoint matches the LoadingPointID of the MaterialListItem. |
LoadedMaterial |
An array of the sublots that entered the machine loading point. When a sublot is unloaded, it is also removed from the array. The sublot in the first position is the sublot from which the machine module is currently dispensing the material. The quantity of the sublot in the first position is decreased by an amount equal to the dispensing. |
MaterialPointDefinition |
The Property MaterialPointDefinition contains the identification of the material point and the material that is processed. |
MaterialIntegrityAgent |
MaterialIntegrityAgent defines how material validation is performed. The scenarios taken into consideration are defined by the MaterialIntegrityEnumeration:
When an unsupported value is written to the variable, the underlying system will overwrite it with a supported one. |
MES_ID |
Unique identifier for the material point in an external system, e.g. MES. |
NominalDispensingRate |
The nominal rate at which the input material is dispensed when the machine runs at design speed. |
PresentedMaterial |
The material presented to the material loading point, but not yet loaded. When the material is loaded, the underlying system resets the PresentedMaterial and the MaterialValidationStatus to Failed. When an upstream machine is connected, the material output from the upstream machine is the presented material. Read/Write to allow for external systems to request the validation of a material. When the PresentedMaterial changes, the validation system performs validation. |
PresentedMaterialValidationStatus |
The status of the validation of the presented material. When Passed, the presented material is loaded by the machine module; when Failed, the presented material will be removed from the loading point, either automatically or manually. When InProgress, the validation is in progress. When MaterialIntegrityAgent is None and MaterialPresented is empty, then the value is None. |
AllowMixedLots |
When AllowMixedLots is False and BatchManaged in the material definition of the ExpectedMaterials is True, then one material lot will be processed i.e. the first material lot received. |
UpstreamHold |
UpstreamHold is true when the loading point cannot receive more product and the upstream machine is required to stop loading, False when the loading point can receive product. |
The SetPresentedMaterialValidationStatus Method provides a client with an affordance to perform the validation of the PresentedMaterial against the ExpectedMaterials and set the result of the validation in the PresentedMaterialValidationStatus variable.
The method is called by the material integrity agent, i.e. when MaterialIntegrityAgent is External.
The method is executed only when the MaterialValidationStatus is Waiting.
The signature of this Method is specified below. Table 51 specifies the Arguments representation.
Signature
SetPresentedMaterialValidationStatus (
[in] MaterialValidationStatusEnumeration ValidationResult,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 51 – SetPresentedMaterialValidationStatus Method Arguments
Argument |
Description |
ValidationResult |
The result of the validation of the PresentedMaterial. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The material validation is performed checking (1) a sublot, (2) material lot of the sublot and (3) material definition of the PresentedMaterial against each material sublot in the ExpectedMaterials array. When one matches, the PresentedMaterial is valid and its ValidationStatus is set to True, otherwise False.
The PresentedMaterial is compared against a material sublot from the ExpectedMaterials array as follows being valid when all checks are True:
Sublot:
The PresentedMaterial sublot MES_ID is equal to the sublot MES_ID of a material sublot from the ExpectedMaterials. If the MES_ID of a material sublot from the ExpectedMaterials is Null, then the result of the check is true.
Material lot:
If AllowMixedLots is True, then the result of the check is True. If AllowMixedLots is False, then the result of the check is True for the first presented MaterialSublot and for all subsequent MaterialSublots of the same MaterialLot.
The PresentedMaterial MaterialStockStatus is Unrestricted or equal to the ExpectedMaterial MaterialStockStatus. For example, a ripping machine processes blocked material.
The BestUsedBeforeDate of the material sublot from the ExpectedMaterials is not greater than the current date. If BestUsedBeforeDate is NULL, then the result of this check is true.
Material Definition:
The PresentedMaterial material definition MES_ID is equal to an ExpectedMaterial material definition MES_ID. If the ExpectedMaterial MES_ID is Null, then the result of the check is true.
When the material is validated, the machine proceeds loading it. If it is not validated, the IntegrityRejectedMaterialLogType event is triggered and when the PresentedMaterial is unloaded and the loading procedure terminates, the LoadingPointUnloadedLogType event is generated. If the underlying system cannot reject the invalid material automatically, a MaterialUnloadingRequiredLogType event is generated.
This OPC UA MaterialOutputPointType ObjectType describes the capability and real time information about the hand-over point of material from one machine module to another.
The MaterialOutputPointType is formally defined in the following table.
Table 52 – MaterialOutputPointType Definition
Attribute |
Value |
||||
BrowseName |
MaterialOutputPointType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the TMCDeviceType i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasProperty |
Variable |
DownstreamHeld |
0:Boolean |
0:PropertyType |
M, RO |
0:HasComponent |
Variable |
NominalProductionRate |
0:Double |
MaterialRateType |
M, RO |
0:HasComponent |
Variable |
ProducedMaterialMasterTotal |
0:Double |
MaterialQuantityVariableType |
M, RO |
0:HasProperty |
Variable |
MaterialDefinition |
MaterialDefinitionType |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
MES_ID |
0:String |
0:PropertyType |
M, RW |
0:HasComponent |
Variable |
ActualProductionRate |
0:Double |
MaterialRateType |
M, RO, HR |
0:HasComponent |
Variable |
ProducedMaterial |
MaterialSublotType |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ProducedMaterialTotal |
0:Double |
MaterialQuantityVariableType |
M, RO, HR |
0:HasComponent |
Variable |
ProductionRateState |
0:LocalizedText |
0:StateVariableType |
M, RO, HR |
0:HasProperty |
Variable |
MaterialPointDefinition |
MaterialPointType |
0:PropertyType |
M, RO |
0:GeneratesEvent |
ObjectType |
MaterialOutputProducedLogType |
|
|
|
Conformance Units |
|||||
TMC Data Collection |
Additionally, references of type FlowsTo shall be implemented.
The components of the MaterialOutputPointType are further described below.
BrowseName |
Description |
DownstreamHeld |
When the downstream machine module cannot receive the product flow, the upstream machine is required to hold the transfer of product to the downstream machine module. The Variable DownstreamHeld is True when the corresponding Variable UpstreamHold in the connected MaterialLoadingPoint is True. |
NominalProductionRate |
The nominal rate at which the output is produced, a.k.a. the machine design speed. |
ProducedMaterialMasterTotal |
The total quantity of complete sublots created at the machine material output. The value is never reset. |
MaterialDefinition |
The material definition of the material that the material output is expected to produce. |
MES_ID |
A higher-level system e.g., MES, identification of the carrier. |
ProducedMaterial |
The sublot currently being produced by the material output. The sublot quantity is updated by the underlying system as output is generated. |
ActualProductionRate |
The actual rate at which the output is being produced. |
ProducedMaterialTotal |
The total quantity of complete sublots created at the machine material output. |
ProductionRateState |
The ProductionRateState provides information about the state of the production rate justifying why the ActualProductionRate is different from the NominalProductionRate. At a minimum the list of states below shall be provided: Id=0, Speed is at Nominal value Id=1, Speed Changed by Operator Id=2, Speed Followed from Downstream Machine Id=3, Speed Reduced due to high material level at outfeed Id=4, Speed Reduced due to internal low material level Id=5, Speed Reduced due to Emptying Mode Id=6, Speed Reduced due to internal procedure (e.g. calibration) Id=7, Speed Reduced due to input material change (e.g. foil splicing, inner frame bobbin change, etc.) Id=8, Speed Changed by Remote Host When the actual rate is not measured, Id=0 Speed is at Nominal value will be returned. The speed set by an external host, if any, is used as the NominalProductionRate. Null speed is a speed reduction. The list may be extended for specific states not already covered in the list above. |
MaterialPointDefinition |
The Property MaterialPointDefinition contains the identification of the material point and the material that is processed. |
The MaterialStorageBufferType ObjectType describes locations where the product is stored in a machine module and the stored product.
The MaterialStorageBufferType representation in the AddressSpace is formally defined in the following table.
Table 53 – MaterialStorageBufferType Definition
Attribute |
Value |
|||||
BrowseName |
MaterialStorageBufferType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the TMCDeviceType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Variable |
ActualLoadingRate |
0:Double |
MaterialRateType |
M, RO, HR |
|
0:HasComponent |
Variable |
LoadingRateState |
0:LocalizedText |
0:StateVariableType |
M, RO, HR |
|
0:HasProperty |
Variable |
MaterialPointDefinition |
MaterialStorageBufferDataType |
0:PropertyType |
M, RO |
|
0:HasProperty |
Variable |
MES_ID |
0:String |
0:PropertyType |
M, RW |
|
0:HasProperty |
Variable |
MixingLogic |
StorageMixingLogicEnumeration |
0:PropertyType |
M, RW |
|
0:HasComponent |
Variable |
NominalLoadingRate |
0:Double |
MaterialRateType |
M, RO |
|
0:HasComponent |
Variable |
NominalUnloadingRate |
0:Double |
MaterialRateType |
M, RO |
|
0:HasProperty |
Variable |
StorageLogic |
StorageLogicEnumeration |
0:PropertyType |
M, RO |
|
0:HasComponent |
Variable |
StoredLot |
0:Double |
MaterialLotVariableType |
M, RO, HR |
|
0:HasProperty |
Variable |
TotalStorageCapacity |
0:Double |
0:PropertyType |
M, RW |
|
0:HasComponent |
Variable |
ActualUnloadingRate |
0:Double |
MaterialRateType |
M, RO, HR |
|
0:HasComponent |
Variable |
UnloadingRateState |
0:LocalizedText |
0:StateVariableType |
M, RO, HR |
|
Conformance Units |
||||||
TMC Core Production |
The components of the MaterialStorageBufferType are further described below.
BrowseName |
Description |
ID |
The unique identifier for the material storage buffer. |
ActualLoadingRate |
The rate at which the material is loaded onto the material storage buffer. The variable ActualLoadingRate indicates the quantity of the material consumed in 60 seconds. |
LoadingRateState |
The LoadingRateState provides information about the state of the loading rate justifying why the ActualLoadingRate is different from the NominalLoadingRate. At a minimum the list of states below shall be provided: Id=0, Speed is at Nominal value Id=1, Speed Changed by Operator Id=2, Speed Followed from Upstream Internal Id=3, Speed Reduced due to Upstream Internal low material level Id=4, Speed Reduced due to internal high material level Id=5, Speed Reduced due to Filling Mode Id=6, Speed Reduced due to internal procedure (e.g. calibration) Id=7, Speed Reduced due to input material change (e.g. foil splicing, inner frame bobbin change, etc.) Id=8, Speed Changed by Remote Host When the actual rate is not measured, Id=0 Speed is at Nominal value will be returned. The speed set by an external host, if any, is used as the NominalLoadingRate. Null speed is a speed reduction. The list may be extended for specific states not already covered in the list above. |
MaterialPointDefinition |
The Property MaterialPointDefinition contains the identification of the material point and the material that is processed or stored in the buffer. |
MES_ID |
The unique identifier of the material buffer storage according to a higher-level system, e.g. MES or ERP. |
MixingLogic |
MixingLogic identifies if and how materials can be mixed in the MaterialStorageBuffer. |
NominalLoadingRate |
The MaterialStorageBuffer loading rate at nominal conditions. |
NominalUnloadingRate |
The MaterialStorageBuffer unloading rate at nominal conditions. |
StorageLogic |
The logic used at the buffer storage to store and retrieve material. |
StoredLot |
The material stored in the material storage buffer. |
TotalStorageCapacity |
The total capacity of the material storage buffer. |
ActualUnloadingRate |
The rate at which the material is unloaded from the material storage buffer. The variable ActualUnloadingRate indicates the quantity of the material consumed in 60 seconds. |
UnloadingRateState |
The UnloadingRateState provides information about the state of the unloading rate justifying why the ActualUnloadingRate is different from the NominalUnloadingRate. At a minimum the list of states below shall be provided: Id=0, Speed is at Nominal value Id=1, Speed Changed by Operator Id=2, Speed Followed from Downstream Internal Id=3, Speed Reduced due to low material level Id=4, Speed Reduced due to Downstream Internal high material level Id=5, Speed Reduced due to Emptying Mode Id=6, Speed Reduced due to internal procedure (e.g. calibration) Id=7, Speed Reduced due to input material change (e.g. foil splicing, inner frame bobbin change, etc.) Id=8, Speed Changed by Remote Host When the actual rate is not measured, Id=0 Speed is at Nominal value will be returned. The speed set by an external host, if any, is used as the NominalUnloadingRate. Null speed is a speed reduction. The list may be extended for specific states not already covered in the list above. |
The MaterialRejectionPointType describes a device that is capable of rejecting product from the product flow. The MaterialRejectionPointType is formally defined in the following table.
Table 54 – MaterialRejectionPointType Definition
Attribute |
Value |
||||
BrowseName |
MaterialRejectionPointType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the TMCDeviceType, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasProperty |
Variable |
MaterialDefinition |
MaterialDefinitionType |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
MES_ID |
0:String |
0:PropertyType |
M, RW |
0:HasComponent |
Variable |
RejectedMaterialMasterTotal |
0:Double |
MaterialQuantityVariableType |
M, RO |
0:HasComponent |
Variable |
RejectedMaterialTotal |
0:Double |
MaterialQuantityVariableType |
M, RO, HR |
0:HasComponent |
Variable |
RejectedMaterialRatio |
0:Double |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
RejectionCountMasterTotal |
0:UInt64 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
RejectionCountTotal |
0:UInt64 |
0:BaseDataVariableType |
M, RO, HR |
0:HasProperty |
Variable |
RejectionMode |
0:Boolean |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
MaterialPointDefinition |
MaterialPointType |
0:PropertyType |
M, RO |
0:HasComponent |
Variable |
RejectionsRatio |
0:Double |
0:BaseDataVariableType |
M, RO, HR |
0:HasComponent |
Method |
SetRejectionMode |
See below. |
O |
|
0:GeneratesEvent |
ObjectType |
MaterialRejectedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
RejectionModeChangeLogType |
|
|
|
Conformance Units |
|||||
TMC Data Collection |
Additionally, references of type FlowsTo shall be implemented.
The components of the MaterialRejectionPointType are further described below.
BrowseName |
Description |
MaterialDefinition |
The material definition for the material to be rejected at the rejection trap. |
MES_ID |
Unique identifier for the material point in an external system, e.g. MES. |
RejectedMaterialMasterTotal |
The total material quantity rejected at the rejection trap. The total is never reset to zero. |
RejectedMaterialTotal |
The total material quantity rejected at the rejection trap. The total is reset to zero only when the ResetRejecitonTotals is invoked. |
RejectedMaterialRatio |
The Variable MaterialRejectedRatio is the ratio of the total material rejected (MaterialRejectedTotal) over the total good product and is computed by the underlying system. |
RejectionCountMasterTotal |
The total number of times the rejection trap was triggered. The total is never reset to zero. |
RejectionMode |
When RejectionMode is True, the rejection trap discharges material when triggered, otherwise no material is rejected. |
MaterialPointDefinition |
The Property MaterialPointDefinition contains the identification of the material point and the material that is processed. |
RejectionsRatio |
The Variable RejectionsRatio is the ratio between the good product output total and the rejected quantity total. |
RejectionCountTotal |
The total number of times the rejection trap was triggered. The total is reset to zero only when the ResetRejectionTotals is invoked. |
The Method SetRejectionMode enables or disables the rejection trap.
The signature of this Method is specified below. Table 55 specifies the Arguments representation.
Signature
SetRejectionMode (
[in] 0:Boolean RejectionMode,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 55 – SetRejectionMode Method Arguments
Argument |
Description |
RejectionMode |
When True, the rejection trap rejects.When False, the rejection trap does not reject. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The DefectDetectionSensorType represents a sensor or sensing system fitted to the machine module that detects product defects or a quality sampling point that can be triggered by an operator.
The DefectDetectionSensorType is formally defined in the following table.
Table 56 – DefectDetectionSensorType Definition
Attribute |
Value |
||||
BrowseName |
DefectDetectionSensorType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the TMCDeviceType, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Object |
<SensorFunction> |
|
SensorFunctionType |
MP |
0:HasComponent |
Object |
Data |
|
0:FolderType |
O |
0:HasComponent |
Variable |
DetectionCountMasterTotal |
0:UInt64 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
DetectionCountTotal |
0:UInt64 |
0:BaseDataVariableType |
M, RO, HR |
0:HasProperty |
Variable |
DetectionMode |
0:Boolean |
0:PropertyType |
M, RW |
0:HasComponent |
Method |
SetDetectionMode |
See below. |
O |
|
0:GeneratesEvent |
ObjectType |
DetectionModeChangeLogType |
|
|
|
Conformance Units |
|||||
TMC Quality Assurance and Control |
The components of the DefectDetectionSensorType are further described below.
BrowseName |
Description |
SensorFunction |
The sensor functions that the defect detection sensor or system is measuring. |
DetectionCountMasterTotal |
The total number of times a detection occurred. The total is never reset to zero. |
DetectionCountTotal |
The total number of times a detection occurred. The total is reset to zero only when the ResetProductionTotals method in the MachineModuleProductionType is executed successfully. |
DetectionMode |
When DetectionMode is True, the defect detection sensor or system detects defects and the inner sensor functions are enabled, meaning they can be active or not. When DetectionMode is False, the inner sensor functions are also not active. |
The components of the DefectDetectionSensorType have additional subcomponents which are defined in the following table.
Table 57 – DefectDetectionSensorType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Data |
0:HasComponent |
Variable |
<DataItem> |
0:BaseDataType |
0:BaseDataVariableType |
OP, RO |
The Method SetDetectionMode enables or disables the defect detection sensor.
The signature of this Method is specified below. Table 58 specifies the Arguments representation.
Signature
SetDetectionMode (
[in] 0:Boolean Enable,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 58 – SetDetectionMode Method Arguments
Argument |
Description |
Enable |
Specifies if the method enables, when True, or disables, when False, the defect detection sensor. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method SetDetectionMode sets the DetectionMode of the defect detection sensor and of its components, i.e. sensor functions and defect reasons.
The SensorFunctionType describes a single measuring function or quality sampling function and is formally defined in the following table.
Table 59 – SensorFunctionType Definition
Attribute |
Value |
||||
BrowseName |
SensorFunctionType |
||||
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 |
Object |
<DefectReason> |
|
DefectReasonType |
OP |
0:HasProperty |
Variable |
DetectionMode |
0:Boolean |
0:PropertyType |
M, RW |
0:HasComponent |
Method |
LoadReferenceFeatures |
See below. |
O |
|
0:HasComponent |
Variable |
SensorValue |
0:Number |
0:AnalogUnitType |
O, RO |
0:HasComponent |
Method |
SetDetectionMode |
See below. |
O |
|
0:HasComponent |
Object |
UIInfo |
|
UIInformationType |
O |
0:GeneratesEvent |
ObjectType |
DetectionModeChangeLogType |
|
|
|
Conformance Units |
|||||
TMC Quality Assurance and Control |
The components of the SensorFunctionType are further described below.
BrowseName |
Description |
<DefectReason> |
The defect reasons triggered by the sensor function. |
DetectionMode |
When DetectionMode is True, the sensor function measures the sensor value and the inner defect reasons are enabled, meaning they can be active or not. When DetectionMode is False, the inner defect reasons are also not active. |
SensorValue |
The value measured for the sensor function. |
UIInfo |
The visualization resources to display the SensorFunctionType on the User Interface. |
The Method LoadReferenceFeatures loads binary profiles to be used as references for defect detection.
The signature of this Method is specified below. Table 60 specifies the Arguments representation.
Signature
LoadReferenceFeatures (
[in] 0:ByteString[] Features,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 60 – LoadReferenceFeatures Method Arguments
Argument |
Description |
Features |
The list of binary profiles used as references for a detection system. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method SetDetectionMode enables or disables the defect detection sensor.
The signature of this Method is specified below. Table 61 specifies the Arguments representation.
Signature
SetDetectionMode (
[in] 0:Boolean Enable,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 61 – SetDetectionMode Method Arguments
Argument |
Description |
Enable |
Specifies if the method enables, when True, or disables, when False, the sensor function. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method SetDetectionMode sets the DetectionMode of the sensor function and of its components, i.e. the defect reasons.
The DefectReasonType describes a defect reason that is monitored by a SensorFunction. The DefectReasonType is formally defined in the following table.
Table 62 – DefectReasonType Definition
Attribute |
Value |
||||
BrowseName |
DefectReasonType |
||||
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:HasProperty |
Variable |
DetectionMode |
0:Boolean |
0:PropertyType |
M, RW |
0:HasComponent |
Variable |
DetectionCountMasterTotal |
0:UInt64 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
DetectionCountTotal |
0:UInt64 |
0:BaseDataVariableType |
M, RO, HR |
0:HasComponent |
Object |
UIInfo |
|
UIInformationType |
O |
0:HasComponent |
Method |
SetDetectionMode |
See below. |
O |
|
0:GeneratesEvent |
ObjectType |
DetectionModeChangeLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
DefectDetectedLogType |
|
|
|
Conformance Units |
|||||
TMC Quality Assurance and Control |
The components of the DefectReasonType are further described below.
BrowseName |
Description |
DetectionMode |
When DetectionMode is True, the defect reason is triggered. When DetectionMode is False, the defect reason is not active, i.e. never triggered. |
DetectionCountMasterTotal |
The total number of times the defect reason occurred. The total is never reset to zero. |
DetectionCountTotal |
The total number of times a defect reason occurred. The total is reset to zero only when the ResetProductionTotals method in the MachineModuleProductionType is executed successfully. |
UIInfo |
The visualization resources to display the DefectReasonType on the User Interface. |
The Method SetDetectionMode enables or disables the defect detection sensor.
The signature of this Method is specified below. Table 63 specifies the Arguments representation.
Signature
SetDetectionMode (
[in] 0:Boolean Enable,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 63 – SetDetectionMode Method Arguments
Argument |
Description |
Enable |
Specifies if the method enables, when True, or disables, when False, the defect reason. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The EquipmentModuleType ObjectType represents an equipment module according to the ISA 95 Physical Structure.
The EquipmentModuleType is formally defined in the following table.
Table 64 – EquipmentModuleType Definition
Attribute |
Value |
||||
BrowseName |
EquipmentModuleType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the TMCDeviceType, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Object |
Configuration |
|
EquipmentModuleConfigurationType |
M |
0:HasComponent |
Object |
ControlModules |
|
0:FolderType |
O |
0:HasComponent |
Object |
LiveStatus |
|
EquipmentModuleLiveStatusType |
M |
0:HasComponent |
Object |
ProcessControlLoops |
|
0:FolderType |
O |
0:HasComponent |
Object |
ProcessItems |
|
0:FolderType |
O |
0:HasComponent |
Object |
Setup |
|
EquipmentModuleSetupType |
M |
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The components of the EquipmentModuleType are further described below.
BrowseName |
Description |
Configuration |
The Configuration contains all digital settings, stop reasons and root causes of an equipment module. |
ControlModules |
The ControlModules folder contains the control modules belonging to the equipment module. |
LiveStatus |
The LiveStatus Object contains information about the real time status of the equipment module and provides affordances to control the equipment module remotely in real time. |
ProcessControlLoops |
The ProcessControlLoops folder contains process control loops of the equipment module. |
ProcessItems |
The ProcessItems folder contains process items of the equipment module. |
Setup |
The Setup Object contains the value of all the settings (including mechanical adjustments) required to run production as well as affordances to validate and load settings for the equipment module. |
The components of the EquipmentModuleType have additional subcomponents which are defined in the following table.
Table 65 – EquipmentModuleType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
||
ControlModules |
0:HasComponent |
Object |
<ControlModule> |
|
ControlModuleType |
OP |
||
ControlModules |
0:HasComponent |
Object |
AnalogInputs |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<AnalogInput> |
|
AnalogInputType |
OP |
||
ControlModules |
0:HasComponent |
Object |
DigitalInputs |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<DigitalInput> |
|
DigitalInputType |
OP |
||
ControlModules |
0:HasComponent |
Object |
Motors |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<Motor> |
|
MotorType |
OP |
||
ControlModules |
0:HasComponent |
Object |
Sensors |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<Sensor> |
|
SensorType |
OP |
||
ControlModules |
0:HasComponent |
Object |
Valves |
|
0:FolderType |
O |
||
|
0:HasComponent |
Object |
<Valve> |
|
ValveType |
OP |
||
ProcessControlLoops |
0:HasComponent |
Object |
<ProcessControlLoop> |
|
ProcessControlLoopType |
OP |
||
ProcessItems |
0:HasComponent |
Object |
<ProcessItem> |
|
ProcessItemType |
OP |
||
ProcessItems |
0:HasComponent |
Object |
<ProcessControlItem> |
|
ProcessControlItemType |
OP |
The EquipmentModuleConfigurationType ObjectType contains all digital settings, stop reasons and root causes of an equipment module.
The EquipmentModuleConfigurationType is formally defined in the following table.
Table 66 – EquipmentModuleConfigurationType Definition
Attribute |
Value |
||||
BrowseName |
EquipmentModuleConfigurationType |
||||
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 |
Variable |
<ConfigurationItem> |
0:BaseDataType |
0:DataItemType |
OP, RO |
0:HasProperty |
Variable |
LastChangeDate |
0:UtcTime |
0:PropertyType |
M, RO |
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The components of the EquipmentModuleConfigurationType are further described below.
BrowseName |
Description |
ConfigurationItem |
A data item used for configuration of the equipment module such as for example a setting, stop reason, root cause or another editable field. The data item type is any BaseDataType, e.g., string, float, integer and so on, for maximum flexibility. |
LastChangeDate |
The UTC date and time when the configuration was last changed. |
The EquipmentModuleLiveStatusType ObjectType contains information about the real time status of the equipment module and provides affordances to control the control module remotely in real time.
The EquipmentModuleLiveStatusType is formally defined in the following table.
Table 67 – EquipmentModuleLiveStatusType Definition
Attribute |
Value |
||||
BrowseName |
EquipmentModuleLiveStatusType |
||||
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 |
AcknowledgeAlarms |
See below. |
O |
|
0:HasComponent |
Object |
Alarms |
|
0:FolderType |
M |
0:HasProperty |
Variable |
ControlMode |
ControlModeEnumeration |
0:PropertyType |
M, RW |
0:HasComponent |
Object |
Data |
|
0:FolderType |
O |
0:HasComponent |
Method |
SendCommand |
See below. |
O |
|
0:HasComponent |
Method |
SetControlMode |
See below. |
O |
|
0:HasProperty |
Variable |
State |
StateEnumeration |
0:PropertyType |
M, RO |
0:HasComponent |
Object |
StateMachine |
|
TMCStateMachineType |
O |
0:GeneratesEvent |
ObjectType |
DiscreteAlarmType |
|
|
|
0:GeneratesEvent |
ObjectType |
ControlModeChangeLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
StateChangeLogType |
|
|
|
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The components of the EquipmentModuleLiveStatusType are further described below.
BrowseName |
Description |
Alarms |
The Alarms folder contains alarms of the equipment module. |
ControlMode |
The ControlMode describes the current control mode of the equipment module. |
Data |
The Data folder provides additional production data that is not already identified by TMC. |
State |
The State Property describes the status of the state machine controlling the equipment module. State provides a subset of the information of the state machine when the latter is implemented. |
StateMachine |
The state machine describes the current state of the equipment module, the possible transitions, and their conditions. |
The components of the EquipmentModuleLiveStatusType have additional subcomponents which are defined in the following table.
Table 68 – EquipmentModuleLiveStatusType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Alarms |
0:HasComponent |
Object |
<Alarm> |
|
0:DiscreteAlarmType |
OP |
Data |
0:HasComponent |
Variable |
<DataItem> |
0:BaseDataType |
0:BaseDataVariableType |
OP, RO |
The AcknowledgeAlarms method acknowledges the alarms of the equipment module and control modules belonging to it.
The signature of this Method is specified below. Table 69 specifies the Arguments representation.
Signature
AcknowledgeAlarms (
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 69 – AcknowledgeAlarms Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method SendCommand sends a command to change the state of the equipment module state machine remotely.
The signature of this Method is specified below. Table 70 specifies the Arguments representation.
Signature
SendCommand (
[in] CommandEnumeration Command,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 70 – SendCommand Method Arguments
Argument |
Description |
Command |
The command to be sent to the machine module. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The SetControlMode Method sets the control mode of the equipment module.
The signature of this Method is specified below. Table 71 specifies the Arguments representation.
Signature
SetControlMode (
[in] ControlModeEnumeration ControlMode,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 71 – SetControlMode Method Arguments
Argument |
Description |
ControlMode |
The control mode to be set to the machine module. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The EquipmentModuleSetupType ObjectType contains the value of all the settings required to run as well as affordances to validate and load settings for the equipment module.
The EquipmentModuleSetupType is formally defined in the following table.
Table 72 – EquipmentModuleSetupType Definition
Attribute |
Value |
||||
BrowseName |
EquipmentModuleSetupType |
||||
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 |
Variable |
<SetupItem> |
0:BaseDataType |
0:DataItemType |
OP, RW |
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The ControlModuleType ObjectType represents a control module according to the ISA 95 Physical Structure.
The ControlModuleType is formally defined in the following table.
Table 73 – ControlModuleType Definition
Attribute |
Value |
||||
BrowseName |
ControlModuleType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the TMCDeviceType, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Object |
Aggregates |
|
ControlModuleAggregatesType |
O |
0:HasComponent |
Object |
Configuration |
|
ControlModuleConfigurationType |
M |
0:HasComponent |
Object |
LiveStatus |
|
ControlModuleLiveStatusType |
M |
0:HasComponent |
Object |
Setup |
|
ControlModuleSetupType |
O |
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The components of the ControlModuleType are further described below.
BrowseName |
Description |
Aggregates |
Aggregates contains aggregate information for the control module e.g., running hours for a motor. |
Configuration |
Configuration provides configuration (i.e., seldom changing) settings, stop reasons and root causes of a control module. |
LiveStatus |
LiveStatus Object provides information about the real time status of the control module and affordances to control the control module remotely in real time. |
Setup |
Setup provides the value of all the digital settings required to run the control module. |
The ControlModuleAggregatesType ObjectType contains aggregated data for the control module e.g. running hours for a motor.
The ControlModuleAggregatesType is formally defined in the following table.
Table 74 – ControlModuleAggregatesType Definition
Attribute |
Value |
||||
BrowseName |
ControlModuleAggregatesType |
||||
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 |
Variable |
<AggregateItem> |
0:BaseDataType |
0:BaseDataVariableType |
OP, RO |
0:HasComponent |
Method |
ResetAggregates |
See below. |
M |
|
0:HasProperty |
Variable |
ValidSince |
0:UtcTime |
0:PropertyType |
M, RO |
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The components of the ControlModuleAggregatesType are further described below.
BrowseName |
Description |
AggregateItem |
An aggregate data item computed by the control module. |
ValidSince |
The UTC date and time of the last aggregates reset. |
The ResetAggregates resets the aggregates of the control module.
The signature of this Method is specified below. Table 75 specifies the Arguments representation.
Signature
ResetAggregates (
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 75 – ResetAggregates Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The ControlModuleConfigurationType ObjectType contains all digital settings, stop reasons and root causes of a control module.
The ControlModuleConfigurationType is formally defined in the following table.
Table 76 – ControlModuleConfigurationType Definition
Attribute |
Value |
||||
BrowseName |
ControlModuleConfigurationType |
||||
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 |
Variable |
<ConfigurationItem> |
0:BaseDataType |
0:DataItemType |
OP, RO |
0:HasProperty |
Variable |
DeviceLifeSpan |
0:UInt32 |
0:PropertyType |
O, RO |
0:HasProperty |
Variable |
ValidSince |
0:UtcTime |
0:PropertyType |
M, RO |
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The components of the ControlModuleConfigurationType are further described below.
BrowseName |
Description |
ConfigurationItem |
A digital setting for the control module e.g. parameter, stop reason or root cause. |
DeviceLifeSpan |
The control module expected life span duration. |
ValidSince |
The UTC date and time when the configuration was last changed. |
The ControlModuleLiveStatusType ObjectType contains information about the real time status of the control module and provides affordances to control the control module remotely in real time.
The ControlModuleLiveStatusType is formally defined in the following table.
Table 77 – ControlModuleLiveStatusType Definition
Attribute |
Value |
||||
BrowseName |
ControlModuleLiveStatusType |
||||
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 |
AcknowledgeAlarms |
See below. |
O |
|
0:HasComponent |
Object |
Alarms |
|
0:FolderType |
M |
0:HasProperty |
Variable |
ControlMode |
ControlModeEnumeration |
0:PropertyType |
M, RW |
0:HasComponent |
Object |
Data |
|
0:FolderType |
O |
0:HasComponent |
Object |
Interlocks |
|
0:FolderType |
O |
0:HasComponent |
Object |
Measurements |
|
0:FolderType |
O |
0:HasComponent |
Object |
ProcessControlLoops |
|
0:FolderType |
O |
0:HasComponent |
Method |
SendCommand |
See below. |
O |
|
0:HasComponent |
Method |
SetControlMode |
See below. |
O |
|
0:HasProperty |
Variable |
State |
StateEnumeration |
0:PropertyType |
M, RO |
0:HasComponent |
Object |
StateMachine |
|
TMCStateMachineType |
O |
0:GeneratesEvent |
ObjectType |
ControlModeChangeLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
DiscreteAlarmType |
|
|
|
0:GeneratesEvent |
ObjectType |
StateChangeLogType |
|
|
|
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The components of the ControlModuleLiveStatusType are further described below.
BrowseName |
Description |
Alarms |
The Alarms folder provides alarms of the control module. |
ControlMode |
The ControlMode describes the current control mode of the equipment module. |
Data |
The Data folder contains additional data whose structure and name are not known in advance. |
Interlocks |
The Interlocks Folder provides the interlocks that, when not True, do not allow the operation of the control module. |
Measurements |
The Measurement Folder provides measurement values produced by the control module that do not require a dedicated process item e.g., actual motor current. |
ProcessControlLoops |
The ProcessControlLoops Folder contains regulation systems of the control module e.g., servo drives. |
State |
The State Property describes the status of the state machine controlling the control module. State provides a subset of the information of the state machine, when the latter is implemented. |
StateMachine |
The StateMachine describes the current state of the control module, the possible transitions, and their conditions. |
The components of the ControlModuleLiveStatusType have additional subcomponents which are defined in the following table.
Table 78 – ControlModuleLiveStatusType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Alarms |
0:HasComponent |
Object |
<Alarm> |
|
0:DiscreteAlarmType |
OP |
Data |
0:HasComponent |
Variable |
<DataItem> |
0:BaseDataType |
0:BaseDataVariableType |
OP, RO |
Interlocks |
0:HasComponent |
Variable |
<InterlockConditionItem> |
0:Boolean |
0:BaseDataVariableType |
OP, RO |
Measurements |
0:HasComponent |
Variable |
<MeasurementItem> |
0:Number |
0:AnalogItemType |
OP, RO |
ProcessControlLoops |
0:HasComponent |
Object |
<ProcessControlLoop> |
|
ProcessControlLoopType |
OP |
The AcknowledgeAlarms Method acknowledges the alarms of the control module.
The signature of this Method is specified below. Table 79 specifies the Arguments representation.
Signature
AcknowledgeAlarms (
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 79 – AcknowledgeAlarms Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method SendCommand sends a command to change the state of the control module state machine remotely.
The signature of this Method is specified below. Table 80 specifies the Arguments representation.
Signature
SendCommand (
[in] CommandEnumeration Command,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 80 – SendCommand Method Arguments
Argument |
Description |
Command |
The command to be sent to the machine module. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The SetControlMode Method sets the control mode of the control module.
The signature of this Method is specified below. Table 81 specifies the Arguments representation.
Signature
SetControlMode (
[in] ControlModeEnumeration ControlMode,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 81 – SetControlMode Method Arguments
Argument |
Description |
ControlMode |
The control mode to be set to the machine module. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The ControlModuleSetupType ObjectType contains the value of all the settings required to run as well as affordances to validate and load settings for the control module.
The ControlModuleSetupType is formally defined in the following table.
Table 82 – ControlModuleSetupType Definition
Attribute |
Value |
||||
BrowseName |
ControlModuleSetupType |
||||
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 |
Variable |
<SetupItem> |
0:BaseDataType |
0:DataItemType |
OP, RW |
Conformance Units |
|||||
TMC Basic Visualisation and Control |
The UIInformationType provides graphical specifications required for creating faceplates to display the information made available by the OPC UA Server.
When the information described in the UIInformationType is provided, an OPC UA Client can render the visualisation without further configuration efforts. Thus a suitable zero-config, zero- engineering visualisation is possible.
The UIInformationType is formally defined in the following table.
Table 83 – UIInformationType Definition
Attribute |
Value |
||||
BrowseName |
UIInformationType |
||||
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 |
DeleteUIResource |
See below. |
M |
|
0:HasComponent |
Method |
LoadUIResource |
See below. |
M |
|
0:HasProperty |
Variable |
PositionX |
0:Double |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
PositionY |
0:Double |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
PositionZ |
0:Double |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
Resizable |
0:Boolean |
0:PropertyType |
M, RW |
0:HasComponent |
Object |
UIResources |
|
0:FolderType |
M |
0:HasProperty |
Variable |
Width |
0:Double |
0:PropertyType |
M, RW |
Conformance Units |
|||||
TMC Advanced Visualisation and Control |
The components of the UIInformationType are further described below.
BrowseName |
Description |
PositionX |
PositionX is the relative horizontal position of the top-left corner of the object rendering in the target visualization scope. |
PositionY |
PositionX is the relative vertical position of the top-left corner of the object rendering in the target visualization scope. |
PositionZ |
PositionZ is the depth of the object rendering in the target visualization scope. |
Resizable |
When Resizable is True, the UI resource Width is rescaled based on the actual display size. |
UIResources |
The UIResources folder contains any number of vectorial images of the object to be rendered in the status/mode defined by the name of the file, e.g. Running.svg is the representation of the object when the status is running. The server will persist external resources that a client will save into the folder. |
Width |
Width is the width of the object visualization in the target visualization scope. |
The components of the UIInformationType have additional subcomponents which are defined in the following table.
Table 84 – UIInformationType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
UIResources |
0:HasProperty |
Variable |
<ResourceName> |
0:String |
0:PropertyType |
OP, RW |
UIResources |
0:HasProperty |
Variable |
Default |
0:String |
0:PropertyType |
M, RW |
The resource named ResourceName and Default strings describe Scalable Vector Graphics (SVG2) and, as such, comply with the W3C recommendations for SVG2 as published here: https://www.w3.org/TR/SVG2/.
The Method LoadUIResource loads a UI resource in the underlying system for visualization. It will override the existing UI resource by the same name.
The signature of this Method is specified below. Table 85 specifies the Arguments representation.
Signature
LoadUIResource (
[in] 0:String ResourceName,
[in] 0:String ResourceValue,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 85 – LoadUIResource Method Arguments
Argument |
Description |
ResourceName |
The name of the UI resource to be created in the underlying system. |
ResourceValue |
The value that the UI resource will obtain in the underlying system, i.e. the SVG file. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The Method DeleteUIResource permanently removes a UI resource from the underlying system memory.
The signature of this Method is specified below. Table 86 specifies the Arguments representation.
Signature
DeleteUIResource (
[in] 0:String ResourceName,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 86 – DeleteUIResource Method Arguments
Argument |
Description |
ResourceName |
The name of the UI resource to be deleted from the underlying system. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The AnalogInputType ObjectType describes an analog input signal.
The AnalogInputType representation in the AddressSpace is formally defined in the following table.
Table 87 – AnalogInputType Definition
Attribute |
Value |
|||||
BrowseName |
AnalogInputType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Variable |
RawValue |
0:Number |
0:AnalogItemType |
M, RO |
|
0:HasComponent |
Object |
Setup |
|
AnalogInputSetupType |
M |
|
0:HasComponent |
Variable |
Value |
0:Double |
0:AnalogItemType |
M, RO |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the AnalogInputType are further described below.
BrowseName |
Description |
RawValue |
The raw value of the analog input. |
Setup |
The settings to set up the analog input. |
Value |
The engineering unit value of the analog input. |
The DigitalInputType ObjectType describes a digital input signal.
The DigitalInputType representation in the AddressSpace is formally defined in the following table.
Table 88 – DigitalInputType Definition
Attribute |
Value |
|||||
BrowseName |
DigitalInputType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Object |
Setup |
|
DigitalInputSetupType |
M |
|
0:HasComponent |
Variable |
Value |
0:Boolean |
0:TwoStateDiscreteType |
M, RO |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the DigitalInputType are further described below.
BrowseName |
Description |
Setup |
The settings to set up the digital input. |
Value |
The raw value of the digital input. |
The MotorType ObjectType describes a motor.
The MotorType representation in the AddressSpace is formally defined in the following table.
Table 89 – MotorType Definition
Attribute |
Value |
|||||
BrowseName |
MotorType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Object |
Aggregates |
|
MotorAggregatesType |
M |
|
0:HasComponent |
Object |
Setup |
|
MotorSetupType |
M |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the MotorType are further described below.
BrowseName |
Description |
Aggregates |
The aggregated data exposed by the motor. |
Setup |
The settings to set up the motor. |
The SensorType ObjectType describes a sensor.
The SensorType representation in the AddressSpace is formally defined in the following table.
Table 90 – SensorType Definition
Attribute |
Value |
|||||
BrowseName |
SensorType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Object |
Setup |
|
ControlModuleSetupType |
M |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the SensorType are further described below.
BrowseName |
Description |
Setup |
The settings to set up the motor. |
The ValveType ObjectType describes a valve.
The ValveType representation in the AddressSpace is formally defined in the following table.
Table 91 – ValveType Definition
Attribute |
Value |
|||||
BrowseName |
ValveType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Object |
Aggregates |
|
ValveAggregatesType |
M |
|
0:HasComponent |
Object |
Configuration |
|
ControlModuleConfigurationType |
M |
|
0:HasComponent |
Object |
Setup |
|
ValveSetupType |
M |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the ValveType are further described below.
BrowseName |
Description |
Aggregates |
The aggregated data exposed by the valve. |
Configuration |
The configuration settings for the valve. |
Setup |
The settings to set up the valve. |
The ControlModuleAggregatesType ObjectType provides aggregates computed by the underlying system for the control module.
The ControlModuleAggregatesType representation in the AddressSpace is formally defined in the following table.
Table 92 – ControlModuleAggregatesType Definition
Attribute |
Value |
|||||
BrowseName |
ControlModuleAggregatesType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
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 |
Variable |
<AggregateItem> |
0:BaseDataType |
0:BaseDataVariableType |
OP, RO |
|
0:HasComponent |
Method |
ResetAggregates |
See below. |
M |
||
0:HasProperty |
Variable |
ValidSince |
0:UtcTime |
0:PropertyType |
M, RO |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the ControlModuleAggregatesType are further described below.
BrowseName |
Description |
AggregateItem |
A single aggregate data point exposed by the control module. |
ValidSince |
The time of the last reset for the aggregates. |
The ResetAggregates Method resets the aggregates of the control module.
The signature of this Method is specified below. Table 93 specifies the Arguments representation.
Signature
ResetAggregates (
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 93 – ResetAggregates Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The MotorAggregatesType ObjectType provides aggregates computed by the underlying system for an analog input.
The MotorAggregatesType representation in the AddressSpace is formally defined in the following table.
Table 94 – MotorAggregatesType Definition
Attribute |
Value |
|||||
BrowseName |
MotorAggregatesType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleAggregatesType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Variable |
TotalRunningHours |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
|
0:HasComponent |
Variable |
TotalStartStopCounter |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the MotorAggregatesType are further described below.
BrowseName |
Description |
TotalRunningHours |
The total number of running hours for the motor. |
TotalStartStopCounter |
The total number of times the motor was started and stopped. |
The ValveAggregatesType ObjectType provides aggregates computed by the underlying system for an analog input.
The ValveAggregatesType representation in the AddressSpace is formally defined in the following table.
Table 95 – ValveAggregatesType Definition
Attribute |
Value |
|||||
BrowseName |
ValveAggregatesType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleAggregatesType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Variable |
CycleCounter |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the ValveAggregatesType are further described below.
BrowseName |
Description |
CycleCounter |
The total number of times the solenoid valve was energized and de-energised. |
The AnalogInputSetupType ObjectType provides settings and other affordance to set up an analog input.
The AnalogInputSetupType representation in the AddressSpace is formally defined in the following table.
Table 96 – AnalogInputSetupType Definition
Attribute |
Value |
|||||
BrowseName |
AnalogInputSetupType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleSetupType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Variable |
ForcedValue |
0:Double |
0:AnalogItemType |
M, RW |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the AnalogInputSetupType are further described below.
BrowseName |
Description |
ForcedValue |
The value to set as the input value when control mode is manual. |
The DigitalInputSetupType ObjectType provides settings and other affordance to set up an analog input.
The DigitalInputSetupType representation in the AddressSpace is formally defined in the following table.
Table 97 – DigitalInputSetupType Definition
Attribute |
Value |
|||||
BrowseName |
DigitalInputSetupType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleSetupType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Variable |
ForcedValue |
0:Boolean |
0:DataItemType |
M, RW |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the DigitalInputSetupType are further described below.
BrowseName |
Description |
ForcedValue |
The value to set as the input value when control mode is manual. |
The MotorSetupType ObjectType provides settings and other affordances to set up a motor.
The MotorSetupType representation in the AddressSpace is formally defined in the following table.
Table 98 – MotorSetupType Definition
Attribute |
Value |
|||||
BrowseName |
MotorSetupType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleSetupType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Variable |
Direction |
MotorDirectionEnumeration |
0:DataItemType |
O, RW |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the MotorSetupType are further described below.
BrowseName |
Description |
Direction |
The rotation direction of the motor. |
The ValveSetupType ObjectType provides aggregates computed by the underlying system for a valve.
The ValveSetupType representation in the AddressSpace is formally defined in the following table.
Table 99 – ValveSetupType Definition
Attribute |
Value |
|||||
BrowseName |
ValveSetupType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ControlModuleSetupType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Variable |
PositionSetPoint |
0:Double |
0:AnalogItemType |
O, RW |
|
Conformance Units |
||||||
TMC Basic Visualisation and Control |
The components of the ValveSetupType are further described below.
BrowseName |
Description |
PositionSetPoint |
The position set point for the valve to reach. |
The UserInterfaceType provides a generic User Interface description consisting of:
An overview display, modelled by OverVU;
A close-up, detail display, modelled by ZoomedVU;
A control-loop view where the connections (modelled by the LoopVUReferences) among objects belonging to the same control loop are shown;
An overlay display where KPIs are shown, modelled by KPIVU;
A control panel, where shown objects can be read only (modelled by ControlPanelVURO) or read-write (modelled by ControlPanelVURW);
The UserInterfaceType is formally defined in the following table.
Table 100 – UserInterfaceType Definition
Attribute |
Value |
||||
BrowseName |
UserInterfaceType |
||||
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 |
Object |
ControlPanelVURO |
0:Double |
0:BaseObjectType |
M |
0:HasComponent |
Object |
ControlPanelVURW |
0:Double |
0:BaseObjectType |
M |
0:HasComponent |
Object |
KPIVU |
0:Double |
0:BaseObjectType |
M |
0:HasComponent |
Object |
LoopVUReferences |
0:Double |
0:BaseObjectType |
M |
0:HasComponent |
Object |
OverVU |
0:Double |
0:BaseObjectType |
M |
0:HasComponent |
Object |
ZoomedVU |
0:Double |
0:BaseObjectType |
M |
Conformance Units |
|||||
TMC Advanced Visualisation and Control |
The components of the UserInterfaceType are further described below.
BrowseName |
Description |
ControlPanelVURO |
The control panel area where read-only objects are shown. Objects connected to a ControlPanelVURO by means of a non-hierarchical reference of type IsDisplayedBy are shown in the control panel. |
ControlPanelVURW |
The control panel area where read-write objects are shown. Objects connected to a ControlPanelVURW by means of a non-hierarchical reference of type IsDisplayedBy are shown in the control panel. |
KPIVU |
The object collecting variables to be displayed in the KPI section. Objects connected to a KPIVU by means of a non-hierarchical reference of type IsDisplayedBy are shown in the KPI display area. |
LoopVUReferences |
The collection of references to control loops to be displayed. Non-hierarchical references connected to LoopVuReferences by means of a non-hierarchical reference of type IsDisplayedBy are shown in the control panel. |
OverVU |
The overview of the UI interface. Objects connected to an OverVU by means of a non-hierarchical reference of type IsDisplayedBy are shown in the overview display. |
ZoomedVU |
The zooned view of the UI interface. Objects connected to a ZoomedVU by means of a non-hierarchical reference of type IsDisplayedBy are shown in the zoomed in area. |
The ProductionOrderOrchestrationLayerType (POOL) ObjectType consists of a set of variables, generated events and methods that are used to orchestrate production orders for a set of Machine Modules that implement the MachineModuleProductionType and are variously connected in a production line. The production line is also known as a Process Cell according to ANSI/ISA-88.00.01-2010 Physical Model.
The POOL ObjectType is an external application, i.e. it is not implemented by a machine module. Nonetheless it is of interest for machine modules and their implementations because of the tight connection and interaction.
The ProductionOrderOrchestrationLayerType is formally defined in the following table.
Table 101 – ProductionOrderOrchestrationLayerType
Attribute |
Value |
|||||
BrowseName |
ProductionOrderOrchestrationLayerType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the TMCDeviceType, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasProperty |
Variable |
ProductionOrdersRetentionTime |
0:UInt32 |
|
M, RW |
|
0:HasComponent |
Object |
ProductionOrders |
|
0:FolderType |
M |
|
0:HasComponent |
Method |
AbortProductionOrder |
See below. |
M |
||
0:HasComponent |
Method |
AssignProductionOrder |
See below. |
M |
||
0:HasComponent |
Method |
CompleteProductionOrder |
See below. |
M |
||
0:HasComponent |
Method |
GetDataSet |
See below. |
M |
||
0:HasComponent |
Method |
GetMaterialList |
See below. |
M |
||
0:HasComponent |
Method |
GetProductionOrder |
See below. |
M |
||
0:HasComponent |
Method |
ReleaseProductionOrder |
See below. |
M |
||
0:HasComponent |
Method |
StartProductionOrder |
See below. |
M |
||
0:HasComponent |
Method |
UnassignProductionOrder |
See below. |
M |
||
0:HasComponent |
Method |
UnreleaseProductionOrder |
See below. |
M |
||
Conformance Units |
||||||
TMC Production Order Orchestration Layer |
The components of the ProductionOrderOrchestrationLayerType have additional subcomponents which are defined in the following table.
Table 102 – ProductionOrderOrchestrationLayerType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
ProductionOrders |
0:HasComponent |
Object |
<ProductionOrderNumber> |
|
ProductionOrderExecutionStateMachineType |
OP |
The components of the ProductionOrderOrchestrationLayerType are further described below.
BrowseName |
Description |
ProductionOrdersRetentionTime |
The time in hours a ProductionOrderStateMachine is retained in memory after the production order is complete. When the ProductionOrdersRetentionTime is elapsed, the ProductionOrderExecutionStateMachine is discarded from memory and from the containing folder ProductionOrders. |
ProductionOrders |
ProductionOrders is a folder that organizes objects of type ProductionOrderExecutionStateMachineType i.e., one state machine per production order managed by POOL. Production orders are managed by POOL from their release by a higher-level system, e.g. MES, MOM, to their normal or abnormal completion or un-release and afterwards are persisted for a period of time defined by ProductionOrdersRetentionTime after which production orders are discarded from memory. |
The reader shall note that there is one production order state machine for any given production order for the entire process cell regardless of the number of machine modules, each having its own StateMachine of the Production object within the MachineModule. In ways that are defined in this section, ProductionOrderExecutionStateMachine consolidates and coordinates the state of all machine modules with respect to the production order.
The AbortProductionOrder Method is used to abort a production order that is in execution or starting or completing in the production line.
To execute the method, POOL will in turn invoke the AbortProductionOrder method at all the machine modules where the production order is present in the arrary AssignedProductionOrders.
The signature of this Method is specified below. Table 103 specifies the Arguments representation.
Signature
AbortProductionOrder(
[in] ProductionOrderHeaderType POToAbort,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 103 – AbortProductionOrder Method Arguments
Argument |
Description |
POToAbort |
The Production Order to be aborted. |
ExecutionFeedback |
The result of the execution of the method. |
The AssignProductionOrder Method is used to assign a production order to one infeed machine module where it shall be executed.
To execute the method, POOL will in turn invoke the AssignProductionOrder method at the machine modules identified by the argument MachineModulesToAssign.
Assignment is required and useful because there are generally many machine modules that can execute a production order so that it is necessary to identify which machine module will be executing the specific one. The attentive reader shall note that a production order may require many infeed machine modules to execute the production order.
The signature of this Method is specified below. Table 104 specifies the Arguments representation.
Signature
AssignProductionOrder(
[in] ProductionOrderHeaderType POToAssign,
[in] 0:String[] MachineModuleUserName,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 104 - AssignProductionOrder Method Arguments
Argument |
Description |
POToAssign |
The Production Order Header to be assigned. |
MachineModuleUserName |
The user name of the machine modules to which the PO is assigned. The machine module identifier is exposed in the UserName in the MachineModuleConfiguration of the machine module. |
ExecutionFeedback |
The result of the execution of the method. |
The CompleteProductionOrder Method is used to complete a production order in execution.
To execute the method, POOL will in turn invoke the CompleteProductionOrder method at the machine module identified by the input argument MachineModuleToComplete.
The signature of this Method is specified below. Table 105 specifies the Arguments representation.
Signature
CompleteProductionOrder(
[in] ProductionOrderHeaderType POToComplete,
[in] 0:String MachineModuleUserName,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 105 - CompleteProductionOrder Method Arguments
Argument |
Description |
POToComplete |
The Production Order Header to be completed. |
MachineModuleUserName |
The user name of the machine module where the PO is completed. The machine module identifier is exposed in the UserName in the MachineModuleConfiguration of the machine module. |
ExecutionFeedback |
The result of the execution of the method. |
The GetDataset Method is used to retrieve the data set from a production order header. The primary intended use is for a memory constrained underlying system to retrieve the production order information just in time without storing it for all assigned production orders.
The signature of this Method is specified below. Table 106 specifies the Arguments representation.
Signature
GetDataSet(
[in] ProductionOrderHeaderType POHeader,
[in] 0:String MachineModuleUserName,
[out] DataSetType DataSet,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 106 - GetDataSet Method Arguments
Argument |
Description |
POHeader |
The Production Order Header of the dataset to be retrieved. |
MachineModuleUserName |
The user name of the machine module for which the information is requested. The machine module identifier is exposed in the UserName in the MachineModuleConfiguration of the machine module. |
DataSet |
The DataSet for the production order with Production Order Header. |
ExecutionFeedback |
The result of the execution of the method. |
The GetMaterialList Method is used to retrieve the material list information from a production order header. The primary intended use is for a memory constrained underlying system to retrieve the production order information just in time without storing it for all assigned production orders.
The signature of this Method is specified below. Table 107 specifies the Arguments representation.
Signature
GetMaterialList(
[in] ProductionOrderHeaderType POHeader,
[in] 0:String MachineModuleUserName,
[out] MaterialListType MaterialList,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 107 - GetMaterialList Method Arguments
Argument |
Description |
POHeader |
The Production Order Header of the Material List to be retrieved. |
MaterialList |
The Material List for the production order with Production Order Header. |
MachineModuleUserName |
The user name of the machine module for which the information is requested. The machine module identifier is exposed in the UserName in the MachineModuleConfiguration of the machine module. |
ExecutionFeedback |
The result of the execution of the method. |
The GetProductionOrder Method is used to retrieve the complete production order information starting with a production order header as an input argument. The primary intended use is for a memory constrained underlying system to retrieve the production order information just in time without storing it for many assigned production orders. In the memory constrained case, it is the responsibility of the underlying system to retrieve the production order information on time without delaying the production order execution start.
The signature of this Method is specified below. Table 108 specifies the Arguments representation.
Signature
GetProductionOrder(
[in] ProductionOrderHeaderType POHeader,
[in] 0:String MachineModuleUserName,
[out] ProductionOrderType ProductionOrder,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 108 - GetProductionOrder Method Arguments
Argument |
Description |
POHeader |
The Production Order Header of the Material List to be retrieved. |
MachineModuleUserName |
The user name of the machine module for which the information is requested. The machine module identifier is exposed in the UserName in the MachineModuleConfiguration of the machine module. |
ProductionOrder |
The complete Production Order with header Production Order Header. |
ExecutionFeedback |
The result of the execution of the method. |
The ReleaseProductionOrder Method is used to make a production order available to a machine module for orchestrated execution in a production line (Process Cell according to ANSI/ISA-88.00.01-2010 Physical Model).
When the method is executed successfully, a new ProductionOrderExecutionStateMachine is instantiated for the released production order when not already existing.
When the ProductionOrderExecutionStateMachine is in state Unreleased, the successful execution of the method causes the state transition to Releasing.
The signature of this Method is specified below.
Signature
ReleaseProductionOrder(
[in] OrchestrationProductionOrderType POToRelease,
[in] 0:String MachineModuleUserName,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 109 - ReleaseProductionOrder Method Arguments
Argument |
Description |
POToRelease |
The Production Order Header for the Production Order to be released. |
MachineModuleUserName |
The user name of the machine module where the PO is released. The machine module identifier is exposed in the UserName in the MachineModuleConfiguration of the machine module. |
ExecutionFeedback |
The result of the execution of the method. |
The StartProductionOrder Method is used to start the execution of a production order at a machine module specifying the loading points that input materials will be fed to and the output points where output will be directed.
To execute the method, POOL will in turn invoke the StartProductionOrder method at the machine module identified by the input argument MachineModuleToStart.
The signature of this Method is specified below.
Signature
StartProductionOrder(
[in] ProductionOrderHeaderTypePOToStart,
[in] 0:String MachineModuleUserName,
[in] 0:String[] SourceMaterialLoadingPointIDs,
[in] 0:String[] DestinationMaterialOutputPointIDs,
[out] MethodExecutionFeedbackTypeExecutionFeedback);
Table 110 - StartProductionOrder Method Arguments
Argument |
Description |
POToStart |
The Production Order Header for the Production Order to be started. |
MachineModuleUserName |
The user name of the machine module where the PO is started. The machine module identifier is exposed in the UserName in the MachineModuleConfiguration of the machine module. |
SourceMaterialLoadingPointIDs |
The MaterialLoadingPoints where input materials will be fed for the Production Order to be started. |
DestinationMaterialOutputPointIDs |
The MaterialOutputPoints where output materials will be directed to for the Production Order to be started. |
ExecutionFeedback |
The result of the execution of the method. |
The UnAssignProductionOrder Method is used to unassign a production order previously assigned to an infeed machine module. It reverses the effect of the AssignProductionOrder method when the production order is not yet in execution.
To execute the method, POOL will in turn invoke the UnAssignProductionOrder method at all the machine modules where the production order is present in the AssignedProductionOrders.
The signature of this Method is specified below.
Signature
UnassignProductionOrder(
[in] ProductionOrderHeaderType POToUnassign,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 111 - UnassignProductionOrder Method Arguments
Argument |
Description |
POToUnassign |
The Production Order Header for the Production Order to be unassigned. |
ExecutionFeedback |
The result of the execution of the method. |
The UnreleaseProductionOrder Method is used to reverse the effect of the ReleaseProductionOrder method and make a previously released production order unavailable for assignment and production.
For example, it is used prior to sending changes to an already released production order.
The signature of this Method is specified below. Table 109 specifies the Arguments representation.
Signature
ReleaseProductionOrder(
[in] ProductionOrderHeaderType POToUnrelease,
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 112 - UnreleaseProductionOrder Method Arguments
Argument |
Description |
POToUnrelease |
The Production Order Header for the Production Order to be unreleased. |
ExecutionFeedback |
The result of the execution of the method. |
The MachineModuleProductionStateMachineType provides state information about the execution of a production order at a Machine Module.
The MachineModuleProductionStateMachineType is formally defined in the following table.
Table 113 – MachineModuleProductionStateMachineType Definition
Attribute |
Value |
|||||
BrowseName |
MachineModuleProductionStateMachineType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the FiniteStateMachineType defined in OPC 10000-5 Annex B, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Object |
Aborted |
|
0:StateType |
|
|
0:HasComponent |
Object |
AbortedToComplete |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
AbortedToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Aborting |
|
0:StateType |
|
|
0:HasComponent |
Object |
AbortingToAborted |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
AbortingToAbortedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Assigned |
|
0:StateType |
|
|
0:HasComponent |
Object |
AssignedToComplete |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
AssignedToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
AssignedToStarting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
AssignedToStartingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Complete |
|
0:InitialStateType |
|
|
0:HasComponent |
Object |
CompleteToAssigned |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
CompleteToAssignedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Completing |
|
0:StateType |
|
|
0:HasComponent |
Object |
CompletingToAborting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
CompletingToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
CompletingToComplete |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
CompletingToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Execute |
|
0:StateType |
|
|
0:HasComponent |
Object |
ExecuteToAborting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
ExecuteToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
ExecuteToCompleting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
ExecuteToCompletingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Variable |
LastTransition |
0:LocalizedText |
0:FiniteTransitionVariableType |
M, RO |
|
0:HasComponent |
Object |
Starting |
|
0:StateType |
|
|
0:HasComponent |
Object |
StartingToAborting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
StartingToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
StartingToExecute |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
StartingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:GeneratesEvent |
ObjectType |
ProductionOrderTransitionLogType |
|
|
|
|
Conformance Units |
||||||
TMC Single PO Production |
The components of the MachineModuleProductionStateMachineType are further described below.
BrowseName |
Description |
Assigned |
When the CurrentState of the StateMachine is Assigned, the information for at least one production order to be started is available.
When the CurrentState of the StateMachine is Assigned and there is a production order in execution, i.e. ProductionOrder is not null, the state transitions to Starting. The variable ProductionOrder is set in the following cases:
When the CurrentState of the StateMachine is Assigned and there are no assigned production orders, i.e. no elements in the array AssignedProductionOrders, the CurrentState of the MachineModuleProductionStateMachineType transitions to Complete. |
Starting |
When the CurrentState of the StateMachine is Starting, the underlying system performs the preparation to process product or parts according to the started production order. The machine module can receive input product(s) or parts from the loading points specified by the production order according to its machine specific sequence.
For example, while the CurrentState of the StateMachine is Starting, the machine may be pre-filled, warmed up or cooled down according to the requirements of the production order.
When the underlying system completes such machine specific sequence and starts processing product, the CurrentState of the StateMachine transitions to Execute.
When the CurrentState of the StateMachine is Starting and the AbortProductionOrder method is successfully executed, the ProductionState state machine transitions to Aborting.
The machine module shall not receive product from an upstream machine module processing a different production order. To this goal, the machine module underlying system will set UpstreamHold to True for the MaterialLoadingPoints connected to (1) non-active upstream machine modules and (2) active upstream machine modules with a different ProductionOrder. |
Execute |
When the CurrentState of the StateMachine is Execute, the production order is processed and input product(s) or parts are received. In order to further detail the processing phases, the StateMachine object within the object LiveStatus may be used. The states and transitions of the machine are defined according to the underlying system specifics.
The machine module shall not receive product from an upstream machine module processing a different production order. To this end, the machine module will set UpstreamHold to True of the MaterialLoadingPoints connected to (1) non-active upstream machine modules and (2) active upstream machine modules with a different ProductionOrder.
For machine modules with AutoComplete false, when the CurrentState of the StateMachine is Execute, the successful execution of the method CompleteProductionOrder causes the state transition to Completing. For machine modules with AutoComplete true, when the CurrentState of the StateMachine is Execute and the active upstream machine modules are in state Complete the CurrentState of the StateMachine transitions to Completing.
The described logic implements production order propagation in a standardized and transparent way. |
Completing |
When the CurrentState of the StateMachine is Completing, the underlying system performs the preparation to complete the production order which is complete in the active upstream machine modules.
When the underlying system completes such machine specific sequence, including checking that no more product(s) or parts are being received and that no more product(s) or parts that can be processed are in the machine module, and the active upstream machine modules’ state is Complete, the CurrentState of the StateMachine transitions to Complete and the ProductionOrder is nulled. Likewise, when the CurrentState of the StateMachine is Execute and the active upstream machine modules are in state Assigned or Execute for a different production order.
The machine module shall not receive product from an upstream machine module processing a different production order. To this end, the machine module will set UpstreamHold to True of the MaterialLoadingPoints connected to (1) non-active upstream machine modules and (2) active upstream machine modules with a different ProductionOrder. |
Aborting |
When the CurrentState of the StateMachine is Aborting, the machine module stops receiving additional product or parts from the active upstream machine modules in an orderly way. When the stopping sequence is complete the CurrentState of the StateMachine transitions to Aborted. |
Aborted |
When the CurrentState of the StateMachine is Aborted, the product(s) or parts present in the machine module are discharged from the machine, either through machine specific automatic sequences or manually by the operators.
When the CurrentState of the StateMachine is Aborted and the ClearProductionOrder method is successfully executed, the state transitions to Complete. |
Complete |
When the CurrentState of the StateMachine is Complete, the machine module does not accept any more input product(s) or parts, the ProductionOrder is nulled and the machine is ready to execute a new production order.
When the CurrentState of the StateMachine is Complete and there is at least one production order in the AssignedProductionOrders array, the CurrentState of the StateMachine transitions to Assigned. |
Each transition has a guard of type BooleanGuardVariableType which has one or more Condition components. Each Condition component is necessary to trigger the transition. When all the Condition components are True, the transition is triggered (sufficient).
The components of the MachineModuleProductionStateMachineType have additional references which are defined in the following table.
Table 114 – MachineModuleProductionStateMachineType Additional References
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
AbortedToComplete |
0:FromState |
True |
Aborted |
0:HasGuard |
True |
AbortedToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AbortingToAborted |
0:FromState |
True |
Aborting |
0:HasGuard |
True |
AbortingToAbortedGuard |
0:ToState |
True |
Aborted |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AssignedToComplete |
0:FromState |
True |
Assigned |
0:HasGuard |
True |
AssignedToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AssignedToStarting |
0:FromState |
True |
Assigned |
0:HasGuard |
True |
AssignedToStartingGuard |
0:ToState |
True |
Starting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
CompleteToAssigned |
0:FromState |
True |
Complete |
0:HasGuard |
True |
CompleteToAssignedGuard |
0:ToState |
True |
Assigned |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
CompletingToAborting |
0:FromState |
True |
Completing |
0:HasGuard |
True |
CompletingToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
CompletingToComplete |
0:FromState |
True |
Completing |
0:HasGuard |
True |
CompletingToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ExecuteToAborting |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ExecuteToCompleting |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToCompletingGuard |
0:ToState |
True |
Completing |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
StartingToAborting |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
StartingToExecute |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
The component Variables of the MachineModuleProductionStateMachineType have additional Attributes defined in the following table.
Table 115 – MachineModuleProductionStateMachineType Attribute values for child Nodes
BrowsePath |
Attribute Value |
||
|
1 |
||
|
2 |
||
|
3 |
||
|
4 |
||
|
5 |
||
|
6 |
||
|
7 |
The ProductionOrderExecutionStateMachineType provides state information about the execution of a production order at a production line.
The ProductionOrderExecutionStateMachineType is formally defined in the following table.
Table 116 - ProductionOrderExecutionStateMachineType Definition
Attribute |
Value |
||||
BrowseName |
ProductionOrderExecutionStateMachineType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the FiniteStateMachineType defined in OPC 10000-5 Annex B, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasProperty |
Variable |
ProductionOrderHeader |
ProductionOrderHeaderType |
0:PropertyType |
M |
0:HasComponent |
Object |
MachineModuleProductionOrders |
|
0:FolderType |
M |
0:HasComponent |
Object |
Aborted |
|
0:StateType |
|
0:HasComponent |
Object |
Aborting |
|
0:StateType |
|
0:HasComponent |
Object |
Assigned |
|
0:StateType |
|
0:HasComponent |
Object |
Assigning |
|
0:StateType |
|
0:HasComponent |
Object |
Complete |
|
0:StateType |
|
0:HasComponent |
Object |
Completing |
|
0:StateType |
|
0:HasComponent |
Object |
Execute |
|
0:StateType |
|
0:HasComponent |
Object |
Released |
|
0:StateType |
|
0:HasComponent |
Object |
Releasing |
|
0:InitialStateType |
|
0:HasComponent |
Object |
Starting |
|
0:StateType |
|
0:HasComponent |
Object |
Unassigning |
|
0:StateType |
|
0:HasComponent |
Object |
Unreleased |
|
0:StateType |
|
0:HasComponent |
Object |
Unreleasing |
|
0:StateType |
|
0:HasComponent |
Object |
AbortingToAborted |
|
0:TransitionType |
|
0:HasComponent |
Variable |
AbortingToAbortedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
AssignedToStarting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
AssignedToStartingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
AssignedToUnassigning |
|
0:TransitionType |
|
0:HasComponent |
Variable |
AssignedToUnassigningGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
AssignedToUnreleasing |
|
0:TransitionType |
|
0:HasComponent |
Variable |
AssignedToUnreleasingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
AssigningToAssigned |
|
0:TransitionType |
|
0:HasComponent |
Variable |
AssigningToAssignedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
CompletingToAborting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
CompletingToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
CompletingToComplete |
|
0:TransitionType |
|
0:HasComponent |
Variable |
CompletingToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
ExecuteToAborting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ExecuteToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
ExecuteToCompleting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ExecuteToCompletingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
ReleasedToAssigning |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ReleasedToAssigningGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
ReleasedToUnreleasing |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ReleasedToUnreleasingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
ReleasingToReleased |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ReleasingToReleasedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
ReleasingToUnreleasing |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ReleasingToUnreleasingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
StartingToAborting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
StartingToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
StartingToExecute |
|
0:TransitionType |
|
0:HasComponent |
Variable |
StartingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
UnassigningToReleased |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnassigningToReleasedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
UnreleasedToReleased |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnreleasedToReleasedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
UnreleasingToUnreleased |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnreleasingToUnreleasedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Variable |
LastTransition |
0:LocalizedText |
0:FiniteTransitionVariableType |
M, RO |
0:GeneratesEvent |
ObjectType |
ProductionOrderTransitionLogType |
|
|
M |
Conformance Units |
|||||
TMC Production Order Orchestration Layer |
Each transition has a guard of type BooleanGuardVariableType which has one or more Condition components. Each Condition component is necessary to trigger the transition. When all the Condition components are True, the transition is triggered (sufficient).
The components of the ProductionOrderExecutionStateMachineType are further described below.
BrowseName |
Description |
ProductionOrderHeader |
The ProductionOrderHeader of the production order in execution. When no production order is in execution, the ProductionOrderNumber in the ProductionOrderHeader is an empty string. |
MachineModuleProductionOrders |
The production orders that have been released to the ProductionOrderExecutionLayer. The MachineModuleProductionOrders folder contains one production order for each required machine module having the ProductionOrderHeader (above). |
The components of the ProductionOrderExecutionStateMachineType have additional subcomponents which are defined in the following table.
Table 117 – ProductionOrderExecutionStateMachineType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
MachineModuleProductionOrders |
0:HasComponent |
Variable |
<MachineModuleUserName> |
ProductionOrderType |
0:BaseDataVariableType |
OP |
The components of the ProductionOrderExecutionStateMachineType have additional references which are defined in the following table.
Table 118 – ProductionOrderExecutionStateMachineType Additional References
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
AbortingToAborted |
0:FromState |
True |
Aborting |
0:HasGuard |
True |
AbortingToAbortedGuard |
0:ToState |
True |
Aborted |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AssignedToStarting |
0:FromState |
True |
Assigned |
0:HasGuard |
True |
AssignedToStartingGuard |
0:ToState |
True |
Starting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AssignedToUnassigning |
0:FromState |
True |
Assigned |
0:HasGuard |
True |
AssignedToUnassigningGuard |
0:ToState |
True |
Unassigning |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AssignedToUnreleasing |
0:FromState |
True |
Assigned |
0:HasGuard |
True |
AssignedToUnreleasingGuard |
0:ToState |
True |
Unreleasing |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AssigningToAssigned |
0:FromState |
True |
Assigning |
0:HasGuard |
True |
AssigningToAssignedGuard |
0:ToState |
True |
Assigned |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
CompletingToAborting |
0:FromState |
True |
Completing |
0:HasGuard |
True |
CompletingToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
CompletingToComplete |
0:FromState |
True |
Completing |
0:HasGuard |
True |
CompletingToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ExecuteToAborting |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ExecuteToCompleting |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToCompletingGuard |
0:ToState |
True |
Completing |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ReleasedToAssigning |
0:FromState |
True |
Released |
0:HasGuard |
True |
ReleasedToAssigningGuard |
0:ToState |
True |
Assigning |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ReleasingToUnreleasing |
0:FromState |
True |
Releasing |
0:HasGuard |
True |
ReleasingToUnreleasingGuard |
0:ToState |
True |
Unreleasing |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ReleasingToReleased |
0:FromState |
True |
Releasing |
0:HasGuard |
True |
ReleasingToReleasedGuard |
0:ToState |
True |
Released |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
StartingToAborting |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
StartingToExecute |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
UnassigningToReleased |
0:FromState |
True |
Unassigning |
0:HasGuard |
True |
UnassigningToReleasedGuard |
0:ToState |
True |
Released |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
UnreleasedToReleased |
0:FromState |
True |
Unreleased |
0:HasGuard |
True |
UnreleasedToReleasedGuard |
0:ToState |
True |
Released |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
UnreleasingToUnreleased |
0:FromState |
True |
Unreleasing |
0:HasGuard |
True |
UnreleasingToUnreleasedGuard |
0:ToState |
True |
Unreleased |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
The component Variables of the ProductionOrderEecutionStateMachineType have additional Attributes defined in the following table.
Table 119 – ProductionOrderExecutionStateMachineType Attribute values for child Nodes
BrowsePath |
Value Attribute |
||
|
1 |
||
|
2 |
||
|
3 |
||
|
4 |
||
|
5 |
||
|
6 |
||
|
7 |
||
|
8 |
||
|
9 |
||
|
10 |
||
|
11 |
||
|
12 |
||
|
13 |
The TMCStateMachineType describes the finite state machine of a complex automation item including a machine module, an equipment module and a control module.
The TMCStateMachineType is modelled and inherits from the PackMLBaseStateMachineType defined in OPC 30050 - UA for PackML (OMAC) v1.01 and provides additional TMCMachineStateMachineType and transition information by means of guards implemented by the BooleanGuardVariableType.
The TMCStateMachineType is formally defined in the following table.
Table 120 – TMCStateMachineType Definition
Attribute |
Value |
||||
BrowseName |
TMCStateMachineType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PackMLBaseStateMachineType defined in OPC 30050, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Method |
3:Abort |
See OPC 30050, PackMLStateMachineType. |
O |
|
0:HasComponent |
Object |
Aborted |
|
0:StateType |
|
0:HasComponent |
Object |
AbortedSubstate |
|
StateMachineType |
O |
0:HasComponent |
Object |
AbortedToCleared |
|
0:TransitionType |
|
0:HasComponent |
Variable |
AbortedToClearedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RW |
0:HasComponent |
Object |
Aborting |
|
0:StateType |
|
0:HasComponent |
Object |
AbortingToAborted |
|
0:TransitionType |
|
0:HasComponent |
Variable |
AbortingToAbortedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RW |
0:HasComponent |
Method |
3:Clear |
See OPC 30050, PackMLStateMachineType. |
O |
|
0:HasComponent |
Object |
Cleared |
|
0:StateType |
|
0:HasComponent |
Object |
ClearedToAborting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ClearedToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RW |
0:HasComponent |
Variable |
LastTransition |
0:LocalizedText |
0:FiniteTransitionVariableType |
M, RO |
0:HasComponent |
Object |
MachineState |
|
TMCMachineStateMachineType |
M |
0:GeneratesEvent |
ObjectType |
TransitionEventType |
|
|
M |
Conformance Units |
|||||
TMC Advanced Equipment Module and Control Module Status |
The components of the TMCStateMachineType are described in OPC 30050 UA for PackML from which the PackMLBaseStateMachineType is subtyped.
Each transition has a guard of type BooleanGuardVariableType which has one or more Condition components. Each Condition component is necessary to trigger the transition. When all the Condition components are True, the transition is triggered (sufficient).
The AbortedSubstate is a state machine that provides the states and transitions specific to the implementation and performed while the main state machine is in the Aborted state. Similarly for Execute.
The component Variables of the TMCStateMachineType have additional Attributes defined in the following table.
Table 121 – TMCStateMachineType Attribute Values for Child Nodes
BrowsePath |
Value Attribute |
||
|
9 |
||
|
8 |
||
|
19 |
The components of the TMCStateMachineType have additional references which are defined in the following table.
Table 122 – TMCStateMachineType Additional References
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
Aborted |
0:HasSubStateMachine |
True |
AbortedSubstate |
AbortedToCleared |
0:FromState |
True |
Aborted |
0:HasGuard |
True |
AbortedToClearedGuard |
0:HasCause |
True |
3:Clear |
0:ToState |
True |
Cleared |
0:HasEffect |
True |
TransitionEventType |
AbortingToAborted |
0:FromState |
True |
Aborting |
0:HasGuard |
True |
AbortingToAbortedGuard |
0:ToState |
True |
Aborted |
0:HasEffect |
True |
TransitionEventType |
ClearedToAborting |
0:FromState |
True |
Cleared |
0:HasGuard |
True |
ClearedToAbortingGuard |
0:HasCause |
True |
3:Abort |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
TransitionEventType |
The TMCExecuteStateMachineType is modelled and inherits from the PackMLExecuteStateMachineType defined in OPC 30050 - UA for PackML (OMAC) v1.01, and provides additional transition information by means of guards implemented by the BooleanGuardVariableType.
The TMCExecuteStateMachineType is formally defined in the following table.
Table 123 – TMCExecuteStateMachineType Definition
Attribute |
Value |
||||
BrowseName |
TMCExecuteStateMachineType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PackMLExecuteStateMachineType defined in OPC 30050, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Object |
Complete |
|
0:StateType |
|
0:HasComponent |
Object |
CompleteSubstate |
|
StateMachineType |
O |
0:HasComponent |
Object |
CompleteToResetting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
CompleteToResettingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Completing |
|
0:StateType |
|
0:HasComponent |
Object |
CompletingToComplete |
|
0:TransitionType |
|
0:HasComponent |
Variable |
CompletingToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Execute |
|
0:StateType |
|
0:HasComponent |
Object |
ExecuteSubstate |
|
StateMachineType |
O |
0:HasComponent |
Object |
ExecuteToCompleting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ExecuteToCompletingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
ExecuteToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ExecuteToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
ExecuteToSuspending |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ExecuteToSuspendingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Held |
|
0:StateType |
|
0:HasComponent |
Object |
HeldToUnholding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
HeldToUnholdingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Method |
3:Hold |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Holding |
|
0:StateType |
|
0:HasComponent |
Object |
HoldingToHeld |
|
0:TransitionType |
|
0:HasComponent |
Variable |
HoldingToHeldGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Idle |
|
0:StateType |
|
0:HasComponent |
Object |
IdleSubstate |
|
StateMachineType |
O |
0:HasComponent |
Object |
IdleToStarting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
IdleToStartingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Variable |
LastTransition |
0:LocalizedText |
0:FiniteTransitionVariableType |
M, RO |
0:HasComponent |
Method |
3:Reset |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Resetting |
|
0:StateType |
|
0:HasComponent |
Object |
ResettingToIdle |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ResettingToIdleGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Method |
3:Start |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Starting |
|
0:StateType |
|
0:HasComponent |
Object |
StartingToExecute |
|
0:TransitionType |
|
0:HasComponent |
Variable |
StartingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
StartingToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
StartingToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Method |
3:Suspend |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Suspended |
|
0:StateType |
|
0:HasComponent |
Object |
SuspendedToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
SuspendedToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
SuspendedToUnsuspending |
|
0:TransitionType |
|
0:HasComponent |
Variable |
SuspendedToUnsuspendingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Suspending |
|
0:StateType |
|
0:HasComponent |
Object |
SuspendingToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
SuspendingToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
SuspendingToSuspended |
|
0:TransitionType |
|
0:HasComponent |
Variable |
SuspendingToSuspendedGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Method |
3:ToComplete |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Method |
3:Unhold |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Unholding |
|
0:StateType |
|
0:HasComponent |
Object |
UnholdingToExecute |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnholdingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
UnholdingToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnholdingToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Method |
3:Unsuspend |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Unsuspending |
|
0:StateType |
|
0:HasComponent |
Object |
UnsuspendingToExecute |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnsuspendingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
UnsuspendingToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnsuspendingToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:GeneratesEvent |
ObjectType |
TransitionEventType |
|
|
M |
Conformance Units |
|||||
TMC Advanced Equipment Module and Control Module Status |
The components of the TMCExecuteStateMachineType are described in OPC 30050 UA for PackML from which the PackMLExecuteStateMachineType is subtyped.
Each transition has a guard of type BooleanGuardVariableType which has one or more Condition components. Each Condition component is necessary to trigger the transition. When all the Condition components are True, the transition is triggered (sufficient).
The CompleteSubstate is a state machine that provides the states and transitions specific to the implementation and performed while the main state machine is in the Complete state. Similarly for Execute.
The component Variables of the TMCExecuteStateMachineType have additional Attributes defined in the following table.
Table 124 – TMCExecuteStateMachineType Attribute Values for Child Nodes
Source Path |
Value Attribute |
||
|
17 |
||
|
16 |
||
|
6 |
||
|
11 |
||
|
10 |
||
|
4 |
||
|
15 |
||
|
3 |
||
|
5 |
||
|
13 |
||
|
12 |
||
|
14 |
The components of the TMCExecuteStateMachineType have additional references which are defined in the following table.
Table 125 – TMCExecuteStateMachineType Additional References
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
Complete |
0:HasSubStateMachine |
True |
CompleteSubstate |
Execute |
0:HasSubStateMachine |
True |
ExecuteSubstate |
Idle |
0:HasSubStateMachine |
True |
IdleSubstate |
CompleteToResetting |
0:FromState |
True |
Complete |
0:HasGuard |
True |
CompleteToResettingGuard |
0:HasCause |
True |
3:Reset |
0:ToState |
True |
Resetting |
0:HasEffect |
True |
TransitionEventType |
CompletingToComplete |
0:FromState |
True |
Completing |
0:HasGuard |
True |
CompletingToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
TransitionEventType |
ExecuteToCompleting |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToCompletingGuard |
0:HasCause |
True |
3:ToComplete |
0:ToState |
True |
Completing |
0:HasEffect |
True |
TransitionEventType |
ExecuteToHolding |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
ExecuteToSuspending |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToSuspendingGuard |
0:HasCause |
True |
3:Suspend |
0:ToState |
True |
Suspending |
0:HasEffect |
True |
TransitionEventType |
HeldToUnholding |
0:FromState |
True |
Held |
0:HasGuard |
True |
HeldToUnholdingGuard |
0:HasCause |
True |
3:Unhold |
0:ToState |
True |
Unholding |
0:HasEffect |
True |
TransitionEventType |
HoldingToHeld |
0:FromState |
True |
Holding |
0:HasGuard |
True |
HoldingToHeldGuard |
0:ToState |
True |
Held |
0:HasEffect |
True |
TransitionEventType |
IdleToStarting |
0:FromState |
True |
Idle |
0:HasGuard |
True |
IdleToStartingGuard |
0:HasCause |
True |
3:Start |
0:ToState |
True |
Starting |
0:HasEffect |
True |
TransitionEventType |
ResettingToIdle |
0:FromState |
True |
Resetting |
0:HasGuard |
True |
ResettingToIdleGuard |
0:ToState |
True |
Idle |
0:HasEffect |
True |
TransitionEventType |
StartingToExecute |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
TransitionEventType |
StartingToHolding |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
SuspendedToHolding |
0:FromState |
True |
Suspended |
0:HasGuard |
True |
SuspendedToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
SuspendedToUnsuspending |
0:FromState |
True |
Suspended |
0:HasGuard |
True |
SuspendedToUnsuspendingGuard |
0:HasCause |
True |
3:Unsuspend |
0:ToState |
True |
Unsuspending |
0:HasEffect |
True |
TransitionEventType |
SuspendingToHolding |
0:FromState |
True |
Suspending |
0:HasGuard |
True |
SuspendingToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
SuspendingToSuspended |
0:FromState |
True |
Suspending |
0:HasGuard |
True |
SuspendingToSuspendedGuard |
0:ToState |
True |
Suspended |
0:HasEffect |
True |
TransitionEventType |
UnholdingToExecute |
0:FromState |
True |
Unholding |
0:HasGuard |
True |
UnholdingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
TransitionEventType |
UnholdingToHolding |
0:FromState |
True |
Unholding |
0:HasGuard |
True |
UnholdingToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
UnsuspendingToExecute |
0:FromState |
True |
Unsuspending |
0:HasGuard |
True |
UnsuspendingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
TransitionEventType |
UnsuspendingToHolding |
0:FromState |
True |
Unsuspending |
0:HasGuard |
True |
UnsuspendingToHoldingGuard |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
The TMCMachineStateMachineType is modelled and inherits from the PackMLMachineStateMachineType defined in OPC 30050 - UA for PackML (OMAC) v1.01, and provides additional transition information by means of guards implemented by the BooleanGuardVariableType.
The TMCMachineStateMachineType is formally defined in the following table.
Table 126 – TMCMachineStateMachineType Definition
Attribute |
Value |
|||||
BrowseName |
TMCMachineStateMachineType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the PackMLMachineStateMachineType defined in OPC 30050, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Object |
Clearing |
|
0:StateType |
|
|
0:HasComponent |
Object |
ClearingToStopped |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
ClearingToStoppedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
ExecuteState |
|
TMCExecuteStateMachineType |
M |
|
0:HasComponent |
Variable |
LastTransition |
0:LocalizedText |
0:FiniteTransitionVariableType |
M, RO |
|
0:HasComponent |
Method |
3:Reset |
See OPC 30050, PackMLMachineStateMachineType. |
O |
||
0:HasComponent |
Object |
Running |
|
0:StateType |
|
|
0:HasComponent |
Object |
RunningToStopping |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
RunningToStoppingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Method |
3:Stop |
See OPC 30050, PackMLMachineStateMachineType. |
O |
||
0:HasComponent |
Object |
Stopped |
|
0:StateType |
|
|
0:HasComponent |
Object |
StoppedSubstate |
|
StateMachineType |
O |
|
0:HasComponent |
Object |
StoppedToRunning |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
StoppedToRunningGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Stopping |
|
0:StateType |
|
|
0:HasComponent |
Object |
StoppingToStopped |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
StoppingToStoppedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:GeneratesEvent |
ObjectType |
TransitionEventType |
|
|
M |
|
Conformance Units |
||||||
TMC Advanced Machine Status |
The components of the TMCMachineStateMachineType are described in OPC 30050 UA for PackML from which the PackMLMachineStateMachineType is subtyped.
Each transition has a guard of type BooleanGuardVariableType which has one or more Condition components. Each Condition component is necessary to trigger the transition. When all the Condition components are True, the transition is triggered (sufficient).
The StoppedSubstate is a state machine that provides the states and transitions specific to the implementation and performed while the main state machine is in the Stopped state.
The component Variables of the TMCMachineStateMachineType have additional Attributes defined in the following table.
Table 127 – TMCMachineStateMachineType Attribute Values for Child Nodes
Source Path |
Value Attribute |
||
|
1 |
||
|
18 |
||
|
2 |
||
|
7 |
The components of the TMCMachineStateMachineType have additional references which are defined in the following table.
Table 128 – TMCMachineStateMachineType Additional References
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
Stopped |
0:HasSubStateMachine |
True |
StoppedSubstate |
ClearingToStopped |
0:FromState |
True |
Clearing |
0:HasGuard |
True |
ClearingToStoppedGuard |
0:HasCause |
True |
3:Stop |
0:ToState |
True |
Stopped |
0:HasEffect |
True |
TransitionEventType |
RunningToStopping |
0:FromState |
True |
Running |
0:HasGuard |
True |
RunningToStoppingGuard |
0:HasCause |
True |
3:Stop |
0:ToState |
True |
Stopping |
0:HasEffect |
True |
TransitionEventType |
StoppedToRunning |
0:FromState |
True |
Stopped |
0:HasGuard |
True |
StoppedToRunningGuard |
0:HasCause |
True |
3:Reset |
0:ToState |
True |
Running |
0:HasEffect |
True |
TransitionEventType |
StoppingToStopped |
0:FromState |
True |
Stopping |
0:HasGuard |
True |
StoppingToStoppedGuard |
0:ToState |
True |
Stopped |
0:HasEffect |
True |
TransitionEventType |
The ProcessItemType is used to measure and monitor over time a measurement point. The ProcessItemType also provides aggregates (Avg, Max, Min, Std, Total) that are computed by the underlying system. The aggregates are computed over a time period or for a product quantity and can be configured by a client altogether with the sampling time.
The ProcessItemType is formally defined in the following table.
Table 129 – ProcessItemType Definition
Attribute |
Value |
||||
BrowseName |
ProcessItemType |
||||
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:HasProperty |
Variable |
AggregationWindow |
0:UInt32 |
0:PropertyType |
M, RW |
0:HasComponent |
Object |
LimitAlarms |
|
0:NonExclusiveLevelAlarmType |
M |
0:HasComponent |
Variable |
Value |
0:Double |
DisplayAnalogUnitType |
M, RO, HR |
0:HasComponent |
Variable |
Avg |
0:Double |
0:BaseDataVariableType |
M, RO, HR |
0:HasProperty |
Variable |
LastResetTime |
0:UtcTime |
0:PropertyType |
M, RO |
0:HasComponent |
Variable |
Max |
0:Double |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
Min |
0:Double |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Method |
ResetAggregates |
See below. |
M |
|
0:HasComponent |
Variable |
SamplingRate |
0:Double |
0:AnalogUnitRangeType |
M, RW |
0:HasComponent |
Variable |
Std |
0:Double |
0:BaseDataVariableType |
M, RO, HR |
0:HasComponent |
Variable |
Total |
0:Double |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Object |
UIInfo |
|
UIInformationType |
O |
0:GeneratesEvent |
ObjectType |
0:NonExclusiveLevelAlarmType |
|
|
|
0:GeneratesEvent |
ObjectType |
ProcessItemResetLogType |
|
|
|
Conformance Units |
|||||
TMC Process Variables Ingestion and Control |
Each valid ProcessItem can have one or more Precedes References pointing to other downstream ProcessItems.
The components of the ProcessItemType are further described below.
BrowseName |
Description |
AggregationWindow |
Tthe number of samples over which the aggregates are computed. When the number of aggregated samples since the last reset exceeds the AggregationWindow, the aggregates are rolled over, i.e. computed over the last AggregationWindow number of samples. The value of the AggregationWindow can be set by a client to obtain the desired aggregation. If the written value is below (above) the minimum (maximum) value that can be managed by the underlying system, the underlying system will overwrite it with the minimum (maximum). |
LimitAlarms |
The deviation alarm with 4 thresholds: HighHigh, High, Low, LowLow. All 4 thresholds shall be supported. |
Value |
Value represents the current value measured by the sensor. |
Avg |
The average of valid values over the last AggregationWindow samples and after the last reset. It is only reset by the successful execution of the ResetAggregates method. |
LastResetTime |
The time (in UTC) when ResetAggregates was last successfully executed. |
Max |
The maximum valid value for the last AggregationWindow samples and after the last reset. It is only reset by the successful execution of the ResetAggregates method. |
Min |
The minimum valid value for the last AggregationWindow samples and after the last reset. It is only reset by the successful execution of the ResetAggregates method. |
SamplingRate |
The rate samples are collected for aggregation. The rate is referred to the either product or time, as indicated by the EURange property. For example, SamplingRate equal to 100 ms means that the value is measured and collected for aggregation every 100 ms. SamplingRate equal to 10 kg means that the value is measured and collected for aggregation every 10 kg of product. SamplingRate equal to 100 rods means that the value is measured and collected for aggregation every 100 rods of product. The EURange property of the SamplingRate is read only and defines both the unit of measure and the supported range. The value of the SamplingRate can be set by a client to obtain the desired sampling rate for aggregation. If the written value is below (above) the minimum (maximum) value that can be managed by the underlying system, the underlying system will overwrite it with the minimum (maximum). The underlying system will support equivalent sampling rates of 100ms or better. |
Std |
The standard deviation of the valid value for the last AggregationWindow samples and after the last reset. After reset, when only one value is available, the standard deviation is not defined and zero will be returned. It is only reset by the successful execution of the ResetAggregates method. |
Total |
The accumulated total of the valid value for the last AggregationWindow samples and after the last reset. It is only reset by the successful execution of the ResetAggregates method. |
UIInfo |
The visualization resources to display the ProcessItemType on the UserInterface. |
The ResetAggregates Method restarts from new the computation of aggregates performed by the underlying system.
The signature of this Method is specified below. Table 130 specifies the Arguments representation.
Signature
ResetAggregates (
[out] MethodExecutionFeedbackType ExecutionFeedback);
Table 130 – ResetAggregates Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
When the ResetAggregates method is invoked, an event of type ProcessItemResetLogType is generated with the last value of the aggregate variables, then the aggregates are reset as specified and the LastResetTime is set at the time when the method completes successfully.
The ProcessControlItem ObjectType describes a generic control loop including the measured variable to be controlled (PV), the desired value for the variable (SP) and the signal to the actuator (CV) to bring the PV to match the SP.
The ProcessItemType is formally defined in the following table.
Table 131 – ProcessControlItemType Definition
Attribute |
Value |
||||
BrowseName |
ProcessControlItemType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ProcessItemType, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasProperty |
Variable |
OperatorControl |
0:Boolean |
0:PropertyType |
M, RO, HR |
0:HasProperty |
Variable |
RemoteControlEnable |
0:Boolean |
0:PropertyType |
M, RO, HR |
0:HasComponent |
Variable |
RemoteValue |
0:Double |
0:BaseDataVariableType |
M, RW, HR |
0:HasProperty |
Variable |
RemoteControl |
0:Boolean |
0:PropertyType |
M, RW, HR |
0:HasComponent |
Method |
SetRemoteControl |
See below. |
M |
The components of the ProcessControlItemType are further described below.
BrowseName |
Description |
RemoteValue |
The value set by the client to override the object value. |
RemoteControlEnable |
The RemoteControlEnable variable exposes when the underlying system is ready to activate the RemoteControl upon a request by a client. When RemoteControlEnable is False, the underlying system is not ready and will not activate a request to remotely control the ProcessControlItem. |
RemoteControl |
The RemoteControl variable lets the underlying system expose which system is currently in control of the ProcessControlItem. More specifically, if RemoteControl is True, the underlying system copies the RemoteValue to the ProcesControlItem Value to drive it, i.e. the ProcessControlItem is remotely controlled. If RemoteControl is False, the underlying system is not using RemoteValue to drive the ProcessControlItem, but another value that is exposed as the ProcessControlItem Value, i.e. the ProcessControlItem is locally controlled. A client requests (resp. releases) control of the ProcessControlItem by setting RemoteControl to True (resp. False) preferably by invoking the SetRemoteControl Method. If the client does not support methods, then the client sets RemoteControl to True. The underlying system will reset RemoteControl to False if remote control is not activated. |
OperatorControl |
The OperatorControl variable qualifies the source of the ProcessControlItem Value when RemoteControl is False, otherwise OperatorControl is undefined. When OperatorControl is True, the underlying system exposes the information that the ProcessControlItem Value is modified by the operator with respect to the nominal value, e.g. NominalRate, a.k.a. design speed for a speed control loop. When OperatorControl is False, the underlying system exposes the information that the ProcessControlItem Value is not modified by the operator. |
The SetRemoteControl Method enables or disables the remote control mode.
The signature of this Method is specified below. Table 132 specifies the Arguments representation.
Signature
SetRemoteControl (
[in] 0:Boolean Enable,
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 132 – SetRemoteControl Method Arguments
Argument |
Description |
Enable |
The flag enables (True) or disables (False) the remote control mode. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
When the method SetRemoteControl completes successfully with input argument Enable equal to True, RemoteControl is set to True and the RemoteAnalogMeasurement persistently overrides the ProcessControlItem value.
When the method SetRemoteControl completes successfully with input argument Enable equal to False, RemoteControl is set to False and the ProcessControlItem value is generated by the underlying system.
The ProcessControlLoopType is the general description of a control loop consisting of the desired value (SetPoint) for a measured value (ProcessValue) which is obtained by acting on an actuator (ControlValue).
The ProcessControlLoopType is formally defined in the following table.
Table 133 – ProcessControlLoopType Definition
Attribute |
Value |
||||
BrowseName |
ProcessControlLoopType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the TMCDeviceType, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Objects |
ControlValue |
|
ProcessControlItemType |
M |
0:HasComponent |
Objects |
ProcessValue |
|
ProcessControlItemType |
M |
0:HasComponent |
Objects |
SetPoint |
|
ProcessControlItemType |
O |
0:HasProperty |
Variable |
WatchdogEnabled |
0:Boolean |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
WatchdogTimeout |
0:Duration |
0:PropertyType |
M, RW |
0:HasComponent |
Object |
ExternalAlarms |
|
0:FolderType |
M |
0:GeneratesEvent |
ObjectType |
ExternalAlarmType |
|
|
|
Conformance Units |
|||||
TMC Process Variables Ingestion and Control |
The components of the ProcessControlLoopType are further described below.
BrowseName |
Description |
ControlValue |
The ControlValue is the output of the control loop function. The control value directly drives the actuator. |
ProcessValue |
The value read by a sensor or other analog measurement of the physical quantity that is monitored. |
SetPoint |
The value we aim to obtain from the ProcessValue by means of driving the control value. |
WatchdogEnable |
When WatchdogEnable is True, if a ProcessControlLoop component’s RemoteControl is True and the time between two consecutive writes of the RemoteValue is longer than WatchdogTimeout, then the underlying system will generate an alarm, set RemoteControl to False and take control of the loop. When WatchdogEnable is False, no watchdog alarm is generated. |
WatchdogTimeout |
The longest time between two write actions before a watchdog alarm is generated by the underlying system. The value is expressed in milliseconds. If the written value is below (above) the minimum (maximum) value that can be managed by the underlying system, the underlying system will overwrite it with the minimum (maximum). |
ExternalAlarms |
The external alarms folder is used to organize external alarms. |
The components of the ProcessControlLoopType have additional subcomponents which are defined in the following table.
Table 134 – ProcessControlLoopType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm1 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm2 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm3 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm4 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm5 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm6 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm7 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm8 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm9 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
ExternalAlarm10 |
|
ExternalAlarmType |
M |
ExternalAlarms |
0:HasComponent |
Object |
<ExternalAlarmN> |
|
ExternalAlarmType |
OP |
The ExternalAlarms folder provides 10 spare external alarms that are mandatorily implemented by the underlying system. Additional ones can be added via the ExternalAlarmN optional placeholder.
The CarrierType ObjectType provides a description for a uniquely identified reusable carrier. Examples of CarrierType implementations are AGVs, trays with RFIDs, IBCs with RFIDs, bins with permanent bar codes.
The CarrierType is formally defined in the following table.
Table 135 – CarrierType Definition
Attribute |
Value |
||||
BrowseName |
CarrierType |
||||
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 |
Object |
Data |
|
0:FolderType |
O |
0:HasComponent |
Method |
EndSubCarrierLoading |
See below. |
M |
|
0:HasComponent |
Method |
EndSubCarrierUnloading |
See below. |
M |
|
0:HasProperty |
Variable |
FormFactor |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
ID |
0:String |
0:PropertyType |
M, RO |
0:HasComponent |
Method |
LoadSubCarrier |
See below. |
M |
|
0:HasComponent |
Method |
LoadSublots |
See below. |
M |
|
0:HasProperty |
Variable |
MES_ID |
0:String |
0:PropertyType |
M, RW |
0:HasProperty |
Variable |
ParentCarrierID |
0:String |
0:PropertyType |
M, RO |
0:HasComponent |
Method |
StartSubCarrierLoading |
See below. |
M |
|
0:HasComponent |
Method |
StartSubCarrierUnloading |
See below. |
M |
|
0:HasComponent |
Object |
SubCarriers |
|
0:FolderType |
O |
0:HasComponent |
Variable |
Sublots |
MaterialSublotType[] |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Method |
UnloadSubCarrier |
See below. |
M |
|
0:HasComponent |
Method |
UnloadSublots |
See below. |
M |
|
0:GeneratesEvent |
ObjectType |
CarrierSublotsChangeLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
SubCarrierLoadedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
SubCarrierLoadingEndedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
SubCarrierLoadingStartedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
SubCarrierUnloadedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
SubCarrierUnloadingEndedLogType |
|
|
|
0:GeneratesEvent |
ObjectType |
SubCarrierUnloadingStartedLogType |
|
|
|
Conformance Units |
|||||
TMC Intralogistics at the machine |
The components of the CarrierType are further described below.
BrowseName |
Description |
Data |
The Data folder organizes implementation specific data for the carrier. |
FormFactor |
The form factor of the carrier e.g., trolley, AGV, core, IBC, etc. |
ID |
The underlying system identification of the carrier. |
MES_ID |
A higher-level system e.g., MES, identification of the carrier. |
ParentCarrierID |
The unique identifier of the carrier that contains the carrier in question. |
SubCarriers |
The SubCarriers folder organizes carriers contained in the carrier. |
SubLots |
The SubLots contained in the carrier. |
The components of the CarrierType have additional subcomponents which are defined in the following table.
Table 136 – CarrierType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Data |
0:HasComponent |
Variable |
<DataItem> |
0:BaseDataType |
0:BaseDataVariableType |
OP, RO |
SubCarriers |
0:HasComponent |
Object |
<SubCarrier> |
|
CarrierType |
OP |
The EndSubCarrierLoading Method informs the underlying system that the loading of (sub) carriers into the carrier is complete.
The signature of this Method is specified below. Table 137 specifies the Arguments representation.
Signature
EndSubCarrierLoading (
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 137 – EndSubCarrierLoading Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The EndSubCarrierUnloading Method informs the underlying system that the unloading of (sub) carriers into the carrier is complete.
The signature of this Method is specified below. Table 138 specifies the Arguments representation.
Signature
EndSubCarrierUnloading (
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 138 – EndSubCarrierUnloading Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The LoadSubCarrier Method requests the underlying system to load a subcarrier into the carrier that is currently being loaded.
The signature of this Method is specified below. Table 139 specifies the Arguments representation.
Signature
LoadSubCarrier (
[in] 0:String ID,
[in] 0:String MESID,
[in] 0:String ParentCarrierID,
[in] MaterialSublotType[] Sublots,
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 139 – LoadSubCarrier Method Arguments
Argument |
Description |
ID |
The unique identifier of the carrier to be loaded. |
MESID |
The higher-level system identifier for the carrier to be loaded. |
ParentCarrierID |
The unique identifier of the parent carrier i.e., the carrier containing the carrier. |
Sublots |
The material sublots to be loaded to the carrier. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The LoadSublots Method requests the underlying system to load one or more material sublots into the carrier that is currently being loaded.
The signature of this Method is specified below. Table 140 specifies the Arguments representation.
Signature
LoadSublots (
[in] MaterialSublotType[] Sublots,
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 140 – LoadSublots Method Arguments
Argument |
Description |
Sublots |
The material sublots to be loaded to the carrier. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The StartSubCarrierLoading Method informs the underlying system that the loading of (sub) carriers into the carrier has started.
The underlying system is expected to perform its own loading process while the (sub) carriers are loaded.
The signature of this Method is specified below. Table 141 specifies the Arguments representation.
Signature
StartSubCarrierLoading (
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 141 – StartSubCarrierLoading Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The StartSubCarrierUnloading Method informs the underlying system that the unloading of (sub) carriers from the carrier has started.
The underlying system is expected to perform its own unloading process while the (sub) carriers are unloaded.
The signature of this Method is specified below. Table 142 specifies the Arguments representation.
Signature
StartSubCarrierUnloading (
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 142 – StartSubCarrierUnloading Method Arguments
Argument |
Description |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The UnloadSubCarrier Method requests the underlying system to unload a subcarrier from the carrier that is currently being unloaded.
The signature of this Method is specified below. Table 143 specifies the Arguments representation.
Signature
LoadSubCarrier (
[in] 0:String ID,
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 143 – UnloadSubCarrier Method Arguments
Argument |
Description |
ID |
The unique identifier of the carrier to be loaded. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The UnloadSublots Method requests the underlying system to unload one or more sublots from the carrier that is currently being unloaded.
The signature of this Method is specified below. Table 144 specifies the Arguments representation.
Signature
UnloadSublots (
[in] 0:String[] SublotIDs,
[out]MethodExecutionFeedbackType ExecutionFeedback);
Table 144 – UnloadSublots Method Arguments
Argument |
Description |
SublotIDs |
The unique identifiers of the material sublots to be unloaded. |
ExecutionFeedback |
The extended feedback returning a detailed message in case of execution failure. |
The MaterialLocationType ObjectType describes locations where material is stored around a machine module.
Examples of such locations are the designated areas on the floor where materials are delivered for consumption or where material produced by the machine is waiting to be collected. When the location where the material is stored is integral part of the mechanics or controls of the machine, the location shall be modelled as a MaterialStorageBuffer.
The MaterialLocationType representation in the AddressSpace is formally defined in the following table.
Table 145 – MaterialLocationType Definition
Attribute |
Value |
|||||
BrowseName |
MaterialLocationType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
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:HasProperty |
Variable |
CanReceive |
0:Boolean |
0:PropertyType |
M, RO |
|
0:HasProperty |
Variable |
CanSend |
0:Boolean |
0:PropertyType |
M, RO |
|
0:HasComponent |
Object |
Carriers |
|
0:FolderType |
M |
|
0:HasComponent |
Variable |
Sublots |
MaterialSublotType[] |
0:BaseDataVariableType |
M, RO |
|
0:HasProperty |
Variable |
ID |
0:String |
0:PropertyType |
M, RO |
|
0:HasProperty |
Variable |
MES_ID |
0:String |
0:PropertyType |
M, RW |
|
0:HasProperty |
Variable |
State |
StateEnumeration |
0:PropertyType |
O, RO |
|
0:HasComponent |
Object |
StateMachine |
|
TMCStateMachineType |
O |
|
0:HasComponent |
Object |
UIInfo |
|
UIInformationType |
O |
|
0:GeneratesEvent |
ObjectType |
CarrierEnteredLogType |
|
|
|
|
0:GeneratesEvent |
ObjectType |
CarrierReleasedLogType |
|
|
|
|
0:GeneratesEvent |
ObjectType |
StateChangeLogType |
|
|
|
|
Conformance Units |
||||||
TMC Intralogistics at the machine |
The components of the MaterialLocationType are further described below.
BrowseName |
Description |
CanReceive |
When True, material sublots or carriers can be stored in the material location. It is set by the underlying system to make the material location available for receiving. |
CanSend |
When True, material sublots or carriers can be removed in the material location. It is set by the underlying system to make the material location available for sending. |
Carriers |
The Carriers folder provides carriers that are stored in the material location. |
Sublots |
The Sublots array of MaterialSublotType provides carriers that are stored in the material location. |
ID |
The unique identifier for the material location. |
MES_ID |
The unique identifier of the material location according to a higher-level system, e.g. MES or ERP. |
State |
The state the material location is in. |
StateMachine |
The state machine describing the state and transitions of the material location. |
UIInfo |
The visualization resources to display the MaterialLocationType on the User Interface. |
The components of the MaterialLocationType have additional subcomponents which are defined in the following table.
Table 146 – MaterialLocationType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Carriers |
0:HasComponent |
Object |
<Carrier> |
|
CarrierType |
OP |
The TMCDeviceType ObjectType is used to include UIInfo and specify which DeviceType components are mandatory when used in compliance with TMC. The TMCDeviceType is abstract, meaning there will be no instances of the TMCDeviceType.
The TMCDeviceType representation in the AddressSpace is formally defined in the following table.
Table 147 – TMCDeviceType Definition
Attribute |
Value |
|||||
BrowseName |
TMCDeviceType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the DeviceType defined in OPC 10000-100, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Object |
UIInfo |
|
UIInformationType |
O |
|
Conformance Units |
||||||
TMC Advanced Visualisation and Control |
The components of the TMCDeviceType are further described below.
BrowseName |
Description |
UIInfo |
The visualization resources to display the Device on the User Interface. |
Instances of the TMCDeviceType and derived types are components of the DeviceSet Object as defined by OPC10000-100, 5.9 DeviceSet.
For additional clarity, TMCDeviceType instances and instances of derived types shall be grouped under the DeviceSet object.