Within the specification the following derived data types are defined:

Table 1 – Supported derived data types

Derived data types:

Where used

Supported

Which structure

UAUserIdentityToken

UASessionConnectInfo

UASessionConnectInfo

UA_Connect

UANodeID

UANodeInformation

UABrowseDescription

UAReferenceDescription

UAExpandedNodeID

UA_TranslatePathList

UA_NodeGetHandleList

UA_NodeGetInformation

UA_MethodGetHandleList

UA_EventItemAdd

UAQualifiedName

UARelativePathElementUANodeInformation

UARelativePathElement

UARelativePath

UARelativePath

UABrowserPathUA_EventItemAdd

UABrowsePath

UABrowsePathUA_TranslatePathList

UAMonitoringParameter

UA_MonitoredItemAddList

UA_MonitoredItemOperateList

UALocalizedText

UANodeInformation

UAReferenceDescription

UANodeInfo (deprecated)

UANodeInformation

UA_NodeGetInformation

UAIndexRange

UANodeAdditionalInfo

UANodeAdditionalInfo

UA_MonitoredItemAddList

UA_ReadList

UA_WriteList

UAViewDescription

UA_Browse

UABrowseDescription

UA_Browse

UAReferenceDescription

UA_Browse

UAExpandedNodeID

UAReferenceDescription

UAHADataValue

UA_HistoryUpdate

UAMonitoredVariables

UA_MonitoredItemAddList

UASecurityMsgMode

UASessionConnectInfo

UASecurityPolicy

UASessionConnectInfo

UATransportProfile

UASessionConnectInfo

UAUserIdentityTokenType

UAUserIdentityToken

UAIdentifierType

UANodeID

UADeadbandType

UAMonitoringParameter

UAAttributeID

UANodeAdditionalInfo

UAConnectionStatus

UA_ConnectionGetStatus

UAServerState

UA_ConnectionGetStatus

UAHAUpdateStatusCode

UAHADataValue

UABrowseDirection

UABrowseDescription

UAMonitoringSyncMode

UA_MonitoredItemAddList

UANodeClassMask

UANodeInformation

UABrowseDescription

UAReferenceDescription

UABrowseResultMask

UAReferenceDescription

There are systems that only support a limited number of significant characters in the name. For this, rules for shorter names are provided here. These long names are still seen as compliant, although have to be mentioned in the certification document.

Note: The short names are preferred for users and implementers. They should use the short version whenever possible to become more interoperable in future.

Table 2 – List of rules to shorten names

UASecurityMsgMode_

UASMM_

UASecurityPolicy_

UASP_

UATransportProfile_

UATP_

UAUserIdentityTokenType_

UAUITT_

UAIdentifierType_

UAIT_

UADeadbandType_

UADT_

UAAttributeID_

UAAI_

UAConnectionStatus_

UACS_

UAServerState_

UASS_

UAHAUpdateStatusCode_

UAHAUSC_

UABrowseDirection_

UABD_

UAMonitoringSyncMode_

UAMSM_

UANodeClassMask_

UANCM_

UABrowseResultMask_

UABRM_

Note: For compatibility reasons please check the note at UAHAUpdateStatusCode_ and UAMonitoringSyncMode_.

Enumerations do not have values in IEC 61131-3 – but in third edition, a new feature called “Type with named value” has been introduced. The column “Value” in tables below address this new feature.

Anyhow a vendor should keep the long names, if possible, for existing programs to compile.

Value

Name

Description

0

UASMM_BestAvailable

Best available message security mode to the UA server. The client receives the available message security from the server and selects the best. This could also result in level “none security”.

1

UASMM_None

No security is applied.

2

UASMM_Sign

All messages are signed but not encrypted.

3

UASMM_SignEncrypt

All messages are signed and encrypted.

Value

Name

Description

0

UASP_BestAvailable

Provides the best available security connection to the UA server. The client receives the available policies from the server and selects the best. This can also result in level “none security”.

1

UASP_None

http://opcfoundation.org/UA/SecurityPolicy#None

