5 Types, DataTypes, Constants and Behaviour

5.1 Derived data types used in this specification

Within the specification the following derived data types are defined:

Table 1 – Supported derived data types
Derived data types:Where usedSupportedWhich structure
UAUserIdentityToken UASessionConnectInfo
UASessionConnectInfo UA_Connect
UANodeID

UANodeInformation

UABrowseDescription

UAReferenceDescription

UAExpandedNodeID

UA_TranslatePathList

UA_NodeGetHandleList

UA_NodeGetInformation

UA_MethodGetHandleList

UA_EventItemAdd

UAQualifiedName UARelativePathElement
UANodeInformation
UARelativePathElement UARelativePath
UARelativePath UABrowserPath
UA_EventItemAdd
UABrowsePath UABrowsePath
UA_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

5.2 Length of names and ways to shorten them

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_

5.3 Enumerated Data Types

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.

5.3.1 UASecurityMsgMode

ValueNameDescription
0UASMM_BestAvailableBest 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”.
1UASMM_NoneNo security is applied.
2UASMM_SignAll messages are signed but not encrypted.
3UASMM_SignEncryptAll messages are signed and encrypted.

5.3.2 UASecurityPolicy

ValueNameDescription
0UASP_BestAvailableProvides 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”.
1UASP_Nonehttp://opcfoundation.org/UA/SecurityPolicy#None
2UASP_Basic128Rsa15 http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15 – this is deprecated
3UASP_Basic256 http://opcfoundation.org/UA/SecurityPolicy#Basic256 – this is deprecated
4UASP_Basic256Sha256 http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256
5UASP_Aes128-Sha256-RsaOaep http://opcfoundation.org/UA/SecurityPolicy#Aes128_Sha256_RsaOaep
6UASP_Aes256-Sha256-RsaPss http://opcfoundation.org/UA/SecurityPolicy#Aes256_Sha256_RsaPss
7UASP_EccNnistP256 http://opcfoundation.org/UA/SecurityPolicy#ECC_nistP256
8UASP_EccNistP384 http://opcfoundation.org/UA/SecurityPolicy#ECC_nistP384
9UASP_EccBrainpoolP256r1 http://opcfoundation.org/UA/SecurityPolicy#ECC_brainpoolP256r1
10UASP_EccBrainpoolP384r1 http://opcfoundation.org/UA/SecurityPolicy#ECC_brainpoolP384r1
11UASP_EccCurve25519http://opcfoundation.org/UA/SecurityPolicy#ECC_curve25519

5.3.3 UATransportProfile

ValueNameDescription
1UATP_UATcphttp://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary
2UATP_WSHttpBinaryhttp://opcfoundation.org/UA-Profile/Transport/https-uabinary
3UATP_WSHttpXmlOrBinaryProfile does not exist and was introduced by mistake
4UATP_WSHttpXml http://opcfoundation.org/UA-Profile/Transport/https-uasoapxml-uabinary
5UATP_HttpsUaJson http://opcfoundation.org/UA-Profile/Transport/https-uajson
6UATP_WssUaScUaBinary http://opcfoundation.org/UA-Profile/Transport/wss-uasc-uabinary
7UATP_WssUaJsonhttp://opcfoundation.org/UA-Profile/Transport/wss-uajson

5.3.4 UAUserIdentityTokenType

ValueNameDescription
0UAUITT_Anonymoushttp://opcfoundation.org/UA-Profile/Security/UserToken/Anonymous
1UAUITT_Usernamehttp://opcfoundation.org/UA-Profile/Security/UserToken/Client/UserNamePassword
2UAUITT_x509http://opcfoundation.org/UA-Profile/Security/UserToken/Client/X509Certificate
3UAUITT_IssuedToken http://opcfoundation.org/UA-Profile/Security/UserToken/Client/IssuedToken
4UAUITT_IssuedTokenWindows http://opcfoundation.org/UA-Profile/Security/UserToken/Client/IssuedTokenWindows
5UAUITT_JsonWebTokenhttp://opcfoundation.org/UA-Profile/Security/UserToken/Client/JsonWebToken

5.3.5 UAIdentifierType

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

