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.