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.