2

UASP_Basic128Rsa15

http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15 – this is deprecated

3

UASP_Basic256

http://opcfoundation.org/UA/SecurityPolicy#Basic256 – this is deprecated

4

UASP_Basic256Sha256

http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256

5

UASP_Aes128-Sha256-RsaOaep

http://opcfoundation.org/UA/SecurityPolicy#Aes128_Sha256_RsaOaep

6

UASP_Aes256-Sha256-RsaPss

http://opcfoundation.org/UA/SecurityPolicy#Aes256_Sha256_RsaPss

7

UASP_EccNnistP256

http://opcfoundation.org/UA/SecurityPolicy#ECC_nistP256

8

UASP_EccNistP384

http://opcfoundation.org/UA/SecurityPolicy#ECC_nistP384

9

UASP_EccBrainpoolP256r1

http://opcfoundation.org/UA/SecurityPolicy#ECC_brainpoolP256r1

10

UASP_EccBrainpoolP384r1

http://opcfoundation.org/UA/SecurityPolicy#ECC_brainpoolP384r1

11

UASP_EccCurve25519

http://opcfoundation.org/UA/SecurityPolicy#ECC_curve25519

Value

Name

Description

1

UATP_UATcp

http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary

2

UATP_WSHttpBinary

http://opcfoundation.org/UA-Profile/Transport/https-uabinary

3

UATP_WSHttpXmlOrBinary

Profile does not exist and was introduced by mistake

4

UATP_WSHttpXml

http://opcfoundation.org/UA-Profile/Transport/https-uasoapxml-uabinary

5

UATP_HttpsUaJson

http://opcfoundation.org/UA-Profile/Transport/https-uajson

6

UATP_WssUaScUaBinary

http://opcfoundation.org/UA-Profile/Transport/wss-uasc-uabinary

7

UATP_WssUaJson

http://opcfoundation.org/UA-Profile/Transport/wss-uajson

Value

Name

Description

0

UAUITT_Anonymous

http://opcfoundation.org/UA-Profile/Security/UserToken/Anonymous

1

UAUITT_Username

http://opcfoundation.org/UA-Profile/Security/UserToken/Client/UserNamePassword

2

UAUITT_x509

http://opcfoundation.org/UA-Profile/Security/UserToken/Client/X509Certificate

3

UAUITT_IssuedToken

http://opcfoundation.org/UA-Profile/Security/UserToken/Client/IssuedToken

4

UAUITT_IssuedTokenWindows

http://opcfoundation.org/UA-Profile/Security/UserToken/Client/IssuedTokenWindows

5

UAUITT_JsonWebToken

http://opcfoundation.org/UA-Profile/Security/UserToken/Client/JsonWebToken

Note: The values changed from V1.0 to V1.1

Value

Name

Description

0

UAIT_Numeric

see OPC 10000-3 or OPC 10000-6

1

UAIT_String

see OPC 10000-3 or OPC 10000-6

2

UAIT_GUID

see OPC 10000-3 or OPC 10000-6

3

UAIT_Opaque

see OPC 10000-3 or OPC 10000-6

Value

Name

Description

0

UADT_None

No Deadband calculation should be applied

1

UADT_Absolute

AbsoluteDeadband (see OPC 10000-4)

2

UADT_Percent

PercentDeadband (see OPC 10000-4)

Value

Name

Description

1

UAAI_NodeID

The canonical identifier for the node.

2

UAAI_NodeClass

The class of the node.

3

UAAI_BrowseName

A non-localized, human readable name for the node.

4

UAAI_DisplayName

A localized, human readable name for the node.

5

UAAI_Description

A localized description for the node.

6

UAAI_WriteMask

Indicates which attributes are writable.

7

UAAI_UserWriteMask

Indicates which attributes are writable by the current user.

8

UAAI_IsAbstract

Indicates that a type node may not be instantiated.

9

UAAI_Symmetric

Indicates that forward and inverse references have the same meaning.

10

UAAI_InverseName

The browse name for an inverse reference.

11

