The Variable2:DeviceHealthdefined in OPC 10000-100is used to provide the overall health status of an asset. It uses an enumeration having the values NORMAL, FAILURE, CHECK_FUNCTION, OFF_SPEC and MAINTENANCE_REQUIRED (see OPC 10000-100for details).

Note that this Variableshould be used for all assets, independent of what type of asset it is, for example also for software components. For some types of assets, not all values of the enumeration can reasonably be applied.

OPC 10000-100defines the interface 2:IDeviceHealthTypecontaining optionally the Variable2:DeviceHealth. In older versions of OPC 10000-100the Variablewas only defined on the 2:DeviceType.

In order to support older versions of OPC 10000-100, Objectsrepresenting an asset and providing health status information shall provide the 2:DeviceHealth Variable. This should be achieved by implementing the 2:IDeviceHealthTypeinterface providing optionally the 2:DeviceHealth Variable. This can be done either directly on the instance (X:Asset1) or via the TypeDefinition(X:Asset2), as shown in Figure 3. However, it is also allowed to just provide the 2:DeviceHealth Variable as done by X:Asset3 by using the 2:DeviceType. Note that in the current version of OPC 10000-1002:DeviceType does implement 2:IDeviceHealthType.


Figure 3– Examples of assets providing health status

The SourceTimestampof the 2:DeviceHealth Variableprovides the time when the asset entered that health status. In order to provide an accurate time, Serversshould preserve the time, also when restarting the Server. As this might not always be possible, a Clientshall be aware that the SourceTimestampis not always the time when the asset switched the health status.