When returning the Value of Process Values, the Server shall set the StatusCode member of the DataValue structures returned by the Read Service and the Publish Service consistent with the Process Value Qualifier information defined for Process Value Variables and structures.

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.

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.

Table 13 – Condensed status restricted to NE 107

NE 107

Status Byte Values

Description according to Profile

OPC UA Status Code

RioQualityEnumeration

RioSpecifierEnumeration

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.

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.

Table 14 – Condensed status with detailed information

NE 107

Status Byte Range

Description according to Profile

OPC UA Status Code

RioQualityEnumeration

RioSpecifierEnumeration

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

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.

Table 15 – Classic status codes

Sub-status

Description

OPC UA Status Code

Status Byte

RioQualityEnumeration

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_SIMULATION_ACTIVE

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

GoodCascadeInitializationAcknowledged, 0x04010000

0xC4.. 0xC7

GOOD

2

initialization request

GoodCascadeInitializationRequest, 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.

RIOforFA status information is conveyed to the Client as copy of the original status transmitted in the telegram signal. The value of the RioFaProcessValueQualifierVariableType Variable and the Qualifier member of the RioFaAnalogValueDataType and the RioFaDigitalValueDataType shall contain the original status. In addition to this, the status can be encoded into additional qualifier values encoded as RioQualityEnumeration.

The status information delivered for one Process Value and the OPC UA StatusCode shall be set consistent as defined in Table 16.

Table 16 – RIOforFA StatusCodes

Status Bit Value

Description according to Profile

(See [RIO FA] chapter 7.1)

OPC UA Status Code

RioQualityEnumeration

1 (good)

Input: Process Value can be used by host application.

Output: Physical signal equals Process Value.

Good,

0x00000000

GOOD

0 (bad)

Input: Process Value should not be used by host application.

Output: Substitute Value applied by (Sub)Module.

Bad,

0x80000000

BAD

When returning arrays of Process Values, the Server shall set the Severity of the StatusCode to “Bad” if one or more Process Values in the returned array are “Bad”. If no Process Value in the array is “Bad”, the Severity returned shall be “Uncertain” if one or more Process Values in the returned array are “Uncertain”. The Severity returned shall be “Good” only if all Process Values in the array are “Good”.