Annex A (informative): OPC COM DA to UA Mapping ToC Previous

A.3 COM UA wrapper for OPC DA Server ToC Previous Next

A.3.4 Write Data ToC Previous Next

The COM UA Wrapper supports performing Write operations to DA servers of versions 2.05a and 3.

For version 2.05a, the COM UA wrapper creates a Group using the IOPCServer::AddGroup method and adds the items whose data is to be written using IOPCItemMgmt::AddItems method. The value is written for the items using the IOPCSyncIO::Write method. Note that if the StatusCode or TimeStamps (Source or Server) is specified to be written for the item then the COM UA Wrapper returns a BadWriteNotSupported Status code for the item.

For version 3, the COM UA Wrapper uses the IOPCItemIO::WriteVQT data including StatusCode and TimeStamp.If a SourceTimeStamp is provided, this timestamp is used for the Write else the ServerTimeStamp is used.

If there are errors for the items in the Write from the DA server, then these are mapped to the StatusCode for the corresponding item.

The mapping of the OPC COM DA Write Errors code to OPC UA Status code (in the COM UA Wrapper) is shown in Table A.35:

Table A.35 – OPC DA Write error code mapping

OPC DA Error ID OPC UA Status Code
E_BADRIGHTS Bad_NotWritable
DISP_E_TYPEMISMATCH Bad_TypeMismatch
E_BADTYPE Bad_TypeMismatch
E_RANGE Bad_OutOfRange
DISP_E_OVERFLOW Bad_OutOfRange
E_OUTOFMEMORY Bad_OutOfMemory
E_INVALIDHANDLE Bad_NodeIdUnknown
E_UNKNOWNITEMID Bad_NodeIdUnknown
E_INVALIDITEMID Bad_NodeIdInvalid
E_INVALID_PID Bad_NodeIdInvalid
E_NOTSUPPORTED Bad_WriteNotSupported
S_CLAMP Good_Clamped
Others Bad_UnexpectedError

Previous Next