UAAI_ContainsNoLoops

Indicates that following forward references within a view will not cause a loop.

12

UAAI_EventNotifier

Indicates that the node can be used to subscribe to events.

13

UAAI_Value

The value of a variable.

14

UAAI_DataType

The node id of the data type for the variable value.

15

UAAI_ValueRank

The number of dimensions in the value.

16

UAAI_ArrayDimensions

The length for each dimension of an array value.

17

UAAI_AccessLevel

How a variable may be accessed.

18

UAAI_UserAccessLevel

How a variable may be accessed after taking the user's access rights into account.

19

UAAI_MinimumSamplingInterval

Specifies (in milliseconds) how fast the server can reasonably sample the value for changes.

20

UAAI_Historizing

Specifies whether the server is actively collecting historical data for the variable.

21

UAAI_Executable

Whether the method can be called.

22

UAAI_UserExecutable

Whether the method can be called by the current user.

23

UAAI_DataTypeDefinition

The DataTypeDefinition Attribute is used to provide the meta data and encoding information for custom DataTypes.

24

UAAI_RolePermission

Permissions that apply to a Node for all Roles which have access to the Node.

25

UAAI_UserRolePermissions

Permissions that apply to a Node for all Roles granted to current Session.

26

UAAI_AccessRestriction

AccessRestrictions that apply to a Node.

27

UAAI_AccessLevelEx

The AccessLevelEx Attribute is used to indicate how the Value of a Variable can be accessed (read/write), if it contains current and/or historic data and its atomicity.

28-32

Reserved for future use from OPC Foundation

Value

Name

Description

0

UACS_Connected

UA client is connected to UA server.

1

UACS_ConnectionError

The connection from UA client to UA server has an error.

2

UACS_Shutdown

The UA client has been disconnected from the UA server.

Value

Name

Description

0

UASS_Running

The server is running normally. This is the usual state for a server.

1

UASS_Failed

A vendor-specific fatal error has occurred within the server. The server is no longer functioning. The recovery procedure from this situation is vendor-specific. Most Service requests should be expected to fail.

2

UASS_NoConfiguration

The server is running but has no configuration information loaded and therefore does not transfer data.

3

UASS_Suspended

The server has been temporarily suspended by some vendor-specific method and is not receiving or sending data.

4

UASS_Shutdown

The server has shut down or is in the process of shutting down. Depending on the implementation, this might or might not be visible to clients.

5

UASS_Test

The server is in Test Mode. The outputs are disconnected from the real hardware, but the server will otherwise behave normally. Inputs may be real or may be simulated depending on the vendor implementation. StatusCode will generally be returned normally.

6

UASS_CommunicationFault

The server is running properly, but is having difficulty accessing data from its data sources. This may be due to communication problems or some other problems preventing the underlying device, control system, etc. from returning valid data. It may be a complete failure, meaning that no data is available, or a partial failure, meaning that some data is still available. It is expected that items affected by the fault will individually return with a BAD FAILURE status code indication for the items.

7

UASS_Unknown

This state is used only to indicate that the OPC UA server does not know the state of underlying servers.

Note: The correct way to shorten would be UAHAUSC_, but for compatibility reasons we did not change

Value

Name

Description

0

UAHAUpdateStatusCode_HistorianRaw

A raw data value.

1

UAHAUpdateStatusCode_HistorianCalculated

A data value which was calculated.

2

UAHAUpdateStatusCode_HistorianInterpolated

A data value which was interpolated.

3

UAHAUpdateStatusCode_Reserved

Undefined.

4

UAHAUpdateStatusCode_HistorianPartial

A data value which was calculated with an incomplete interval.

8

UAHAUpdateStatusCode_HistorianExtraData

A raw data value that hides other data at the same timestamp.

16

UAHAUpdateStatusCode_HistorianMultiValue

Multiple values match the Aggregate criteria (i.e. multiple minimum values at different timestamps within the same interval).

Filter the References according to their direction.

Value

Name

Description

0

UABD_Forward

Select only forward References.

1

UABD_Inverse

