Errata exists for this version of the document.

This subclause defines additional codes and rules that apply to the StatusCode when used for Data Access values.

The general structure of the StatusCode is specified in OPC 10000-4 and includes a set of common operational result codes that also apply to Data Access.

Certain conditions under which a Variable value was generated are only valid for automation data and in particular for device data; they are similar, but are slightly more generic than the description of data quality in the various fieldbus specifications.

In the following, Table 28 contains codes with BAD severity which indicates a failure.

Table 29 contains codes with UNCERTAIN severity which indicates that the value has been generated under sub-normal conditions

Table 30 contains GOOD (success) codes.

Note again, that these are the codes that are specific for Data Access and supplement the codes that apply to all types of data which are defined in OPC 10000-4.

Table 28 – Operation level result codes for BAD data quality

Symbolic Id

Description

Note - Bad is defined in OPC 10000-4. It shall be used when there is no special reason why the Value is bad.

Bad_ConfigurationError

There is a problem with the configuration that affects the usefulness of the value.

Bad_NotConnected

The variable should receive its value from some data source, but has never been configured to do so.

Bad_DeviceFailure

There has been a failure in the device/data source that generates the value that has affected the value.

Bad_SensorFailure

There has been a failure in the sensor from which the value is derived by the device/data source.The limits bits are used to define if the limits of the value have been reached.

Note - Bad_NoCommunication is defined in OPC 10000-4. It shall be used when communications to the data source is defined, but not established, and there is no last known value available.

Bad_OutOfService

The source of the data is not operational.

Bad_LastKnown

OPC UA requires that the Server shall return a Null value when the Severity is Bad. Therefore, the Fieldbus code “Bad_LastKnown” shall be mapped to Uncertain_NoCommunicationLastUsable.

Bad_DeadbandFilterInvalid

The specified PercentDeadband is not between 0.0 and 100.0 or a PercentDeadband is not supported, since an EURange is not configured.

Note - Bad_WaitingForInitialData is defined in OPC 10000-4.

Table 29 – Operation level result codes for UNCERTAIN data quality

Symbolic Id

Description

Note - Uncertain is defined in OPC 10000-4. It shall be used when there is no special reason why the Value is uncertain.

Uncertain_ NoCommunicationLastUsable

Communication to the data source has failed. The variable value is the last value that had a good quality and it is uncertain whether this value is still current.

The server timestamp in this case is the last time that the communication status was checked. The time at which the value was last verified to be true is no longer available.

Uncertain_LastUsableValue

Whatever was updating this value has stopped doing so. This happens when an input variable is configured to receive its value from another variable and this configuration is cleared after one or more values have been received.

This status/substatus is not used to indicate that a value is stale. Stale data can be detected by the client looking at the timestamps.

Uncertain_SubstituteValue

The value is an operational value that was manually overwritten.

Uncertain_InitialValue

The value is an initial value for a variable that normally receives its value from another variable. This status/substatus is set only during configuration while the variable is not operational (while it is out-of-service).

Uncertain_SensorNotAccurate

The value is at one of the sensor limits. The Limits bits define which limit has been reached. Also set if the device can determine that the sensor has reduced accuracy (e.g. degraded analyzer), in which case the Limits bits indicate that the value is not limited.

Uncertain_ EngineeringUnitsExceeded

The value is outside of the range of values defined for this parameter. The Limits bits indicate which limit has been reached or exceeded.

Uncertain_SubNormal

The value is derived from multiple sources and has less than the required number of Good sources.

Table 30 – Operation level result codes for GOOD data quality

Symbolic Id

Description

Note - Good is defined in OPC 10000-4. It shall be used when there are no special conditions.

Good_LocalOverride

The value has been Overridden. Typically this is means the input has been disconnected and a manually-entered value has been ”forced”.

The bottom 16 bits of the StatusCode are bit flags that contain additional information, but do not affect the meaning of the StatusCode. Of particular interest for DataItems is the LimitBits field. In some cases, such as sensor failure it can provide useful diagnostic information.

Servers that do not support Limit have to set this field to 0.