To provide information about the maintenance of an asset, the alarming mechanism of OPC UA is used. This allows providing information on upcoming or not executed maintenance activities by making the conditions representing the upcoming maintenance activity active. Even if the maintenance activity has not been executed (planned or in execution), the information can already be provided to the Client. In this case, the 0:Retain Property of the condition shall be set to true, allowing Clients to access the information.
Using the alarming mechanism of OPC UA also allows providing information about past maintenance activities by providing access to the history of Events for those maintenance activities.
The conditions representing maintenance activities might be represented as Objects in the AddressSpace, however, this is not required. If they are provided, it is recommended to use the 2:DeviceHealthAlarms folder defined in 2:IDeviceHealthType as container for those Objects.
This specification does not define a specific 0:ConditionType for maintenance activities. Companion specifications or vendors might define their own 0:ConditionTypes for specific types of maintenance activities. It is recommended to create those as subtypes of 2:MaintenanceRequiredAlarmType defined in OPC 10000-100.
To allow clients to easily identify or filter for maintenance activities, the 0:ConditionClassId is used as defined for conditions in OPC 10000-9. Maintenance activities shall use the 0:MaintenanceConditionClassType or a subtype as 0:ConditionClassId. In 12.4, specific 0:ConditionClassIds are defined. Companion specifications or vendors might create subtypes of 0:MaintenanceConditionClassType or its subtypes for a more detailed classification.
The maintenance activities should provide specific information. This specification defines an interface (see 12.2) that should be implemented by all ConditionTypes used as maintenance activities.
For a recurring maintenance activity it is recommended to use one condition and change the state of the condition to the next planned occurrence of the maintenance activity once the maintenance activity has taken place.
When the execution of a maintenance activity fails (e.g., the correct part to exchange is not available) the message field of the event should be used to indicate the failure. The event may be extended with additional event fields for more specific information. However, this specification does not define more specific event fields for this case.
The IMaintenanceEventType is an interface and should be applied to 0:ConditionTypes. It is formally defined in Table 35.
Table 35 – IMaintenanceEventType Definition
Attribute |
Value |
||||
BrowseName |
IMaintenanceEventType |
||||
IsAbstract |
True |
||||
Description |
Information on maintenance activities, should by applied to conditions (ConditionType or subtypes) |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseInterfaceType Type defined in OPC 10000-5 |
|||||
0:HasComponent |
Object |
MaintenanceState |
|
MaintenanceEventStateMachineType |
M |
0:HasProperty |
Variable |
PlannedDate |
0:UtcTime |
PropertyType |
O |
0:HasProperty |
Variable |
EstimatedDowntime |
0:Duration |
PropertyType |
O |
0:HasProperty |
Variable |
MaintenanceSupplier |
NameNodeIdDataType |
PropertyType |
O |
0:HasProperty |
Variable |
QualificationOfPersonnel |
NameNodeIdDataType |
PropertyType |
O |
0:HasProperty |
Variable |
PartsOfAssetReplaced |
NameNodeIdDataType[] |
PropertyType |
O |
0:HasProperty |
Variable |
PartsOfAssetServiced |
NameNodeIdDataType[] |
PropertyType |
O |
0:HasProperty |
Variable |
MaintenanceMethod |
MaintenanceMethodEnum |
PropertyType |
O |
0:HasProperty |
Variable |
ConfigurationChanged |
0:Boolean |
PropertyType |
O |
Conformance Units |
|||||
AMB Current and Future Maintenance Activities |
The MaintenanceState provides the information if the maintenance activity is still planned, currently in execution, or has already been executed.
The PlannedDate provides the date for which the maintenance activity has been scheduled. In case of replanning, it is allowed to change the PlannedDate. However, it is not the intention that the PlannedDate is modified because the maintenance activity starts to get executed. If the PlannedDate depends for example on the operation hours of the asset, it might get adapted depending on the passed operation hours.
The EstimatedDowntime provides the estimated time the execution of the maintenance activity will take. In case of replanning, it is allowed to change the EstimatedDowntime. If during the execution of the maintenance activity the EstimatedDowntime can be adjusted (e.g., the asset needs to be repaired because an inspection found some issues) this should be done. Clients can access the history of Events to receive the information on the original estimates when the maintenance activity started.
The MaintenanceSupplier provides information on the supplier that is planned to execute, currently executing or has executed the maintenance activity. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual supplier that executed the maintenance activity. The value contains always a human-readable name of the supplier and optionally references a Node representing the supplier in the AddressSpace.
The QualificationOfPersonnel provides information on the qualification of the personnel that is planned to execute, currently executing or has executed the maintenance activity. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual qualification of the personnel that executed the maintenance activity. The value contains always a human-readable name of the qualification of the personnel and optionally references a Node representing the qualification of the personnel in the AddressSpace.
The PartsOfAssetReplaced provides information on the parts of the assets that are planned to be replaced during the maintenance activity, currently in replacement or have been replaced, depending on the different MaintenanceStates. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual parts of the assets replaced during the maintenance activity. The value contains always an array of a human-readable name of the qualification of the parts of the asset to be replaced and optionally references a Node representing each part of the asset in the AddressSpace.
The PartsOfAssetServiced provides information on the parts of the assets that are planned to be serviced during the maintenance activity, currently serviced or have been serviced, depending on the different MaintenanceStates. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual parts of the assets serviced during the maintenance activity. The value contains always an array of a human-readable name of the qualification of the parts of the asset to be serviced and optionally references a Node representing the part of the asset in the AddressSpace.
The MaintenanceMethod provides information about the planned or used maintenance method. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual used maintenance method during the maintenance activity.
The ConfigurationChanged provides information if the configuration of the asset is planned to be changed or has changed during the maintenance activity. FALSE indicates no change, and TRUE indicates a change. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual configuration changes during the maintenance activity.
The description of the maintenance activity should be put into the Message field defined for the BaseEventType in OPC 10000-5.
The maintenance activity starts, when the MaintenanceState changes to Execution, and finished, when it changes to Finished. Clients can use this information to identify the overall duration the maintenance took place.
Servers might change the Severity or other Event Fields as well as the state of the conditions when a maintenance activity becomes nearer to its due date in order notify Clients with an Event notification.
The child Nodes of the IMaintenanceEventType have additional Attribute values defined in Table 36.
Table 36 – IMaintenanceEventType Attribute values for child Nodes
BrowsePath |
Description Attribute |
MaintenanceState |
Information if the maintenance activity is still planned, currently in execution, or has already been executed. |
PlannedDate |
Date for which the maintenance activity has been scheduled. In case of replanning, it is allowed to change the PlannedDate. However, it is not the intention that the PlannedDate is modified because the maintenance activity starts to get executed. If the PlannedDate depends for example on the operation hours of the asset, it might get adapted depending on the passed operation hours. |
EstimatedDowntime |
The estimated time the execution of the maintenance activity will take. In case of replanning, it is allowed to change the EstimatedDowntime. If during the execution of the maintenance activity the EstimatedDowntime can be adjusted (e.g., the asset needs to be repaired because an inspection found some issues) this should be done. Clients can access the history of Events to receive the information on the original estimates when the maintenance activity started. |
MaintenanceSupplier |
Information on the supplier that is planned to execute, currently executing or has executed the maintenance activity. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual supplier that executed the maintenance activity. The value contains always a human-readable name of the supplier and optionally references a Node representing the supplier in the AddressSpace. |
QualificationOfPersonnel |
Information on the qualification of the personnel that is planned to execute, currently executing or has executed the maintenance activity. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual qualification of the personnel that executed the maintenance activity. The value contains always a human-readable name of the qualification of the personnel and optionally references a Node representing the qualification of the personnel in the AddressSpace. |
PartsOfAssetReplaced |
Information on the parts of the assets that are planned to be serviced during the maintenance activity, currently serviced or have been serviced, depending on the different MaintenanceStates. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual parts of the assets serviced during the maintenance activity. The value contains always an array of a human-readable name of the qualification of the parts of the asset to be serviced and optionally references a Node representing the part of the asset in the AddressSpace. |
PartsOfAssetServiced |
Information on the parts of the assets that are planned to be serviced during the maintenance activity, currently serviced or have been serviced, depending on the different MaintenanceStates. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual parts of the assets serviced during the maintenance activity. The value contains always an array of a human-readable name of the qualification of the parts of the asset to be serviced and optionally references a Node representing the part of the asset in the AddressSpace. |
MaintenanceMethod |
Information about the planned or used maintenance method. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual used maintenance method during the maintenance activity. |
ConfigurationChanged |
Information if the configuration of the asset is planned to be changed or has changed during the maintenance activity. FALSE indicates no change, and TRUE indicates a change. The content may change during the different MaintenanceStates. By accessing the history of Events a Client can distinguish between the planned and actual configuration changes during the maintenance activity. |
Figure 10 – Example State Machine
The MaintenanceEventStateMachineType provides information, whether a maintenance activity is planned, currently in execution, or has been executed. A state machine diagram is shown in Figure 10. This specification does not define any effects or actions of the MaintenanceEventStateMachineType, the execution of the StateMachine is server-specific. The Transitions go from Planned to Executing to Finished. In case or repeating maintenance activities, the StateMachine might go back from Finished to Planned for another cycle. The ObjectType and is formally defined in Table 37.
Table 37 – MaintenanceEventStateMachineType Definition
Attribute |
Value |
||||
BrowseName |
MaintenanceEventStateMachineType |
||||
IsAbstract |
False |
||||
Description |
Information, whether a maintenance activity is planned, currently in execution, or has been executed |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the FiniteStateMachineType defined in OPC 10000-16, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Planned |
|
0:InitialStateType |
|
0:HasComponent |
Object |
Executing |
|
0:StateType |
|
0:HasComponent |
Object |
Finished |
|
0:StateType |
|
0:HasComponent |
Object |
FromPlannedToExecuting |
|
0:TransitionType |
|
0:HasComponent |
Object |
FromExecutingToFinished |
|
0:TransitionType |
|
0:HasComponent |
Object |
FromFinishedToPlanned |
|
0:TransitionType |
|
Conformance Units |
|||||
AMB Current and Future Maintenance Activities |
The components of the MaintenanceEventStateMachineType have additional References which are defined in Table 38.
Table 38 – MaintenanceEventStateMachineType Additional References
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
FromPlannedToExecuting |
0:FromState |
True |
Planned |
|
0:ToState |
True |
Executing |
FromExecutingToFinished |
0:FromState |
True |
Executing |
|
0:ToState |
True |
Finished |
FromFinishedToPlanned |
0:FromState |
True |
Finished |
|
0:ToState |
True |
Planned |
The components of the MaintenanceEventStateMachineType have additional Attributes defined in Table 39.
Table 39 – MaintenanceEventStateMachineType Attribute values for child Nodes
BrowsePath |
Value Attribute |
||
|
1 |
||
|
2 |
||
|
3 |
||
|
1 |
||
|
2 |
||
|
3 |
Maintenance activities can be classified into different categories. This specification uses the mechanism of the ConditionClassId defined for conditions in OPC 10000-9, for such a classification of maintenance activities. In the following, specific subtypes of MaintenanceConditionClassType are defined, that should be used as ConditionClassId for specific maintenance activities. Other companion specifications and vendors might add additional subtypes of MaintenanceConditionClassType and might inherit from the types defined in this specification.
The InspectionConditionClassType is used to classify conditions related to inspection maintenance activities. It is formally defined in Table 40.
Table 40 – InspectionConditionClassType Definition
Attribute |
Value |
||||
BrowseName |
InspectionConditionClassType |
||||
IsAbstract |
True |
||||
Description |
An inspection maintenance activity |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:MaintenanceConditionClassType defined in OPC 10000-9 |
|||||
Conformance Units |
|||||
AMB Current and Future Maintenance Activities |
The ExternalCheckConditionClassType is used to classify conditions related to external check maintenance activities. It is formally defined in Table 41.
Table 41 – ExternalCheckConditionClassType Definition
Attribute |
Value |
||||
BrowseName |
ExternalCheckConditionClassType |
||||
IsAbstract |
True |
||||
Description |
An external check maintenance activity |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:MaintenanceConditionClassType defined in OPC 10000-9 |
|||||
Conformance Units |
|||||
AMB Current and Future Maintenance Activities |
The ServicingConditionClassType is used to classify conditions related to servicing maintenance activities. It is formally defined in Table 42.
Table 42 – ServicingConditionClassType Definition
Attribute |
Value |
||||
BrowseName |
ServicingConditionClassType |
||||
IsAbstract |
True |
||||
Description |
A servicing maintenance activity |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:MaintenanceConditionClassType defined in OPC 10000-9 |
|||||
Conformance Units |
|||||
AMB Current and Future Maintenance Activities |
The RepairConditionClassType is used to classify conditions related to repair maintenance activities. It is formally defined in Table 43.
Table 43 – RepairConditionClassType Definition
Attribute |
Value |
||||
BrowseName |
RepairConditionClassType |
||||
IsAbstract |
True |
||||
Description |
A repair maintenance activity |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:MaintenanceConditionClassType defined in OPC 10000-9 |
|||||
Conformance Units |
|||||
AMB Current and Future Maintenance Activities |
The ImprovementConditionClassType is used to classify conditions related to improvement maintenance activities. It is formally defined in Table 44.
Table 44 – ImprovementConditionClassType Definition
Attribute |
Value |
||||
BrowseName |
ImprovementConditionClassType |
||||
IsAbstract |
True |
||||
Description |
An improvement maintenance activity |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:MaintenanceConditionClassType defined in OPC 10000-9 |
|||||
Conformance Units |
|||||
AMB Current and Future Maintenance Activities |
This structure contains the name and optionally a NodeId. It is used to provide a human-readable name of something plus optionally the NodeId in case the something is represented in the AddressSpace. The structure is defined in Table 18.
Table 45 – NameNodeIdDataType Structure
Name |
Type |
Description |
NameNodeIdDataType |
structure |
|
Name |
0:LocalizedText |
The human-readable name. Shall be the DisplayName of the NodeId field, in case the NodeId is provided |
NodeId |
0:NodeId |
Optionally provided NodeId, in case the referenced thing is represented as Node in the AddressSpace. |
Its representation in the AddressSpace is defined in Table 46.
Table 46 – NameNodeIdDataType Definition
Attribute |
Value |
|||||
BrowseName |
NameNodeIdDataType |
|||||
IsAbstract |
False |
|||||
Description |
A human-readable name of something plus optionally the NodeId in case the something is represented in the AddressSpace |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of Structure defined in OPC 10000-5 |
||||||
Conformance Units |
||||||
AMB Current and Future Maintenance Activities |
This enumeration provides information on the maintenance method. The enumeration is defined in Table 47.
Table 47 – MaintenanceMethodEnum Items
Name |
Value |
Description |
Local |
0 |
Maintenance close to the asset |
Remote |
1 |
Maintenance from another location |
Its representation in the AddressSpace is defined in Table 48.
Table 48 – MaintenanceMethodEnum Definition
Attribute |
Value |
|||||
BrowseName |
MaintenanceMethodEnum |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the Enumeration type defined in OPC 10000-5 |
||||||
0:HasProperty |
Variable |
0:EnumValues |
0:EnumValueType[] |
0:PropertyType |
|
|
Conformance Units |
||||||
AMB Current and Future Maintenance Activities |