Select only inverse References.

2

UABD_Both

Select forward and inverse References.

Note: The correct way to shorten would be UAMSM_, but for compatibility reasons we did not change.

Value

Name

Description

0

UAMS_Unknown

Unknown SyncMode – the default and invalid setting

1

UAMS_ControllerSync

SyncMode is ControllerSync – see chapter 4.2 Monitored Items

2

UAMS_FwSync

SyncMode is FwSync (FirmwareSync) – see chapter 4.2 Monitored Items

Value

Name

Description

0

UANCM_None

No node class (unspecified).

1

UANCM_Object

See OPC 10000-3

2

UANCM_Variable

See OPC 10000-3

4

UANCM_Method

See OPC 10000-3

8

UANCM_ObjectType

See OPC 10000-3

16

UANCM_VariableType

See OPC 10000-3

32

UANCM_ReferenceType

See OPC 10000-3

64

UANCM_DataType

See OPC 10000-3

128

UANCM_View

See OPC 10000-3

255

UANCM_All

All node classes combined.

Value

Name

Description

0

UABRM_None

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

1

UABRM_ReferenceType

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

2

UABRM_IsForward

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

3

UABRM_ReferenceTypeInfo

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

4

UABRM_NodeClass

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

8

UABRM_BrowseName

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

16

UABRM_DisplayName

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

32

UABRM_TypeDefinition

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

60

UABRM_TargetInfo

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

63

UABRM_All

See https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

UAUserIdentityToken

DataType

Description

UserIdentityTokenType

UAUserIdentityTokenType

Defines the identity Token to authenticate a user during the creation of a Session.

See UAUserIdentityTokenType

TokenParam1

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. In case of TokenType “Anonymous” the Param1 will not be evaluated.

In case of TokenType “Username” the Param1 contains the user name.

In case of TokenType “x509” the Param1 contains the location of the certificate store.

TokenParam2

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. In case of TokenType “Anonymous” the Param2 will not be evaluated.

In case of TokenType “Username” the Param2 contains the user password.

In case of TokenType “x509” the Param2 contains the certificate name.

UASessionConnectInfo

DataType

Description

SessionName

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Defines the name of the session assigned by the client. The name is shown in the diagnostics information of the server. In case of empty string the server will generate a session name.

ApplicationName

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Defines the readable name of the OPC UA client application. The string can be empty.

SecurityMsgMode

UASecurityMsgMode

See UASecurityMsgMode.

SecurityPolicy

UASecurityPolicy

See UASecurityPolicy.

CertificateStore

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Defines the location of the certificate store used for the application certificates and trust lists. The structure of the certificate store is vendor specific. In case of empty string the default certificate store is used.

ClientCertificateName

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Defines the name of the client certificate and private key in the certificate store. In case of empty string the default client application certificate is used.

Implementation note: The ApplicationURI will be extracted from the certificate.

ServerUri

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Defines the URI of the server.

CheckServerCertificate

BOOL

Flag indicating if the server certificate should be checked with the trust list of the client application.

TransportProfile

UATransportProfile

See UATransportProfile

UserIdentityToken

UAUserIdentityToken

See UAUserIdentityToken

VendorSpecificParameter

Vendor specific

Vendor may define specific parameters, e.g. in case multiple clients are available, client instance can be defined with this parameter. The VendorSpecificParameter can be empty.

SessionTimeout

TIME

Defines how long the session will survive when there is no connection.

MonitorConnection

TIME

Defines the interval time to check the connection.

The connection monitoring has to be done by the client vendor implementation and is defined in OPC 10000-4

LocaleIDs

ARRAY [1..5] OF STRING[6]

OPC 10000-3:

<language>[-<country/region>] where <language> is a two letter ISO 639-1:2002 code for language, <country /region> is the three letter ISO 3166 code for the country/region.

Sample: en-US, zh-CHS

UANodeID

DataType

Description

NamespaceIndex

UINT

Identifier

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. In case of IdentifierType GUID the format is like 00000316-0000-0000-C000-000001000046

