Error codes are 4 bytes long, data type being DWORD.

NOTE: Bit 29 in this DWORD value is used to differentiate between error codes defined by OPC Foundation and error codes defined by PLCopen or Vendor.

Field

Bit Range

Description

Severity

30:31

Indicates whether the ErrorCode represents a good, bad or uncertain condition. These bits have the following meanings:

Good

success

00

Indicates that the operation was successful and the associated results may be used.

Uncertain

Warning

01

Indicates that the operation was partially successful and that associated results might not be suitable for some purposes.

Bad Failure

10

Indicates that the operation failed and any associated results cannot be used.

Reserved

11

Reserved for future use. All Clients should treat an ErrorCode with this severity as “Bad”.

ErrorType

29

Value 0 indicates OPC error. Please find these error codes in OPC UA 10000-4 specification.

Value 1 indicates PLCopen or vendor specific error signaled by BIT28.

NOTE: This bit shall always be zero on the wire.

ErrorType2

28

This flag can be evaluated only if BIT29 is Value 1.

Value 0 indicates PLCopen error.

Value 1 indicates vendor specific error.

NOTE 1): This bit shall always be zero on the wire.

NOTE 2): This bit shall only be set if bit 29 has value 1, because it is reserved in OPC 10000-4 for future use.

ErrorCode

(Bits 0..27)

Define

Description

Category

General

16#A000_0001

PLCopenUA_Bad_FW_PermanentError

Internal, permanent error.

16#A000_0002

PLCopenUA_Bad_FW_TempError

Temp. error; FB could retry to reach FW.

Category

Connection

16#A000_0100

PLCopenUA_Bad_ConnectionError

Connection could not be established.

16#A000_0101

PLCopenUA_Bad_HostNotFound

The requested hostname could not be found.

16#A000_0102

PLCopenUA_Bad_AlreadyConnected

Connection was already established.

16#A000_0103

PLCopenUA_Bad_SecurityFailed

Connection failed due to security setup.

16#A000_0104

PLCopenUA_Bad_Suspended

Connection is suspended.

16#A000_0105

PLCopenUA_Bad_ConnectionInvalidHdl

Provided ConnectionHdl is not known.

Category

Namespace

16#A000_0200

PLCopenUA_Bad_NSNotFound

A namespace with the requested name cannot be found on server.

Category

Node

16#A000_0300

PLCopenUA_Bad_ResultTooLong

Target PLC variable is too short for retrieved data.

16#A000_0301

PLCopenUA_Bad_InvalidType

Invalid or unsupported Type.

16#A000_0302

PLCopenUA_Bad_NodeInvalidHdl

Provided NodeHdl is not known.

16#A000_0303

PLCopenUA_Bad_MethodInvalidHdl

Provided MethodHdl is not known.

16#A000_0304

PLCopenUA_Bad_ReadFailed

Read failed for unknown reason.

16#A000_0305

PLCopenUA_Bad_WriteFailed

Write failed for unknown reason.

16#A000_0306

PLCopenUA_Bad_CallFailed

Method Call failed for unknown reason.

16#A000_0307

PLCopenUA_Bad_InParamFailed

Method Call Input parameter conversion failed.

16#A000_0308

PLCopenUA_Bad_OutParamFailed

Method Call Output parameter conversion failed. ATTENTION: this means the MethodCall was executed successfully but the returned values could not be converted.

Category

Attribute

16#A000_0400

PLCopenUA_Bad_AttributeIdUnknown

Used in UA_NodeGetInformation for elements, which are not in this NodeClass existing.

16#A000_0401

PLCopenUA_Bad_AttributeIdInvalid

Used in UA_NodeGetInformation for elements, which should exist but don’t.

Category

Monitoring

16#A000_0500

PLCopenUA_Bad_SubscriptionInvalidHdl

Provided SubscriptionHdl is not known.

16#A000_0501

PLCopenUA_Bad_MonitoredItemInvalidHdl

Provided MonitoredItemHdl is not known.

16#A000_0502

PLCopenUA_Bad_MonitoredItemSyncMismatch

Mixed controller sync and firmware sync in same list

16#A000_0503

PLCopenUA_Bad_SyncModeInvalid

Sync mode invalid