.NET Based OPC UA Client/Server SDK  3.0.10.493
OPC UA Node Classes

Description of OPC UA node classes.

Base Node Class

The base node class can not be used directly. It specifies the attributes available in all node classes.

The following attributes are available for each node class.

AttributeUseDataType Description
NodeIdMandatoryNodeId Uniquely identifies a Node in an OPC UA server and is used to address the Node in the OPC UA Services
NodeClassMandatoryNodeClass An enumeration identifying the NodeClass of a Node such as Object, Variable or Method
BrowseNameMandatoryQualifiedName Identifies the Node when browsing the OPC UA server. It is not localized
DisplayNameMandatoryLocalizedText Contains the Name of the Node that should be used to display the name in a user interface. Therefore, it is localized
DescriptionOptionalLocalizedText This optional Attribute contains a localized textual description of the Node
WriteMaskOptionalUInt32 Is optional and specifies which Attributes of the Node are writable, i.e., can be modified by an OPC UA client
UserWriteMaskOptionalUInt32 Is optional and specifies which Attributes of the Node can be modified by the user currently connected to the server
RolePermissionsOptionalRolePermissionType[] Specifies the Permissions that apply to a Node for all roles which have access to the Node. The value of the attribute is an array of RolePermissionType structures where one RolePermission contains the role identifier and the Permissions mask for the role. See User Authorization for details on role based authorization and the available Permissions.
UserRolePermissionsOptionalRolePermissionType[] Specifies the Permissions that apply to a Node for all roles granted to current Session.
AccessRestrictionsOptionalAccessRestrictionType Specifies the AccessRestrictions that apply to a Node. Restrictions may require a secured communication channel or a Session for the access to the Node.

Object

The Object node class is used to represent systems, system components, real-world objects and software objects.

The following attribute is specific for the Object node class:

AttributeUseDataType Description
Contains all attributes of the Base Node Class
EventNotifierMandatoryByte 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

Variable

The Variable node class is used to represent the content of an Object. Variables provide real data and thus the number of attributes is higher.

The following attributes are specific for the Variable node class:

AttributeUseDataType Description
Contains all attributes of the Base Node Class
ValueMandatoryBase Data Type The actual value of the Variable. The data type of the value is specified by the DataType, ValueRank, and ArrayDimensions Attributes
DataTypeMandatoryNodeId DataTypes are represented as Nodes in the Address Space. This Attribute contains a NodeId of such a Node and thus defines the DataType of the Value Attribute
ValueRankMandatoryInt32 Identifies if the value is an array and when it is an array it allows specifying the dimensions of the array
ArrayDimensionsOptionalUInt32[] This optional Attribute allows specifying the size of an array and can only be used if the value is an array. For each dimension of the array a corresponding entry defines the length of the dimension
AccessLevelMandatoryByte 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. Other flags indicate if time-stamp or status can be written.
AccessLevelExOptionalAccessLevelExType A bit mask extending the AccessLevel bit mask. The first byte of the bit mask matches the value of the AccessLevel. The additional flags indicate if special feature are available like atomic access to the value, index range write to arrays or if the variable accepts subtypes of the indicated DataType.
UserAccessLevelMandatoryByte Contains the same information as the AccessLevel but takes user access rights into account
MinimumSamplingIntervalOptionalDouble This optional Attribute provides the information how fast the OPC UA server can detect changes of the Value Attribute. For Values not directly managed by the server, e.g., the temperature of a temperature sensor, the server may need to scan the device for changes (polling) and thus is not able to detect changes faster than this minimum interval
HistorizingMandatoryBoolean Indicates whether the server currently collects history for the Value. The AccessLevel Attribute does not provide that information, it only specifies whether some history is available

Method

The Method node class is used to represent a Method in the server address space.

The following attributes are specific for the Method node class.

AttributeUseDataType Description
Contains all attributes of the Base Node Class
ExecutableMandatoryBoolean A flag indicating if the Method can be invoked at the moment
UserExecutableMandatoryBoolean Same as the Executable Attribute taking user access rights into account

ReferenceType

The ReferenceType node class is used to represent the type of references used by the server.

The following attributes are specific for the ReferenceType node class:

AttributeUseDataType Description
Contains all attributes of the Base Node Class
IsAbstractMandatoryBoolean Specifies if the ReferenceType can be used for References or is only used for organizational purposes in the ReferenceType hierarchy
SymmetricMandatoryBoolean Indicates whether the Reference is symmetric, i.e., whether the meaning is the same in forward and inverse direction
InverseNameOptionalLocalizedText This optional Attribute specifies the semantic of the Reference in inverse direction. It can only be applied for nonsymmetric References and must be provided if such a ReferenceType is not abstract

ObjectType

The ObjectType node class is used represents a type node for objects in the server address space. ObjectTypes are similar to a classes in object oriented languages.

The following attribute is specific for the ObjectType node class.

AttributeUseDataType Description
Contains all attributes of the Base Node Class
IsAbstractMandatoryBoolean This Attribute indicates whether the ObjectType is concrete or abstract and therefore cannot directly be used as type definition

VariableType

The VariableType node class is used represents a type node for variables in the server address space. VariableType are typically used to define which properties are available on the Variable instance.

The following attributes are specific for the VariableType node class:

AttributeUseDataType Description
Contains all attributes of the Base Node Class
ValueOptionalBase Data Type This optional Attribute defines a default value for instances of this VariableType. The data type of the value is specified by the DataType, ValueRank, and ArrayDimensions Attributes
DataTypeMandatoryNodeId Defines the DataType of the Value Attribute for instances of this type as well as for the Value Attribute of the VariableType if provided
ValueRankMandatoryInt32 Identifies if the value is an array and when it is an array it allows specifying the dimensions of the array
ArrayDimensionsOptionalUInt32[] This optional Attribute allows specifying the size of an array and can only be used if the value is an array. For each dimension of the array a corresponding entry defines the length of the dimension
IsAbstractMandatoryBoolean This Attribute indicates if the VariableType is abstract and therefore cannot directly be used as type definition

DataType

All DataTypes are represented as Nodes of the NodeClass DataType in the Address Space.

The following attribute is specific for the DataType node class:

AttributeUseDataType Description
Contains all attributes of the Base Node Class
IsAbstractMandatoryBoolean Indicates whether the DataType is abstract. An abstract DataType can be used in the DataType Attribute. However, concrete values must be of a concrete DataType
DataTypeDefinitionOptionalDataTypeDefinition Provides the meta data and encoding information for custom DataTypes. The DataTypeDefinition DataType is abstract. The concrete sub-type StructureDefinition is used to describe structure DataTypes and the sub-type EnumDefinition is used to describe enumeration or OptionSet (bit mask) DataTypes. See OPC UA Data Types for a introduction to OPC UA DataTypes including custom DataTypes.

View

A View is used to restrict the number of visible Nodes and References in a large Address Space. By using Views servers can organize their Address Space and provide views on it tailored to specific tasks or use cases.

The following attributes are specific for the View node class:

AttributeUseDataType Description
Contains all attributes of the Base Node Class
ContainsNoLoopsMandatoryBoolean This Attributes indicates whether the Nodes contained in the View do span a nonlooping hierarchy when following hierarchical References
EventNotifierMandatoryByte This Attribute represents a bit mask that identifies whether the View can be used to subscribe to Events and whether the history of Events is accessible and changeable

The next chapter describes the OPC UA NodeId Concepts.