In case of IdentifierType Opaque string has to be base 64 encoded byte string.

IdentifierType

UAIdentifierType

See UAIdentifierType

UAQualifiedName

DataType

Description

NamespaceIndex

UINT

The namespace index to which name is associated.

Name

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Name of the qualified name.

UARelativePathElement

DataType

Description

ReferenceTypeId

UANodeID

See UANodeID. If the ReferenceTypeId is a NULL-UANodeID the reference type is 33 (HierarchicalReferences)

IsInverse

BOOL

If TRUE, the inverse references will be evaluated. Default is FALSE.

IncludeSubtypes

BOOL

If TRUE also subtypes from ReferenceTypeId will be evaluated. Default is TRUE.

TargetName

UAQualifiedName

See UAQualifiedName

UARelativePath

DataType

Description

NoOfElements

UINT

Number of Elements.

Elements

ARRAY OFUARelativePathElement

See UARelativePathElement. One relative path element. Length of the array is vendor specific MAX_ELEMENTS_RELATIVEPATH

See Constants of Array Lengths

UABrowsePath

DataType

Description

StartingNode

UANodeID

See UANodeID. Starting NodeId from where the relative path will be evaluated.

RelativePath

UARelativePath

See UARelativePath. The relative path which will be evaluated.

UAMonitoringParameter

DataType

Description

SamplingInterval

TIME

The rate in milliseconds the server checks the underlying data source for changes.

QueueSize

UINT

The queue size for the monitoring item.See also 4.2 Monitored Items

DiscardOldest

BOOL

Determine the discard policy in case of queue overflow:TRUE: Discard the oldest in the sample queue FALSE: Discard the newest in the sample queue

DeadbandType

UADeadbandType

See

UADeadbandType. This parameter indicates if a deadband is applied and if applied, which type of Deadband.

Deadband

REAL

e.g. percent 0.1%.

UALocalizedText

DataType

Description

Locale

STRING[6]

OPC 10000-3:

<language>[-<country/region>] where <language> is a two letter ISO639 code for language, <country /region> is the three letter ISO3166 code for the country/region.

Sample: en-US, zh-CHS.

Text

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Contains localized text as string.

This UANodeInfo is the first version of declaration – to ease the handling of BrowseName the usage of the second version UANodeInformation is recommended. This also affects

UANodeInformation.

UANodeInfo

DataType

Description

AccessLevel

BYTE

A bit mask indicating whether the current value of the Value Attribute is readable and writable as well as whether the history of the value is readable and changeable.

Bit

Value

AccessLevel

0x0

None

0

0x1

CurrentRead

1

0x2

CurrentWrite

2

0x4

HistoryRead

3

0x8

HistoryWrite

4

5

6

7

ArrayDimension

ARRAY OFUDINT

The length for each dimension of an array value.

Length is vendor-specific (MAX_ELEMENTS_ARRAYDIMENSION). See Constants of Array Lengths

BrowseName

STRING

The BrowseName is composed of a namespace index and a name. The String representation is of the format [ns:] BrowseName. The browse name may be prefixed by its namespace index. If the namespace prefix is omitted then namespace index 0 is used.

ContainsNoLoops

BOOL

Indicates that following forward references within a view will not cause a loop.

DataType

UANodeID

See UANodeID. The node id of the data type for the variable value.

Description

UALocalizedText

A localized description for the node.

DisplayName

UALocalizedText

A localized human readable name for the node.

EventNotifier

BYTE

This Attribute represents a bit mask that identifies whether the Object can be used to subscribe to Events and whether the history of Events is accessible and changeable.

Bit

Value

EventNotifier

0x0

The Object does not produce events and has no event history. (SubscribeToEvents)

0

0x1

The Object produces event notifications.

1

0x2

Reserved. Must always be zero

2

0x4

The Object has an event history which may be read. (HistoryRead)

3

0x8

The Object has an event history which may be updated (HistoryWrite)

4

5

6

7

Executable

BOOL

Whether the method can be called.

Historizing

BOOL

