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.

image013.png

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

Planned

0:StateNumber

1

Executing

0:StateNumber

2

Finished

0:StateNumber

3

FromPlannedToExecuting

0:TransitionNumber

1

FromExecutingToFinished

0:TransitionNumber

2

FromFinishedToPlanned

0:TransitionNumber

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