ValueNameDescription
0UAIT_Numericsee OPC 10000-3 or OPC 10000-6
1UAIT_Stringsee OPC 10000-3 or OPC 10000-6
2UAIT_GUIDsee OPC 10000-3 or OPC 10000-6
3UAIT_Opaquesee OPC 10000-3 or OPC 10000-6

5.3.6 UADeadbandType

ValueNameDescription
0UADT_NoneNo Deadband calculation should be applied
1UADT_AbsoluteAbsoluteDeadband (see OPC 10000-4)
2UADT_PercentPercentDeadband (see OPC 10000-4)

5.3.7 UAAttributeID

ValueNameDescription
1UAAI_NodeIDThe canonical identifier for the node.
2UAAI_NodeClassThe class of the node.
3UAAI_BrowseNameA non-localized, human readable name for the node.
4UAAI_DisplayNameA localized, human readable name for the node.
5UAAI_DescriptionA localized description for the node.
6UAAI_WriteMaskIndicates which attributes are writable.
7UAAI_UserWriteMaskIndicates which attributes are writable by the current user.
8UAAI_IsAbstractIndicates that a type node may not be instantiated.
9UAAI_SymmetricIndicates that forward and inverse references have the same meaning.
10UAAI_InverseNameThe browse name for an inverse reference.
11UAAI_ContainsNoLoopsIndicates that following forward references within a view will not cause a loop.
12UAAI_EventNotifierIndicates that the node can be used to subscribe to events.
13UAAI_ValueThe value of a variable.
14UAAI_DataTypeThe node id of the data type for the variable value.
15UAAI_ValueRankThe number of dimensions in the value.
16UAAI_ArrayDimensionsThe length for each dimension of an array value.
17UAAI_AccessLevelHow a variable may be accessed.
18UAAI_UserAccessLevelHow a variable may be accessed after taking the user's access rights into account.
19UAAI_MinimumSamplingIntervalSpecifies (in milliseconds) how fast the server can reasonably sample the value for changes.
20UAAI_HistorizingSpecifies whether the server is actively collecting historical data for the variable.
21UAAI_ExecutableWhether the method can be called.
22UAAI_UserExecutableWhether the method can be called by the current user.
23UAAI_DataTypeDefinitionThe DataTypeDefinition Attribute is used to provide the meta data and encoding information for custom DataTypes.
24UAAI_RolePermissionPermissions that apply to a Node for all Roles which have access to the Node.
25UAAI_UserRolePermissionsPermissions that apply to a Node for all Roles granted to current Session.
26UAAI_AccessRestrictionAccessRestrictions that apply to a Node.
27UAAI_AccessLevelExThe 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-32Reserved for future use from OPC Foundation

5.3.8 UAConnectionStatus

ValueNameDescription
0UACS_ConnectedUA client is connected to UA server.
1UACS_ConnectionErrorThe connection from UA client to UA server has an error.
2UACS_ShutdownThe UA client has been disconnected from the UA server.

5.3.9 UAServerState

ValueNameDescription
0UASS_RunningThe server is running normally. This is the usual state for a server.
1UASS_FailedA 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.
2UASS_NoConfigurationThe server is running but has no configuration information loaded and therefore does not transfer data.
3UASS_SuspendedThe server has been temporarily suspended by some vendor-specific method and is not receiving or sending data.
4UASS_ShutdownThe 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.
5UASS_TestThe 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.
6UASS_CommunicationFaultThe 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.
7UASS_UnknownThis state is used only to indicate that the OPC UA server does not know the state of underlying servers.

5.3.10 UAHAUpdateStatusCode

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

ValueNameDescription
0UAHAUpdateStatusCode_HistorianRawA raw data value.
1UAHAUpdateStatusCode_HistorianCalculatedA data value which was calculated.
2UAHAUpdateStatusCode_HistorianInterpolatedA data value which was interpolated.
3UAHAUpdateStatusCode_ReservedUndefined.
4UAHAUpdateStatusCode_HistorianPartialA data value which was calculated with an incomplete interval.
8UAHAUpdateStatusCode_HistorianExtraDataA raw data value that hides other data at the same timestamp.
16UAHAUpdateStatusCode_HistorianMultiValueMultiple values match the Aggregate criteria (i.e. multiple minimum values at different timestamps within the same interval).

