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