Specifies whether the server is actively collecting historical data for the variable.

InverseName

STRING

The browse name for an inverse reference.

IsAbstract

BOOL

Indicates that a type node may not be instantiated.

MinimumSamplingInterval

TIME

Specifies (in ms) how fast the server can reasonably sample the value for changes.

NodeClass

UANodeClassMask

See UANodeClassMask. The base type of the node.

An enumeration identifying the NodeClass of a Node such as Object, Variable or Method.

NodeID

UANodeID

See UANodeID. The server unique identifier for the node.

Symmetric

BOOL

Indicates that forward and inverse references have the same meaning.

UserAccessLevel

BYTE

Contains the same information as the AccessLevel but takes user access rights into account.

Bit

Value

AccessLevel

0x0

None

0

0x1

CurrentRead

1

0x2

CurrentWrite

2

0x4

HistoryRead

3

0x8

HistoryWrite

4

5

6

7

UserExecutable

BOOL

Whether the method can be called by the current user.

UserWriteMask

UDINT

Indicates which attributes are writable by the current user.

ValueRank

DINT

The number of dimensions in the value.

WriteMask

UDINT

Indicates which attributes are writable.

Note: Additional added Attributes from OPC UA (like DataTypeDefinition, RolePermissions, etc.) will not be reflected in UANodeInformation. Instead use UA_ReadList for this Attributes. The same is valid for the Attribute “Inverse Name (10)” when it needs to be a WSTRING instead of STRING.

UANodeInformation

DataType

Description

AccessLevel (17)

BYTE

A bit mask indicating whether the current value of the Value Attribute is readable and writable as well as whether the history of the value is readable and changeable.

Bit

Value

AccessLevel

0x00

None

0

0x01

CurrentRead

1

0x02

CurrentWrite

2

0x04

HistoryRead

3

0x08

HistoryWrite

4

0x10

SemanticChange

5

0x20

StatusWrite

6

0x40

TimestampWrite

7

ArrayDimension (16)

ARRAY OFUDINT

The length for each dimension of an array value.

Length is vendor-specific (MAX_ELEMENTS_ARRAYDIMENSION). See Constants of Array Lengths

BrowseName (3)

UAQualifiedName

See UAQualifiedName.

ContainsNoLoops (11)

BOOL

Indicates that following forward references within a view will not cause a loop.

DataType (14)

UANodeID

See UANodeID. The node id of the data type for the variable value.

Description (5)

UALocalizedText

A localized description for the node.

DisplayName (4)

UALocalizedText

A localized human readable name for the node.

EventNotifier (12)

BYTE

This Attribute represents a bit mask that identifies whether the Object can be used to subscribe to Events and whether the history of Events is accessible and changeable.

Bit

Value

EventNotifier

0x00

The Object does not produce events and has no event history. (SubscribeToEvents)

0

0x01

The Object produces event notifications.

1

0x02

Reserved. Must always be zero

2

0x04

The Object has an event history which may be read. (HistoryRead)

3

0x08

The Object has an event history which may be updated (HistoryWrite)

4

5

6

7

Executable (21)

BOOL

Whether the method can be called.

Historizing (20)

BOOL

Specifies whether the server is actively collecting historical data for the variable.

InverseName (10)

STRING

The browse name for an inverse reference.

IsAbstract (8)

BOOL

Indicates that a type node may not be instantiated.

MinimumSamplingInterval (19)

TIME

Specifies (in ms) how fast the server can reasonably sample the value for changes.

NodeClass (2)

UANodeClassMask

See UANodeClassMask. The base type of the node.

An enumeration identifying the NodeClass of a Node such as Object, Variable or Method.

Symmetric (9)

BOOL

Indicates that forward and inverse references have the same meaning.

UserAccessLevel (18)

BYTE

Contains the same information as the AccessLevel but takes user access rights into account.

Bit

Value

AccessLevel

0x00

None

0

0x01

CurrentRead

1

0x02

CurrentWrite

2

0x04

HistoryRead

3

0x08

HistoryWrite

4

0x10

