In an OPC UA Server, Automation Data is represented as a Data Value and and status, in addition additional error data can be provided via Diagnostic Info for a tag

The COM UA Proxy maps the Data Value structure into VQT data and error code.

For successful operations(StatusCode of Good and Uncertain), the COM UA Proxy maps the Status Code of the DataValue to the OPC DA Quality But in case of error(StatusCode of Bad), the Status Code is mapped to the OPC DA Error code.

The StatusCode in the Diagnostic Info returned by the OPC UA Server are mapped to OPC DA Error codes. Figure A.16 illustrates this mapping.

image031.png

Figure A.16 – OPC UA to OPC DA data & error mapping

The COM UA Proxy converts the OPC UA Data Value to the corresponding OPC DA Variant type. The mapping is shown in Table A.64. For DataTypes that are subtypes of an existing base DataType the conversion for the Base DataType is used.

Table A.64 – DataTypes and Mapping

OPC UA

Data type (Bin UA Server)

Variant Data

Type (In DA server)

Int16

VT_I2

Int32

VT_I4

Float

VT_R4

Double

VT_R8

Decimal

VT_DECIMAL

String

VT_BSTR

Boolean

VT_BOOL

Byte

VT_UI1

SByte

VT_I1

UInt16

VT_UI2

UInt32

VT_UI4

Int64

VT_I8

UInt64

VT_UI8

Guid

VT_BSTR

DateTime

VT_DATE

NodeId

VT_BSTR

XmlElement

VT_BSTR

ExpandedNodeId

VT_BSTR

QualifiedName

VT_BSTR

LocalizedText

VT_BSTR

StatusCode

VT_UI4

ExtensionObject

Array of VT_UI1

Array of above OPC UA types

Array of corresponding Variant type

The Quality of a Data Value in the OPC UA Server is represented as a StatusCode.

The COM UA Proxy maps the Severity, Subcode and the limit bits of the OPC UA Status code to the lower 8 bits of the OPC DA Quality structure (of the form QQSSSSLL). Figure A.17 illustrates this mapping.

image032.png

Figure A.17 – OPC UA Status Code to OPC DA quality mapping

The Severity field of the Status code is mapped to the primary quality. The SubCode is mapped to the Sub Status and the Limit Bits are mapped to the Limit field.

Table A.65 shows a mapping of the OPC UA status code to OPC DA primary quality

Table A.65 – Quality mapping

OPC UA Status Code

OPC DA Primary Quality (Quality & Sub status QQSSSS)

Good

GOOD

Good_LocalOverride

LOCAL_OVERRIDE

Uncertain

UNCERTAIN

Uncertain_SubNormal

SUB_NORMAL

Uncertain_SensorNotAccurate

SENSOR_CAL

Uncertain_EngineeringUnitsExceeded

EGU_EXCEEDED

Uncertain_LastUsableValue

LAST_USABLE

Bad

BAD

Bad_ConfigurationError

CONFIG_ERROR

Bad_NotConnected

NOT_CONNECTED

Bad_NoCommunication

COMM_FAILURE

Bad_OutOfService

OUT_OF_SERVICE

Bad_DeviceFailure

DEVICE_FAILURE

Bad_SensorFailure

SENSOR_FAILURE

Bad_WaitingForInitialData

WAITING_FOR_INITIAL_DATA

If available, the SourceTimestamp of the DataValue in the OPC UA Server is assigned to the Timestamp for the value in the COM UA Proxy. If SourceTimestamp is not available, then the ServerTimestamp is used.