5.3.11 UABrowseDirection

Filter the References according to their direction.

ValueNameDescription
0UABD_ForwardSelect only forward References.
1UABD_InverseSelect only inverse References.
2UABD_BothSelect forward and inverse References.

5.3.12 UAMonitoringSyncMode

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

ValueNameDescription
0UAMS_UnknownUnknown SyncMode – the default and invalid setting
1UAMS_ControllerSyncSyncMode is ControllerSync – see chapter 4.2 Monitored Items
2UAMS_FwSyncSyncMode is FwSync (FirmwareSync) – see chapter 4.2 Monitored Items

5.4 Data Types for Bitmask

5.4.1 UANodeClassMask

ValueNameDescription
0UANCM_NoneNo node class (unspecified).
1UANCM_ObjectSee OPC 10000-3
2UANCM_VariableSee OPC 10000-3
4UANCM_MethodSee OPC 10000-3
8UANCM_ObjectTypeSee OPC 10000-3
16UANCM_VariableTypeSee OPC 10000-3
32UANCM_ReferenceTypeSee OPC 10000-3
64UANCM_DataTypeSee OPC 10000-3
128UANCM_ViewSee OPC 10000-3
255UANCM_AllAll node classes combined.

5.4.2 UABrowseResultMask

ValueNameDescription
0UABRM_NoneSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
1UABRM_ReferenceTypeSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
2UABRM_IsForwardSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
3UABRM_ReferenceTypeInfoSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
4UABRM_NodeClassSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
8UABRM_BrowseNameSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
16UABRM_DisplayNameSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
32UABRM_TypeDefinitionSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
60UABRM_TargetInfoSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/
63UABRM_AllSee https://reference.opcfoundation.org/v104/Core/DataTypes/BrowseResultMask/

5.5 Structured Data Types

5.5.1 UAUserIdentityToken

UAUserIdentityTokenDataTypeDescription
UserIdentityTokenTypeUAUserIdentityTokenType

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

See UAUserIdentityTokenType

TokenParam1Vendor 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.

TokenParam2Vendor 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.

5.5.2 UASessionConnectInfo

UASessionConnectInfoDataTypeDescription
SessionNameVendor specificShall 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.
ApplicationNameVendor specificShall 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.
SecurityMsgModeUASecurityMsgModeSee UASecurityMsgMode.
SecurityPolicyUASecurityPolicySee UASecurityPolicy.
CertificateStoreVendor specificShall 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.
ClientCertificateNameVendor 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.

ServerUriVendor specificShall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Defines the URI of the server.
CheckServerCertificateBOOLFlag indicating if the server certificate should be checked with the trust list of the client application.
TransportProfileUATransportProfileSee UATransportProfile
UserIdentityTokenUAUserIdentityTokenSee UAUserIdentityToken
VendorSpecificParameterVendor specificVendor 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.
SessionTimeoutTIMEDefines how long the session will survive when there is no connection.
MonitorConnectionTIME

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

