6.8.1 Process Value Qualifier and StatusCode Relationship for RIOforPA
RIOforPA status information is conveyed to the Client as copy of the original status transmitted in the telegram signal. The value of the RioPaProcessValueQualifierVariableType Variable and the Qualifier member of the RioPaAnalogValueDataType and the RioPaDigitalValueDataType shall contain the original status. In addition to this, the status can be encoded into additional qualifier values encoded as RioQualityEnumeration, RioSpecifierEnumeration and RioQualifierEnumeration enumeration values.
6.8.1.1 Condensed Status restricted to NE 107
If the Device generates condensed status codes restricted to NE 107 (See [PCD] chapter 5.4.3.2), the status information delivered for one Process Value and the OPC UA StatusCode shall be set consistent as defined in Table 13.
| NE 107 | Status Byte Values | Description according to Profile | OPC UA Status Code | RioQuality Enumeration | RioSpecifier Enumeration | RioQualifierEnumeration | |
| Failure (F) | 0x24, 0x26 | BAD - maintenance alarm, more diagnosis available | Bad, 0x80000000 | BAD | FAILURE | BAD_MAINTENANCE_ALARM | |
| 0x25, 0x27 | BAD_MAINTENANCE_ALARM_ SIMULATION_ACTIVE | ||||||
| Check(C) | 0x3C, 0x3E | BAD - function check / local override | Bad, 0x80000000 | BAD | FUNCTION_ CHECK | BAD_FUNCTION_CHECK | |
| 0x3D, 0x3F | BAD_FUNCTION_CHECK_ SIMULATION_ACTIVE | ||||||
| Out of Specification (S) | 0x78, 0x7A | UNCERTAIN - process related, no maintenance | Uncertain, 0x40000000 | UNCERTAIN | OUT_OF_ SPECIFICATION | UNCERTAIN_NO_MAINTENANCE | |
| 0x79, 0x7B | UNCERTAIN_NO_MAINTENANCE_ SIMULATION_ACTIVE | ||||||
| Maintenance (M) | 0xA4, 0xA6 | GOOD - maintenance required | Good, 0x00000000 | GOOD | MAINTENANCE_ REQUEST | GOOD_MAINTENANCE_REQUIRED | |
| 0xA5, 0xA7 | GOOD_MAINTENANCE_REQUIRED_ SIMULATION_ACTIVE | ||||||
| 0xA8, 0xAA | GOOD - maintenance demanded | Good, 0x00000000 | GOOD | MAINTENANCE_ REQUEST | GOOD_MAINTENANCE_DEMANDED | ||
| 0xA9, 0xAB | GOOD_MAINTENANCE_DEMANDED_SIMULATION_ACTIVE | ||||||
| Good (G) | 0x80 | GOOD - ok | Good, 0x00000000 | GOOD | NORMAL | GOOD | |
| Check (C) | 0x81 | GOOD - simulation active | GoodEdited, 0x00DC0000 | GOOD | FUNCTION_ CHECK | GOOD_SIMULATION_ACTIVE | |
| Good (G) | 0x82 | GOOD - update event | Good, 0x00000000 | GOOD | NORMAL | UPDATE | |
The two values for status bytes consider the possible appearance of the update bit as defined in [PCD]. The update bit is not mapped further into separate status values. In contrast, the appearance of the “simulation active” bit is mapped to special values of the RioQualifierEnumeration.
6.8.1.2 Status with detailed Information
If the Server generates status codes with detailed information (See [PCD] chapter 5.4.3.3), the status information delivered for one Process Value and the OPC UA StatusCode shall be set consistent as defined in Table 14.
| NE 107 | Status Byte Range | Description according to Profile | OPC UA Status Code | RioQuality Enumeration | RioSpecifier Enumeration | RioQualifierEnumeration |
| Failure (F) | 0x00 | BAD - non specific | Bad, 0x80000000 | BAD | FAILURE | BAD_NON_SPECIFIC |
| Failure (F) | 0x08, 0x0A | BAD - not connected | BadNotConnected, 0x808A0000 | BAD | FAILURE | BAD_NOT_CONNECTED |
| 0x09, 0x0B | BAD_NOT_CONNECTED_ SIMULATION_ACTIVE | |||||
| Failure (F) | 0x20, 0x22 | BAD - passivated | BadOutOfService, 0x808D0000 | BAD | FAILURE | BAD_PASSIVATED |
| 0x21, 0x23 | BAD_PASSIVATED_SIMULATION_ACTIVE | |||||
| Failure (F) | 0x24, 0x26 | BAD - maintenance alarm, more diagnosis available | Bad, 0x80000000 | BAD | FAILURE | BAD_MAINTENANCE_ALARM |
| 0x25, 0x27 | BAD_MAINTENANCE_ALARM_ SIMULATION_ACTIVE | |||||
| Failure (F) | 0x28, 0x2A | BAD - process related, no maintenance | Bad, 0x80000000 | BAD | FAILURE | BAD_PROCESS |
| 0x29, 0x2B | BAD_PROCESS_SIMULATION_ACTIVE | |||||
| Check(C) | 0x3C, 0x3E | BAD - function check / local override | Bad, 0x80000000 | BAD | FUNCTION_ CHECK | BAD_FUNCTION_CHECK |
| 0x3D, 0x3F | BAD_FUNCTION_CHECK_ SIMULATION_ACTIVE | |||||
| Failure (F) | 0x48, 0x4A | UNCERTAIN - substitute set | UncertainSubstituteValue, 0x40910000 | UNCERTAIN | FAILURE | UNCERTAIN_SUBSTITUTE_SET |
| 0x49, 0x4B | UNCERTAIN_SUBSTITUTE_SET_ SIMULATION_ACTIVE | |||||
| Check (C) | 0x4C, 0x4E | UNCERTAIN - initial value | UncertainInitialValue, 0x40920000 | UNCERTAIN | FUNCTION_ CHECK | UNCERTAIN_INITIAL_VALUE |
| 0x4D, 0x4F | UNCERTAIN_INITIAL_VALUE_ SIMULATION_ACTIVE | |||||
| Maintenance (M) | 0x68, 0x6A | UNCERTAIN - maintenance demanded | Uncertain, 0x40000000 | UNCERTAIN | MAINTENANCE_ REQUEST | UNCERTAIN_MAINTENANCE_ DEMANDED |
| 0x69, 0x6B | UNCERTAIN_MAINTENANCE_ DEMANDED_SIMULATION_ACTIVE | |||||
| Out of Specification (S) | 0x78, 0x7A | UNCERTAIN - process related, no maintenance | Uncertain, 0x40000000 | UNCERTAIN | OUT_OF_ SPECIFICATION | UNCERTAIN_NO_MAINTENANCE |
| 0x79, 0x7B | UNCERTAIN_NO_MAINTENANCE_ SIMULATION_ACTIVE | |||||
| Good (G) | 0x80, 0x82 | GOOD | Good, 0x00000000 | GOOD | NORMAL | GOOD |
| 0x81, 0x83 | GOOD_SIMULATION_ACTIVE | |||||
| Good (G) | 0xA0 | GOOD - initiate fail safe | GoodInitiateFault State, 0x04080000 | GOOD | NORMAL | GOOD_INITIATE_FAULT_STATE |
| Maintenance (M) | 0xA4, 0xA6 | GOOD - maintenance required | Good, 0x00000000 | GOOD | MAINTENANCE_ REQUEST | GOOD_MAINTENANCE_REQUIRED |
| 0xA5, 0xA7 | GOOD_MAINTENANCE_REQUIRED_ SIMULATION_ACTIVE | |||||
| 0xA8, 0xAA | GOOD - maintenance demanded | Good, 0x00000000 | GOOD | MAINTENANCE_ REQUEST | GOOD_MAINTENANCE_DEMANDED | |
| 0xA9, 0xAB | GOOD_MAINTENANCE_DEMANDED_ SIMULATION_ACTIVE | |||||
| Good (G) | 0x9C, 0x9E | GOOD - local override | GoodLocalOverride, 0x00960000 | GOOD | NORMAL | GOOD_LOCAL_OVERRIDE |
| 0x9D, 0x9F | GOOD_LOCAL_OVERRIDE_ SIMULATION_ACTIVE | |||||
| Good (G) | 0xBC, 0xBE | GOOD - function check | Good, 0x00000000 | GOOD | NORMAL | GOOD_FUNCTION_CHECK |
| 0xBD, 0xBF | GOOD_FUNCTION_CHECK_ SIMULATION_ACTIVE |
6.8.1.3 Classic Status
For Devices generating classic status codes, OPC UA Servers shall set the status information delivered for one Process Value and the OPC UA StatusCode consistent as defined in Table 15.
| Sub- status | Description | OPC UA Status Code | Status Byte | RioQuality Enumeration | RioSpecifier Enumeration UNSPECIFIED | RioQualifierEnumeration |
| Quality BAD | ||||||
| 0 | non-specific | Bad, 0x80000000 | 0x00.. 0x03 | BAD | BAD_NOT_SPECIFIC | |
| 1 | configuration error | BadConfigurationError, 0x80890000 | 0x04.. 0x07 | BAD_NOT_SPECIFIC | ||
| 2 | not connected | BadNotConnected, 0x808A0000 | 0x08.. 0x0B | BAD_NOT_CONNECTED | ||
| 3 | device failure | BadDeviceFailure, 0x808B0000 | 0x0C.. 0x0F | BAD_NOT_SPECIFIC | ||
| 4 | sensor failure | BadSensorFailure, 0x808C0000 | 0x10.. 0x13 | BAD_NOT_SPECIFIC | ||
| 5 | no communication (LUV) | BadCommunicationError, 0x80050000 | 0x14.. 0x17 | BAD_NOT_SPECIFIC | ||
| 6 | no communication (no LUV) | BadNoCommunication, 0x80310000 | 0x18.. 0x1B | BAD_NOT_SPECIFIC | ||
| 7 | out of service | BadOutOfService, 0x808D0000 | 0x1C.. 0x1F | BAD_PASSIVATED | ||
| Quality UNCERTAIN | ||||||
| 0 | non specific | Uncertain, 0x40000000 | 0x40.. 0x43 | UNCERTAIN | UNCERTAIN_NO_ MAINTENANCE | |
| 1 | last usable value (LUV) | UncertainLastUsableValue, 0x40900000 | 0x44.. 0x47 | UNCERTAIN_NO_ MAINTENANCE | ||
| 2 | substitute value | UncertainSubstituteValue, 0x40910000 | 0x48.. 0x4B | UNCERTAIN_SUBSTITUTE_SET | ||
| 3 | initial value | UncertainInitialValue, 0x40920000 | 0x4C.. 0x4F | UNCERTAIN_INITIAL_VALUE | ||
| 4 | sensor conversion not accurate | UncertainSensorNotAccurate, 0x40930000 | 0x50.. 0x53 | UNCERTAIN_NO_ MAINTENANCE | ||
| 5 | engineering unit violation | UncertainEngineeringUnits Exceeded, 0x40940000 | 0x54.. 0x57 | UNCERTAIN_NO_ MAINTENANCE | ||
| 6 | sub normal | UncertainSubNormal, 0x40950000 | 0x58.. 0x5B | UNCERTAIN_NO_ MAINTENANCE | ||
| 7 | configuration error | UncertainConfigurationError, 0x420F0000 | 0x5C.. 0x5F | UNCERTAIN_NO_ MAINTENANCE | ||
| 8 | simulated value | UncertainSimulatedValue, 0x42090000 | 0x60.. 0x63 | UNCERTAIN_NO_ MAINTENANCE_ | ||
| 9 | sensor calibration | UncertainSensorCalibration, 0x420A0000 | 0x64.. 0x67 | UNCERTAIN_NO_ MAINTENANCE | ||
| Quality GOOD (Non Cascade) | ||||||
| 0 | ok | Good, 0x00000000 | 0x80.. 0x83 | GOOD | GOOD | |
| 1 | update event | Good, 0x00000000 | 0x84.. 0x87 | GOOD | ||
| 2 | active advisory alarm | GoodFaultStateActive, 0x04070000 | 0x88.. 0x8B | GOOD | ||
| 3 | active critical alarm | GoodFaultStateActive, 0x04070000 | 0x8C.. 0x8F | GOOD | ||
| 4 | unacknowledged update event | Good, 0x00000000 | 0x90.. 0x93 | GOOD | ||
| 5 | unacknowledged advisory alarm | GoodFaultStateActive, 0x04070000 | 0x94.. 0x97 | GOOD | ||
| 6 | unacknowledged critical alarm | GoodFaultStateActive, 0x04070000 | 0x98.. 0x9B | GOOD | ||
| 7 | reserved | - | ||||
| 8 | initiate fail safe | GoodInitiateFaultState, 0x04080000 | 0xA0 | GOOD | GOOD_INITIATE_ FAULT_STATE | |
| 9 | maintenance required | Good, 0x00000000 | 0xA4.. 0xA7 | GOOD_MAINTENANCE_ REQUIRED | ||
| Quality GOOD (Cascade) | ||||||
| 0 | ok | GoodCascade, 0x04090000 | 0xC0.. 0xC3 | GOOD | GOOD | |
| 1 | initialization acknowledged |
GoodCascadeInitialization
Acknowledged, 0x04010000 | 0xC4.. 0xC7 | GOOD | ||
| 2 | initialization request |
GoodCascadeInitialization
Request, 0x04020000 | 0xC8.. 0xCB | GOOD | ||
| 3 | not invited | GoodCascadeNotInvited, 0x04030000 | 0xCC.. 0xCF | GOOD | ||
| 4 | reserved | - | ||||
| 5 | do not select | GoodCascadeNotSelected, 0x04040000 | 0xD4.. 0xD7 | GOOD | GOOD | |
| 6 | local override | GoodLocalOverride, 0x00960000 | 0xD8.. 0xDB | GOOD_LOCAL_OVERRIDE | ||
| 7 | reserved | - | - | |||
| 8 | initial fail safe | GoodInitiateFaultState, 0x04080000 | 0xE0 | GOOD | GOOD_INITIATE_ FAULT_STATE | |
According to [PCD PB] chapter 5.3.4.2.1, the classic status codes shall be supported for legacy Devices requiring backward compatibility only. Otherwise, only condensed status generation or condensed status with detailed information as defined in 6.8.1.1 and 6.8.1.2 is required.