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.

Table 56 contains codes with BAD severity which indicates a failure.

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

Table 58 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 56 – Operation level result codes for BAD data quality

Symbolic Id


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


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


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


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


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.


The source of the data is not operational.


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.


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 57 – Operation level result codes for UNCERTAIN data quality

Symbolic Id


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.


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.


The value is an operational value that was manually overwritten.


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).


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.


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


The value is simulated.


The value may not be accurate due to a sensor calibration fault.


The value may not be accurate due to a configuration issue.

Table 58 – Operation level result codes for GOOD data quality

Symbolic Id


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


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.