LocaleIDsARRAY [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

5.5.3 UANodeID

UANodeIDDataTypeDescription
NamespaceIndexUINT
IdentifierVendor 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.

IdentifierTypeUAIdentifierTypeSee UAIdentifierType

5.5.4 UAQualifiedName

UAQualifiedNameDataTypeDescription
NamespaceIndexUINTThe namespace index to which name is associated.
NameVendor specificShall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. Name of the qualified name.

5.5.5 UARelativePathElement

UARelativePathElementDataTypeDescription
ReferenceTypeIdUANodeIDSee UANodeID. If the ReferenceTypeId is a NULL-UANodeID the reference type is 33 (HierarchicalReferences)
IsInverseBOOLIf TRUE, the inverse references will be evaluated. Default is FALSE.
IncludeSubtypesBOOLIf TRUE also subtypes from ReferenceTypeId will be evaluated. Default is TRUE.
TargetNameUAQualifiedNameSee UAQualifiedName

5.5.6 UARelativePath

UARelativePathDataTypeDescription
NoOfElementsUINTNumber of Elements.
ElementsARRAY OF
UARelativePathElement

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

See Constants of Array Lengths

5.5.7 UABrowsePath

UABrowsePathDataTypeDescription
StartingNodeUANodeIDSee UANodeID. Starting NodeId from where the relative path will be evaluated.
RelativePathUARelativePathSee UARelativePath. The relative path which will be evaluated.

5.5.8 UAMonitoringParameter

UAMonitoringParameterDataTypeDescription
SamplingIntervalTIMEThe rate in milliseconds the server checks the underlying data source for changes.
QueueSizeUINTThe queue size for the monitoring item.
See also 4.2 Monitored Items
DiscardOldestBOOLDetermine the discard policy in case of queue overflow:
TRUE: Discard the oldest in the sample queue
FALSE: Discard the newest in the sample queue
DeadbandTypeUADeadbandType

See

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

DeadbandREALe.g. percent 0.1%.

5.5.9 UALocalizedText

UALocalizedTextDataTypeDescription
LocaleSTRING[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.

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

5.5.10 UANodeInfo (deprecated)

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.

UANodeInfoDataTypeDescription
AccessLevelBYTE

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.

ArrayDimensionARRAY OF
UDINT

The length for each dimension of an array value.

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

BrowseNameSTRINGThe 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.
ContainsNoLoopsBOOLIndicates that following forward references within a view will not cause a loop.
DataTypeUANodeIDSee UANodeID. The node id of the data type for the variable value.
DescriptionUALocalizedTextA localized description for the node.
DisplayNameUALocalizedTextA localized human readable name for the node.
EventNotifierBYTE

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.

ExecutableBOOLWhether the method can be called.
HistorizingBOOLSpecifies whether the server is actively collecting historical data for the variable.
InverseNameSTRINGThe browse name for an inverse reference.
IsAbstractBOOLIndicates that a type node may not be instantiated.
MinimumSamplingIntervalTIMESpecifies (in ms) how fast the server can reasonably sample the value for changes.
NodeClassUANodeClassMask

See UANodeClassMask. The base type of the node.

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

NodeIDUANodeIDSee UANodeID. The server unique identifier for the node.
SymmetricBOOLIndicates that forward and inverse references have the same meaning.
UserAccessLevelBYTE

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

UserExecutableBOOLWhether the method can be called by the current user.
UserWriteMaskUDINTIndicates which attributes are writable by the current user.
ValueRankDINTThe number of dimensions in the value.
WriteMaskUDINTIndicates which attributes are writable.

5.5.11 UANodeInformation

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.

UANodeInformationDataTypeDescription
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.

ArrayDimension (16)ARRAY OF
UDINT

The length for each dimension of an array value.

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

BrowseName (3)UAQualifiedNameSee UAQualifiedName.
ContainsNoLoops (11)BOOLIndicates that following forward references within a view will not cause a loop.
DataType (14)UANodeIDSee UANodeID. The node id of the data type for the variable value.
Description (5)UALocalizedTextA localized description for the node.
DisplayName (4)UALocalizedTextA 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.

Executable (21)BOOLWhether the method can be called.
Historizing (20)BOOLSpecifies whether the server is actively collecting historical data for the variable.
InverseName (10)STRINGThe browse name for an inverse reference.
IsAbstract (8)BOOLIndicates that a type node may not be instantiated.
MinimumSamplingInterval (19)TIMESpecifies (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)BOOLIndicates 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.

UserExecutable (22)BOOLWhether the method can be called by the current user.
UserWriteMask (7)UDINTIndicates which attributes are writable by the current user.
ValueRank (15)DINTThe number of dimensions in the value.
WriteMask (6)UDINTIndicates which attributes are writable.

5.5.12 UAIndexRange

UAIndexRangeDataTypeDescription
StartIndexUINTStart index.
EndIndexUINTEnd index.

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

Start and EndIndex are to be assigned.

StartIndex must be smaller than EndIndex.

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.

A single element in a Dimension can be selected by specifying the same StartIndex and EndIndex.

5.5.13 UANodeAdditionalInfo

UANodeAdditionalInfoDataTypeDescription
AttributeIDUAAttributeID

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

See

UAAttributeID

IndexRangeCountUINTCount of valid IndexRange specified. Vendorspecific.
IndexRangeARRAY OF
UAIndexRange

See UAIndexRange

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

5.5.14 UAViewDescription

UAViewDescriptionDataTypeDescription
ViewIDUANodeID

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

See UANodeID

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

5.5.15 UABrowseDescription

UABrowseDescriptionDataTypeDescription
StartingNodeIDUANodeID

Node ID of the starting node to browse.

See UANodeID

DirectionUABrowseDirection

Browse direction forward, inverse, both.

See UABrowseDirection

ReferenceTypeIDUANodeID

Node ID of the Reference Type the server should follow.

See UANodeID

Default value: HierachicalReferences

IncludeSubtypesBOOL

Indicates if also subtypes of the Reference Type should be retuned

Default: TRUE

NodeClassUANodeClassMask

Filter on the Node Class of the retuned Nodes

See UANodeClassMask

ResultMaskUABrowseResultMask

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

See UABrowseResultMask

5.5.16 UAReferenceDescription

UAReferenceDescriptionDataTypeDescription
ReferenceTypeIDUANodeIDNode ID of the ReferenceType followed from the starting Node to the target Node. See UANodeID
IsForwardBOOLSet if followed a forward Reference
NodeIDUAExpandedNodeIDNode ID of the target Node. This could also be a Node in another server. See UAExpandedNodeID
BrowseNameVendor specificShall be STRING or WSTRING. The recommendation for new implementation is to use WSTRING. The qualified name of the target Node.
DisplayNameUALocalizedTextThe localized name of the target Node. See UALocalizedText
NodeClassUANodeClassMaskNode Class of the target Node. See UANodeClassMask
TypeDefinitionUAExpandedNodeIDNode ID of the Object or Variable type of the target Node. See UAExpandedNodeID

5.5.17 UAExpandedNodeID

UAExpandedNodeIDDataTypeDescription
ServerIndexUDINTThe ServerIndex formatted as a base 10 number.
NamespaceURIVendor 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 ‘%’.

IDUANodeID

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

See UANodeID

5.5.18 UAHADataValue

UAHADataValueDataTypeDescription
ValueVendor specificVendor specific
StatusCodeUAHAUpdateStatusCodeSee UAHAUpdateStatusCode
ServerTimeStampVendor specificShall be DT or LDT. The recommendation for new implementation is to use LDT
SourceTimeStampVendor specificShall be DT or LDT. The recommendation for new implementation is to use LDT

5.5.19 UAMonitoredVariables

UAMonitoredVariablesDataTypeDescription
ValuesARRAY OF
Vendor specific

Vendor specific.

Array shall have the minimum length as UAMonitoringParameter QueueSize

TimeStampsARRAY OF
Vendor 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.

NodeQualityIDsARRAY OF
DWORD

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).

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

5.6 Vendor-specific DataTypes

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 TypeUsage 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 DataParameter ‘EventFields’ of Function Block ‘UA_EventItemAdd’
UAHADataValueValue

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

5.7 Constants of Array Lengths

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-LENGTHDescription
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_NODELISTLimits the number of nodes, which could be used by the List function blocks
MAX_ELEMENTS_MONITORLISTLimits the number of monitored items, which could be used by the monitored items blocks for each connection.
MAX_ELEMENTS_BROWSERESULTLimits the number of browse results, which could be used by the Browse block
MAX_ELEMENTS_HISTORYDATALimits the number of browse results, which could be used by the HistoryUpdate block and HistoryRead blocks.
MAX_ELEMENTS_EVENTITEMOPERATELimits the number of event items, which could be used by the event items operate block
MAX_ELEMENTS_REGISTERLimits the number of NodeIDs which can be registered for each connection.
MAX_ELEMENTS_RELATIVEPATHLimits the number of relative path elements in a relative path.
MAX_ELEMENTS_NAMESPACESLimits the number of namespaces (either Uris or Indexes)
MAX_ELEMENTS_METHODLimits the number of methods
MAX_EVENT_FIELD_SELECTIONSLimit the number of selections
MAX_ELEMENTS_EVENTITEMLISTLimit the number of event items