SemanticChange

5

0x20

StatusWrite

6

0x40

TimestampWrite

7

UserExecutable (22)

BOOL

Whether the method can be called by the current user.

UserWriteMask (7)

UDINT

Indicates which attributes are writable by the current user.

ValueRank (15)

DINT

The number of dimensions in the value.

WriteMask (6)

UDINT

Indicates which attributes are writable.

UAIndexRange

DataType

Description

StartIndex

UINT

Start index.

EndIndex

UINT

End index.

Note: IndexRange can be defined as follows: For each Dimension:

  1. Start and EndIndex are to be assigned.
  2. StartIndex must be smaller than EndIndex.
  3. To access all the elements in a Dimension it’s a must to assign StartIndex and EndIndex depending on the number of total Elements in the Dimension.
  4. A single element in a Dimension can be selected by specifying the same StartIndex and EndIndex.

UANodeAdditionalInfo

DataType

Description

AttributeID

UAAttributeID

Selects the attribute to be accessed. The default AttributeID is UAAI_Value (13).

See

UAAttributeID

IndexRangeCount

UINT

Count of valid IndexRange specified. Vendorspecific.

IndexRange

ARRAY OFUAIndexRange

See UAIndexRange

Length is vendor-specific (MAX_ELEMENTS_INDEXRANGE See Constants of Array Lengths

UAViewDescription

DataType

Description

ViewID

UANodeID

Node ID of the view to limit the browse. Empty for browsing the entire Address Space

See UANodeID

TimeStamp

Vendor specific

If ‘0’ - any ViewID which matches should be used. Shall be DT or LDT. The recommendation for new implementation is to use LDT

Version

UDINT

If ‘0’ - any ViewID which matches should be used.

UABrowseDescription

DataType

Description

StartingNodeID

UANodeID

Node ID of the starting node to browse.

See UANodeID

Direction

UABrowseDirection

Browse direction forward, inverse, both.

See UABrowseDirection

ReferenceTypeID

UANodeID

Node ID of the Reference Type the server should follow.

See UANodeID

Default value: HierachicalReferences

IncludeSubtypes

BOOL

Indicates if also subtypes of the Reference Type should be retuned

Default: TRUE

NodeClass

UANodeClassMask

Filter on the Node Class of the retuned Nodes

See UANodeClassMask

ResultMask

UABrowseResultMask

Selects which fields of the UAReferenceDescription are requested from the server.

See UABrowseResultMask

UAReferenceDescription

DataType

Description

ReferenceTypeID

UANodeID

Node ID of the ReferenceType followed from the starting Node to the target Node. See UANodeID

IsForward

BOOL

Set if followed a forward Reference

NodeID

UAExpandedNodeID

Node ID of the target Node. This could also be a Node in another server. See UAExpandedNodeID

BrowseName

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. The qualified name of the target Node.

DisplayName

UALocalizedText

The localized name of the target Node. See UALocalizedText

NodeClass

UANodeClassMask

Node Class of the target Node. See UANodeClassMask

TypeDefinition

UAExpandedNodeID

Node ID of the Object or Variable type of the target Node. See UAExpandedNodeID

UAExpandedNodeID

DataType

Description

ServerIndex

UDINT

The ServerIndex formatted as a base 10 number.

NamespaceURI

Vendor specific

Shall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. The NamespaceUri formatted as a string. Any reserved characters in the URI shall be replaced with a ‘%’ followed by its 8 bit ANSI value encoded as two hexadecimal digits (case insensitive). For example, the character ‘;’ would be replaced by ‘%3B’.

The reserved characters are ‘;’ and ‘%’.

ID

UANodeID

An identifier for a node in the address space of an OPC UA Server.

See UANodeID

UAHADataValue

DataType

Description

Value

Vendor specific

Vendor specific

StatusCode

UAHAUpdateStatusCode

See UAHAUpdateStatusCode

ServerTimeStamp

Vendor specific

Shall be DT or LDT. The recommendation for new implementation is to use LDT

SourceTimeStamp

Vendor specific

Shall be DT or LDT. The recommendation for new implementation is to use LDT

UAMonitoredVariables

DataType

Description

Values

ARRAY OFVendor specific

Vendor specific.

Array shall have the minimum length as UAMonitoringParameter QueueSize

TimeStamps

ARRAY OFVendor specific

Shall be DT or LDT. The recommendation for new implementation is to use LDT. It is expected, that the SourceTimeStamp from the server is returned.

Optional – If exists it shall have the same length as the Values array.

NodeQualityIDs

ARRAY OFDWORD

Contains an error code for each element of the Values array.

Optional – If exists it shall have the same length as the Values array.

In case of “Overflow” Bit ‘7’ will be set if queue size is greater than 1. If this bit is set, not every detected change has been returned since the Server’s queue buffer for the MonitoredItem reached its limit and had to purge out data and the MinLostValueCount from UA_MonitoredItemAddList will be incremented by one (1).

NewValuesCount

UINT

Count of Values (Vendorspecific) which were updated starting from the lowest element of the Values.

There are some data types used which are vendor-specific. Please check the specification of the vendor for the concrete implementation. The following table lists these data types and their usage:

Vendor Specific Data Type

Usage at

Variable Identification

Parameter ‘Variable’ of Function Block ‘UA_MonitoredItemAdd’

Parameter ‘Variables’ of Function Block ‘UA_MonitoredItemAddList’

Parameter ‘Variable’ of Function Block ‘UA_Read’

Parameter ‘Variables’ of Function Block ‘UA_ReadList’

Parameter ‘Variable’ of Function Block ‘UA_Write’

Parameter ‘Variables’ of Function Block ‘UA_WriteList’

Method Arguments

Parameter ‘InputArguments’ of Function Block ‘UA_MethodCall’

Parameter ‘OutputArguments’ of Function Block ‘UA_MethodCall’

Event Field Data

Parameter ‘EventFields’ of Function Block ‘UA_EventItemAdd’

UAHADataValue

Value

Additionally, the lengths of some arrays have to be defined by the vendors. These are explained in the following chapter.

The described function blocks make use of arrays. The length of these arrays is – if not formally limited by the function block – vendor-specific and could be made changeable for resource optimization.

This is a list of arrays and as a naming convention their length-constants. Every group of arrays should have the same length for ease of use.All arrays should be defined as [1..CONSTANT-LENGTH], so for instance as ARRAY [1.. MAX_ELEMENTS_NODELIST] OF <<DATATYPE>>

CONSTANT-LENGTH

Description

MAX_ELEMENTS_ARRAYDIMENSION

Used at UANodeInformation.

Limits the maximum dimensions of a node, which could be used.

MAX_ELEMENTS_INDEXRANGE

Used at UANodeAdditionalInfo.

Limits the maximum defined.Could be equal to MAX_ELEMENTS_ARRAYDIMENSION as a general dimension limit.

MAX_ELEMENTS_NODELIST

Limits the number of nodes, which could be used by the List function blocks

MAX_ELEMENTS_MONITORLIST

Limits the number of monitored items, which could be used by the monitored items blocks for each connection.

MAX_ELEMENTS_BROWSERESULT

Limits the number of browse results, which could be used by the Browse block

MAX_ELEMENTS_HISTORYDATA

Limits the number of browse results, which could be used by the HistoryUpdate block and HistoryRead blocks.

MAX_ELEMENTS_EVENTITEMOPERATE

Limits the number of event items, which could be used by the event items operate block

MAX_ELEMENTS_REGISTER

Limits the number of NodeIDs which can be registered for each connection.

MAX_ELEMENTS_RELATIVEPATH

Limits the number of relative path elements in a relative path.

MAX_ELEMENTS_NAMESPACES

Limits the number of namespaces (either Uris or Indexes)

MAX_ELEMENTS_METHOD

Limits the number of methods

MAX_EVENT_FIELD_SELECTIONS

Limit the number of selections

MAX_ELEMENTS_EVENTITEMLIST

Limit the number of event items