This ObjectTypedefines the capabilities supported by the OPC UA Server. It is formally defined in Table 9.

Table 9– ServerType Definition

Attribute

Value

BrowseName

ServerType

IsAbstract

False

References

NodeClass

BrowseName

DataType / TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasProperty

Variable

ServerArray

String[]

PropertyType

Mandatory

HasProperty

Variable

NamespaceArray

String[]

PropertyType

Mandatory

HasProperty

Variable

UrisVersion

VersionTime

PropertyType

Optional

HasComponent

Variable

ServerStatus1

ServerStatusDataType

ServerStatusType

Mandatory

HasProperty

Variable

ServiceLevel

Byte

PropertyType

Mandatory

HasProperty

Variable

Auditing

Boolean

PropertyType

Mandatory

HasProperty

Variable

EstimatedReturnTime

DateTime

PropertyType

Optional

HasProperty

Variable

LocalTime

TimeZoneDataType

PropertyType

Optional

HasComponent

Object

ServerCapabilities1

-

ServerCapabilitiesType

Mandatory

HasComponent

Object

ServerDiagnostics1

-

ServerDiagnosticsType

Mandatory

HasComponent

Object

VendorServerInfo

-

VendorServerInfoType

Mandatory

HasComponent

Object

ServerRedundancy1

-

ServerRedundancyType

Mandatory

HasComponent

Object

Namespaces

-

NamespacesType

Optional

HasComponent

Method

GetMonitoredItems

Defined in 9.1

Optional

HasComponent

Method

ResendData

Defined in 9.2

Optional

HasComponent

Method

SetSubscriptionDurable

Defined in 9.3

Optional

HasComponent

Method

RequestServerStateChange

Defined in 9.4

Optional

NOTE Containing Objectsand Variablesof these Objectsand Variablesare defined by their BrowseNamedefined in the corresponding TypeDefinitionNode. The NodeIdis defined by the composed symbolic name described in 4.1.

ServerArraydefines an array of ServerURIs. This Variableis also referred to as the server table. Each URI in this array represents a globally-unique logical name for a Serverwithin the scope of the network in which it is installed. Each OPC UA Serverinstance has a single URI that is used in the server tableof other OPC UA Servers. Index 0 is reserved for the URI of the local Server. Values above 0 are used to identify remote Serversand are specific to a Server. OPC 10000-4describes discovery mechanism that can be used to resolve URIs into URLs. The ServerURI is case sensitive.

The URI of the ServerArraywith Index 0 shall be identical to the URI of the NamespaceArraywith Index 1, since both represent the local Server.

The indexes into the server tableare referred to as server indexesor server names. They are used in OPC UA Servicesto identify TargetNodesof Referencesthat reside in remote Servers. Clients may read the entire table or they may read individual entries in the table. The Servershall not modify or delete entries of this table while any client has an open session to the Server, because clients may cache the server table. A Servermay add entries to the server tableeven if clients are connected to the Server.

NamespaceArray defines an array of namespace URIs. This Variableis also referred as namespace table. The indexes into the namespace tableare referred to as NamespaceIndexes. NamespaceIndexesare used in NodeIdsin OPC UA Services, rather than the longer namespace URI. Index 0 is reserved for the OPC UA namespace, and index 1 is reserved for the local Server. Clients may read the entire namespace tableor they may read individual entries in the namespace table. The Servershall not modify or delete entries of the namespace tablewhile any client has an open session to the Server, because clients may cache the namespace table. A Servermay add entries to the namespace tableeven if clients are connected to the Server. It is recommended that Serversnot change the indexes of the namespace tablebut only add entries, because the client may cache NodeIdsusing the indexes. Nevertheless, it might not always be possible for Serversto avoid changing indexes in the namespace table. Clients that cache NamespaceIndexesof NodeIdsshould always check when starting a session to verify that the cached NamespaceIndexeshave not changed.

UrisVersiondefines the version of the ServerArrayand the NamespaceArray. Everytime the ServerArrayor the NamespaceArrayis changed, the value of the UrisVersionshall be updated to a value greater than the previous value. The UrisVersion Propertyis used in combination with the SessionlessInvoke Servicedefined in OPC 10000-4. If a Serversupports this Service, the Servershall support this Property. It is the responsibility of the Serverto provide a consistent set of values for the ServerArray, NamespaceArrayand the UrisVersion Properties. The VersionTime DataTypeis defined in OPC 10000-4.

ServerStatus contains elements that describe the status of the Server. See 12.10for a description of its elements.

ServiceLevel describes the ability of the Serverto provide its data to the client. The value range is from 0 to 255, where 0 indicates the worst and 255 indicates the best. OPC 10000-4defines required sub-ranges for different scenarios. The intent is to provide the clients an indication of availability among redundant Servers.

Auditingis a Boolean specifying if the Serveris currently generating audit events. It is set to TRUE if the Servergenerates audit events, otherwise to false. The Profilesdefined in OPC 10000-7specify what kind of audit events are generated by the Server.

EstimatedReturnTimeindicates the time at which the Server is expected to have a ServerStatus.Stateof RUNNING_0. A Client that observes a shutdown or a ServiceLevelof 0 should either wait until after this time to attempt to reconnect to this Server or enter into slow retry logic. For example, most Clients will attempt to reconnect after a failure immediately and then progressively increase the delay between attempts until some maximum delay. This time can be used to trigger the Client to start its reconnect logic with some delay.

LocalTimeis a structure containing the Offset and the DaylightSavingInOffset flag. The Offset specifies the time difference (in minutes) between the Servertime in UTCand the local time at the Serverlocation. If DaylightSavingInOffset is TRUE, then Standard/Daylight savings time (DST) at the Serverlocation is in effect and Offset includes the DST correction. If FALSE then the Offset does not include DST correction and DST may or may not be in effect.

ServerCapabilities defines the capabilities supported by the OPC UA Server. See 6.3.2for its description.

ServerDiagnostics defines diagnostic information about the OPC UA Server. See 6.3.3for its description.

VendorServerInfo represents the browse entry point for vendor-defined Serverinformation. This Objectis required to be present even if there are no vendor-defined Objectsbeneath it. See 6.3.6for its description.

ServerRedundancy describes the redundancy capabilities provided by the Server. This Objectis required even if the Serverdoes not provide any redundancy support. If the Serversupports redundancy, then a subtype of ServerRedundancyTypeis used to describe its capabilities. Otherwise, it provides an Objectof type ServerRedundancyTypewith the PropertyRedundancySupport set to none. See 6.3.7for the description of ServerRedundancyType.

Namespacesprovides a list of NamespaceMetadataType Objectswith additional information about the namespaces used in the Server. See 6.3.14for the description of NamespaceMetadataType.

The GetMonitoredItems Methodis used to identify the MonitoredItemsof a Subscription. It is defined in 9.1; the intended usage is defined in OPC 10000-4.

The ResendData Method is used to get the latest values of the data monitored items of a Subscription. It is defined in 9.2; the intended usage is defined in OPC 10000-4.

The SetSubscriptionDurable Methodis used to set a Subscriptioninto a mode where MonitoredItemdata and event queues are stored and delivered even if an OPC UA Clientwas disconnected for a longer time or the OPC UA Serverwas restarted. It is defined in 9.3; the intended usage is defined in OPC 10000-4.

The RequestServerStateChange Methodallows a Clientto request a state change in the Server. It is defined in 9.4; the intended usage is defined in OPC 10000-4.

This ObjectTypedefines the capabilities supported by the OPC UA Server. It is formally defined in Table 10.

Table 10– ServerCapabilitiesType Definition

Attribute

Value

BrowseName

ServerCapabilitiesType

IsAbstract

False

References

NodeClass

BrowseName

DataType / TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasProperty

Variable

ServerProfileArray

String[]

PropertyType

Mandatory

HasProperty

Variable

LocaleIdArray

LocaleId[]

PropertyType

Mandatory

HasProperty

Variable

MinSupportedSampleRate

Duration

PropertyType

Mandatory

HasProperty

Variable

MaxBrowseContinuationPoints

UInt16

PropertyType

Mandatory

HasProperty

Variable

MaxQueryContinuationPoints

UInt16

PropertyType

Mandatory

HasProperty

Variable

MaxHistoryContinuationPoints

UInt16

PropertyType

Mandatory

HasProperty

Variable

SoftwareCertificates

SignedSoftwareCertificate[]

PropertyType

Mandatory

HasProperty

Variable

MaxArrayLength

UInt32

PropertyType

Optional

HasProperty

Variable

MaxStringLength

UInt32

PropertyType

Optional

HasProperty

Variable

MaxByteStringLength

UInt32

PropertyType

Optional

HasComponent

Object

OperationLimits

--

OperationLimitsType

Optional

HasComponent

Object

ModellingRules

--

FolderType

Mandatory

HasComponent

Object

AggregateFunctions

--

FolderType

Mandatory

HasComponent

Object

RoleSet

RoleSetType

Optional

HasComponent

Variable

<VendorCapability>

BaseDataType ServerVendorCapabilityType

OptionalPlaceholder

ServerProfileArray lists the Profilesthat the Serversupports. See OPC 10000-7for the definitions of Server Profiles. This list should be limited to the Profilesthe Serversupports in its current configuration.

LocaleIdArray is an array of LocaleIds that are known to be supported by the Server. The Servermight not be aware of all LocaleIds that it supports because it may provide access to underlying servers, systems or devices that do not report the LocaleIds that they support.

MinSupportedSampleRate defines the minimum supported sample rate, including 0, which is supported by the Server.

MaxBrowseContinuationPointsis an integer specifying the maximum number of parallel continuation points of the Browse Servicethat the Servercan support per session. The value specifies the maximum the Servercan support under normal circumstances, so there is no guarantee the Servercan always support the maximum. The client should not open more Browse calls with open continuation points than exposed in this Variable. The value 0 indicates that the Serverdoes not restrict the number of parallel continuation points the client should use.

MaxQueryContinuationPointsis an integer specifying the maximum number of parallel continuation points of the QueryFirst Servicesthat the Servercan support per session. The value specifies the maximum the Servercan support under normal circumstances, so there is no guarantee the Servercan always support the maximum. The client should not open more QueryFirst calls with open continuation points than exposed in this Variable. The value 0 indicates that the Serverdoes not restrict the number of parallel continuation points the client should use.

MaxHistoryContinuationPoints is an integer specifying the maximum number of parallel continuation points of the HistoryRead Servicesthat the Servercan support per session. The value specifies the maximum the Servercan support under normal circumstances, so there is no guarantee the Servercan always support the maximum. The client should not open more HistoryRead calls with open continuation points than exposed in this Variable. The value 0 indicates that the Serverdoes not restrict the number of parallel continuation points the client should use.

SoftwareCertificatesis an array of SignedSoftwareCertificatescontaining all SoftwareCertificatessupported by the Server. A SoftwareCertificateidentifies capabilities of the Server. It contains the list of Profilessupported by the Server. Profilesare described in OPC 10000-7.

The MaxArrayLength Propertyindicates the maximum length of a one or multidimensional array supported by Variables of the Server. In a multidimensional array it indicates the overall length. For example, a three-dimensional array of 2x3x10 has the array length of 60. The Servermight further restrict the length for individual Variables without notice to the client. Serversmay use the Property MaxArrayLengthdefined in OPC 10000-3on individual DataVariablesto specify the size on individual values. The individual Propertymay have a larger or smaller value than MaxArrayLength.

The MaxStringLength Propertyindicates the maximum number of bytes in Stringssupported by Variablesof the Server. Serversmay override this setting by adding the MaxStringLength Propertydefined in OPC 10000-3to an individual DataVariable. If a Serverdoes not impose a maximum number of bytes or is not able to determine the maximum number of bytes this Propertyshall not be provided.

The MaxByteStringLength Propertyindicates the maximum number of bytes in a ByteStringsupported by Variablesof the Server. It also specifies the  defaultmaximum size of a FileType Object’sread and write buffers. Servers may override this setting by adding the MaxByteStringLength Propertydefined in OPC 10000-3to an individual DataVariable orFileType Object. If a Serverdoes not impose a maximum number of bytes or is not able to determine the maximum number of bytes this Propertyshall not be provided.

OperationLimitsis an entry point to access information on operation limits of the Server, for example the maximum length of an array in a read Servicecall.

ModellingRulesis an entry point to browse to all ModellingRulessupported by the Server. All ModellingRulessupported by the Servershould be able to be browsed starting from this Object.

AggregateFunctionsis an entry point to browse to all AggregateFunctionssupported by the Server. All AggregateFunctionssupported by the Servershould be able to be browsed starting from this Object. AggregateFunctions are Objects of AggregateFunctionType.

The RoleSet Objectis used to publish all Rolessupported by the Server. The RoleSetTypeis specified in F.2

When vendors expose their own capabilities they should add additional Nodesto the standard ServerCapabilities Objectinstance.

This ObjectTypedefines diagnostic information about the OPC UA Server. This ObjectTypeis formally defined in Table 11.

Table 11– ServerDiagnosticsType Definition

Attribute

Value

BrowseName

ServerDiagnosticsType

IsAbstract

False

References

NodeClass

BrowseName

DataType / TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasComponent

Variable

ServerDiagnosticsSummary

ServerDiagnosticsSummaryDataType

ServerDiagnosticsSummaryType

Mandatory

HasComponent

Variable

SamplingIntervalDiagnosticsArray

SamplingIntervalDiagnosticsDataType[]

SamplingIntervalDiagnosticsArrayType

Optional

HasComponent

Variable

SubscriptionDiagnosticsArray

SubscriptionDiagnosticsDataType[]

SubscriptionDiagnosticsArrayType

Mandatory

HasComponent

Object

SessionsDiagnosticsSummary

--

SessionsDiagnosticsSummaryType

Mandatory

HasProperty

Variable

EnabledFlag

Boolean

PropertyType

Mandatory

ServerDiagnosticsSummary contains diagnostic summary information for the Server, as defined in 12.9.

SamplingIntervalDiagnosticsArrayis an array of diagnostic information per sampling rate as defined in 12.8. There is one entry for each sampling rate currently used by the Server. Its TypeDefinitionNodeis the VariableType SamplingIntervalDiagnosticsArrayType, providing a Variablefor each entry in the array, as defined in 7.9.

The sampling interval diagnostics are only collected by Serverswhich use a fixed set of sampling intervals. In these cases, length of the array and the set of contained Variableswill be determined by the Serverconfiguration and the NodeIdassigned to a given sampling interval diagnostics variable shall not change as long as the Serverconfiguration does not change. A Servermay not expose the SamplingIntervalDiagnosticsArray if it does not use fixed sampling rates.

SubscriptionDiagnosticsArray is an array of Subscription diagnostic information per subscription, as defined in 12.15. There is one entry for each Notification channel actually established in the Server. Its TypeDefinitionNodeis the VariableTypeSubscriptionDiagnosticsArrayType, providing a Variablefor each entry in the array as defined in 7.11. Those Variablesare also used as Variablesreferenced by other Variables.

SessionsDiagnosticsSummary contains diagnostic information per session, as defined in 6.3.4.

EnabledFlag identifies whether or not diagnostic information is collected by the Server. It can also be used by a client to enable or disable the collection of diagnostic information of the Server. The following settings of the Boolean value apply: TRUE indicates that the Servercollects diagnostic information, and setting the value to TRUE leads to resetting and enabling the collection. FALSE indicates that no diagnostic information is collected, and setting the value to FALSE disables the collection without resetting the diagnostic values.

When diagnostics are turned off, the Servercan return Bad_NodeIdUnknown for all static diagnostic Nodesexcept the EnabledFlag Property. Dynamic diagnostic Nodes(such as the Session Nodes) will not appear in the AddressSpace.

If collection of diagnostic information is not supported at all, the EnabledFlag Property will be read only.

This ObjectTypedefines diagnostic information about the sessions of the OPC UA Server. This ObjectTypeis formally defined in Table 12.

Table 12– SessionsDiagnosticsSummaryType Definition

Attribute

Value

BrowseName

SessionsDiagnosticsSummaryType

IsAbstract

False

References

NodeClass

BrowseName

DataType / TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasComponent

Variable

SessionDiagnosticsArray

SessionDiagnosticsDataType[]

SessionDiagnosticsArrayType

Mandatory

HasComponent

Variable

SessionSecurityDiagnosticsArray

SessionSecurityDiagnosticsDataType[]

SessionSecurityDiagnosticsArrayType

Mandatory

HasComponent

Object

<ClientName>

--

SessionDiagnosticsObjectType

OptionalPlaceholder

NOTE This row represents no Nodein the AddressSpace. It is a placeholder pointing out that instances of the ObjectTypewill have those Objects.

SessionDiagnosticsArrayprovides an array with an entry for each session in the Serverhaving general diagnostic information about a session.

SessionSecurityDiagnosticsArrayprovides an array with an entry for each active session in the Serverhaving security-related diagnostic information about a session. Since this information is security-related, it should not be made accessible to all users, but only to authorised users.

For each session of the Server, this Objectalso provides an Objectrepresenting the session, indicated by <ClientName>. The BrowseName could be derived from the sessionNamedefined in the CreateSession Service(OPC 10000-4) or some other server-specific mechanisms. It is of the ObjectTypeSessionDiagnosticsObjectType, as defined in 6.3.5.

This ObjectTypedefines diagnostic information about a session of the OPC UA Server. This ObjectTypeis formally defined in Table 13.

Table 13– SessionDiagnosticsObjectType Definition

Attribute

Value

BrowseName

SessionDiagnosticsObjectType

IsAbstract

False

References

NodeClass

BrowseName

DataType / TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasComponent

Variable

SessionDiagnostics

SessionDiagnosticsDataType

SessionDiagnosticsVariableType

Mandatory

HasComponent

Variable

SessionSecurityDiagnostics

SessionSecurityDiagnosticsDataType

SessionSecurityDiagnosticsType

Mandatory

HasComponent

Variable

SubscriptionDiagnosticsArray

SubscriptionDiagnosticsDataType[]

SubscriptionDiagnosticsArrayType

Mandatory

SessionDiagnosticscontains general diagnostic information about the session; the SessionSecurityDiagnostics Variablecontains security-related diagnostic information. Because the information of the second Variableis security-related, it should not be made accessible to all users, but only to authorised users.

SubscriptionDiagnosticsArray is an array of Subscription diagnostic information per opened subscription, as defined in 12.15. Its TypeDefinitionNodeis the VariableTypeSubscriptionDiagnosticsArrayType providing a Variablefor each entry in the array, as defined in 7.11.

This ObjectTypedefines a placeholder Objectfor vendor-specific information about the OPC UA Server. This ObjectTypedefines an empty ObjectTypethat has no components. It shall be subtyped by vendors to define their vendor-specific information. This ObjectTypeis formally defined in Table 14.

Table 14– VendorServerInfoType Definition

Attribute

Value

BrowseName

VendorServerInfoType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

This ObjectTypedefines the redundancy capabilities supported by the OPC UA Server. It is formally defined in Table 15.

Table 15– ServerRedundancyType Definition

Attribute

Value

BrowseName

ServerRedundancyType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasProperty

Variable

RedundancySupport

RedundancySupport

PropertyType

Mandatory

HasSubtype

ObjectType

TransparentRedundancyType

Defined in 6.3.8

HasSubtype

ObjectType

NonTransparentRedundancyType

Defined in 6.3.9

RedundancySupport indicates what redundancy is supported by the Server. Its values are defined in 12.5. It shall be set to NONE_0 for all instances of the ServerRedundancyTypeusing the ObjectTypedirectly (no subtype).

This ObjectTypeis a subtype of ServerRedundancyTypeand is used to identify the capabilities of the OPC UA Serverfor server-controlled redundancy with a transparent switchover for the client. It is formally defined in Table 16.

Table 16– TransparentRedundancyType Definition

Attribute

Value

BrowseName

TransparentRedundancyType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ServerRedundancyType defined in 6.3.7, i.e. inheriting the InstanceDeclarations of that Node.

HasProperty

Variable

CurrentServerId

String

PropertyType

Mandatory

HasProperty

Variable

RedundantServerArray

RedundantServerDataType[]

PropertyType

Mandatory

RedundancySupportis inherited from the ServerRedundancyType. It shall be set to TRANSPARENT_4 for all instances of the TransparentRedundancyType.

Although, in a transparent switchover scenario, all redundant Serversserve under the same URI to the Client, it may be required to track the exact data source on the Client. Therefore, CurrentServerId contains an identifier of the currently-used Serverin the Redundant Set. This Serveris valid only inside a Session; if a Clientopens several Sessions, different Serversof the redundant set of Serversmay serve it in different Sessions. The value of the CurrentServerIdmay change due to Failoveror load balancing, so a Clientthat needs to track its data source shall subscribe to this Variable.

As diagnostic information, the RedundantServerArraycontains an array of available Serversin the Redundant Set; including their service levels (see 12.7). This array may change during a Session.

This ObjectTypeis a subtype of ServerRedundancyTypeand is used to identify the capabilities of the OPC UA Serverfor non-transparent redundancy. It is formally defined in Table 17.

Table 17– NonTransparentRedundancyType Definition

Attribute

Value

BrowseName

NonTransparentRedundancyType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the ServerRedundancyType defined in 6.3.7, which means it inherits the InstanceDeclarations of that Node.

HasProperty

Variable

ServerUriArray

String[]

PropertyType

Mandatory

HasSubtype

ObjectType

NonTransparentNetworkRedundancyType

Defined in 6.3.10

ServerUriArray is an array with the URI of all redundant Serversof the OPC UA Server. See OPC 10000-4for the definition of redundancy in this standard. In a non-transparent redundancy environment, the Clientis responsible to subscribe to the redundant Servers. Therefore the Clientmight open a session to one or more redundant Serversof this array. The ServerUriArrayshall contain the local Server.

RedundancySupportis inherited from the ServerRedundancyType. It shall be set to COLD_1, WARM_2, HOT_3 or HOT_AND_MIRRORED_5 for all instances of the NonTransparentRedundancyType. It defines the redundancy support provided by the Server. Its intended use is defined in OPC 10000-4.

This ObjectTypeis a subtype of NonTransparentRedundancyTypeand is used to identify the capabilities of the OPC UA Serverfor non-transparent network redundancy. It is formally defined in Table 18.

Table 18– NonTransparentNetworkRedundancyType Definition

Attribute

Value

BrowseName

NonTransparentNetworkRedundancyType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the NonTransparentRedundancyType defined in 6.3.9, which means it inherits the InstanceDeclarations of that Node.

HasProperty

Variable

ServerNetworkGroups

NetworkGroupDataType[]

PropertyType

Mandatory

Clientsswitching between network paths to the same Serverbehave the same as HotAndMirrored redundancy. Serverand network redundancy can be combined. In the combined approach it is important for the Clientto know which ServerUris belong to the same Serverrepresenting different network paths and which ServerUris represent different Servers. Therefore, a Serverimplementing non-transparent network redundancy shall use the NonTransparentNetworkRedundancyTypeto identify its redundancy support.

RedundancySupportis inherited from the ServerRedundancyType. It shall be set to COLD_1, WARM_2, HOT_3 or HOT_AND_MIRRORED_5 for all instances of the NonTransparentNetworkRedundancyType. If no Serverredundancy is supported (the ServerUriArrayonly contains one entry), the RedundancySupportshall be set to HOT_AND_MIRRORED_5.

The ServerNetworkGroupscontains an array of NetworkGroupDataType. The URIs of the Serversin that array (in the serverUriof the structure) shall be exactly the same as the ones provided in the ServerUriArray. However, the order might be different. Thus the array represents a list of HotAndMirrored redundant Servers. If a Serveronly supports network redundancy, it has only one entry in the ServerNetworkGroups. The networkPathsin the structure represents the redundant network paths for each of the Servers. The networkPathsdescribes the different paths (one entry for each path) ordered by priority. Each network path contains an endpointUrlList having an array of Strings each containing a URL of anEndpoint.This allows using different protocol options for the same network path.

The Endpointsprovided shall match with the Endpointsprovided by the GetEndpoints Serviceof the corresponding Server.

This ObjectTypeis a subtype of FolderTypeand is used to identify the operation limits of the OPC UA Server. It is formally defined in Table 19.

Table 19– OperationLimitsType Definition

Attribute

Value

BrowseName

OperationLimitsType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the FolderType defined in 6.6, which means it inherits the InstanceDeclarations of that Node.

HasProperty

Variable

MaxNodesPerRead

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerHistoryReadData

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerHistoryReadEvents

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerWrite

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerHistoryUpdateData

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerHistoryUpdateEvents

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerMethodCall

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerBrowse

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerRegisterNodes

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerTranslateBrowsePathsToNodeIds

UInt32

PropertyType

Optional

HasProperty

Variable

MaxNodesPerNodeManagement

UInt32

PropertyType

Optional

HasProperty

Variable

MaxMonitoredItemsPerCall

UInt32

PropertyType

Optional

Any operational limits Propertythat is provided shall have a non zero value.

The MaxNodesPerRead Propertyindicates the maximum size of the nodesToRead array when a Clientcalls the Read Service.

The MaxNodesPerHistoryReadData Propertyindicates the maximum size of the nodesToRead array when a Clientcalls the HistoryRead Serviceusing the historyReadDetails RAW, PROCESSED, MODIFIED or ATTIME.

The MaxNodesPerHistoryReadEvents Propertyindicates the maximum size of the nodesToRead array when a Clientcalls the HistoryRead Serviceusing the historyReadDetails EVENTS.

The MaxNodesPerWrite Propertyindicates the maximum size of the nodesToWrite array when a Clientcalls the Write Service.

The MaxNodesPerHistoryUpdateData Propertyindicates the maximum size of the historyUpdateDetails array supported by the Serverwhen a Client calls the HistoryUpdate Service.

The MaxNodesPerHistoryUpdateEvents Propertyindicates the maximum size of the historyUpdateDetails array when a Client calls the HistoryUpdate Service.

The MaxNodesPerMethodCall Propertyindicates the maximum size of the methodsToCall array when a Client calls the Call Service.

The MaxNodesPerBrowse Propertyindicates the maximum size of the nodesToBrowse array when calling the Browse Serviceor the continuationPoints array when a Clientcalls the BrowseNext Service.

The MaxNodesPerRegisterNodes Propertyindicates the maximum size of the nodesToRegister array when a Clientcalls the RegisterNodes Serviceand the maximum size of the nodesToUnregister when calling the UnregisterNodes Service.

The MaxNodesPerTranslateBrowsePathsToNodeIds Propertyindicates the maximum size of the browsePaths array when a Clientcalls the TranslateBrowsePathsToNodeIds Service.

The MaxNodesPerNodeManagement Propertyindicates the maximum size of the nodesToAdd array when a Clientcalls the AddNodes Service, the maximum size of the referencesToAdd array when a Clientcalls the AddReferences Service, the maximum size of the nodesToDelete array when a Clientcalls the DeleteNodes Service, and the maximum size of the referencesToDelete array when a Clientcalls the DeleteReferences Service.

The MaxMonitoredItemsPerCall Propertyindicates

  • the maximum size of the itemsToCreate array when a Clientcalls the CreateMonitoredItems Service,
  • the maximum size of the itemsToModify array when a Clientcalls the ModifyMonitoredItems Service,
  • the maximum size of the monitoredItemIds array when a Clientcalls the SetMonitoringMode Serviceor the DeleteMonitoredItems Service,
  • the maximum size of the sum of the linksToAdd and linksToRemove arrays when a Clientcalls the SetTriggering Service.

This ObjectTypedefines the file for a namespace provided by the OPC UA Server. It is formally defined in Table 20. It represents an XML address space file using the XML schema defined in OPC 10000-6.

Table 20– AddressSpaceFileType Definition

Attribute

Value

BrowseName

AddressSpaceFileType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the FileType defined in C.2

HasComponent

Method

ExportNamespace

The method has no parameters.

Optional

The ExportNamespace Methodprovides a way to export the namespace from the Server AddressSpaceto the XML file represented by the AddressSpaceFileType. Value Attributesare only exported if they represent static configuration information. The client is expected to call the ExportNamespace Methodfirst to update the XML file and then access the file with the Methodsdefined in the FileType.

Serversmight provide some vendor-specific mechanisms importing parts of an address space as subtype of this ObjectType, for example by defining appropriate Methods.

This ObjectTypedefines the metadata for a namespace provided by the Server. It is formally defined in Table 21.

Instances of this Objectallow Serversto provide more information like version information in addition to the namespace URI. Important information for aggregating Serversis provided by the StaticNodeIdTypes, StaticNumericNodeIdRange and StaticStringNodeIdPattern Properties.

Table 21– NamespaceMetadataType Definition

Attribute

Value

BrowseName

NamespaceMetadataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasProperty

Variable

NamespaceUri

String

PropertyType

Mandatory

HasProperty

Variable

NamespaceVersion

String

PropertyType

Mandatory

HasProperty

Variable

NamespacePublicationDate

DateTime

PropertyType

Mandatory

HasProperty

Variable

IsNamespaceSubset

Boolean

PropertyType

Mandatory

HasProperty

Variable

StaticNodeIdTypes

IdType[]

PropertyType

Mandatory

HasProperty

Variable

StaticNumericNodeIdRange

NumericRange[]

PropertyType

Mandatory

HasProperty

Variable

StaticStringNodeIdPattern

String

PropertyType

Mandatory

HasComponent

Object

NamespaceFile

-

AddressSpaceFileType

Optional

HasProperty

Variable

DefaultRolePermissions

RolePermissionType[]

PropertyType

Optional

HasProperty

Variable

DefaultUserRolePermissions

RolePermissionType[]

PropertyType

Optional

HasProperty

Variable

DefaultAccessRestrictions

AccessRestrictionType

PropertyType

Optional

The BrowseNameof instances of this type shall be derived from the represented namespace. This can, for example, be done by using the index of the namespace in the NamespaceArrayas namespaceIndexof the QualifiedNameand the namespace URI as nameof the QualifiedName.

The NamespaceUri Propertycontains the namespace represented by an instance of the MetaDataType.

The NamespaceVersion Propertyprovides version information for the namespace. It is intended for display purposes and shall not be used to programmatically identify the latest version. If there is no formal version defined for the namespace this Propertyshall be set to a null String.

The NamespacePublicationDateProperty provides the publication date of the namespace version. This Propertyvalue can be used by Clientsto determine the latest version if different versions are provided by different Servers. If there is no formal publication date defined for the namespace this Propertyshall be set to a null DateTime.

The IsNamespaceSubset Propertydefines whether all Nodesof the namespace are accessible in the Serveror only a subset. It is set to FALSE if the full namespace is provided and TRUE if not. If the completeness is unknown then this Propertyshall be set to TRUE.

Static Nodesare identical for all Attributesin all Servers, including the Value Attribute. For TypeDefinitionNodes, also the InstanceDeclarationsshall be identical. That means that for static Nodesthe semantic is always the same. Namespaces with static Nodesare for example namespaces defined by standard bodies like the OPC Foundation. This is important information for aggregating Servers. If the namespace is dynamic and used in several Serversthe aggregating Serverneeds to distinguish the namespace for each aggregated Server. The static Nodesof a namespace only need to be handled once, even if they are used by several aggregated Servers.

The StaticNodeIdTypes Propertyprovides a list of IdTypesused for static Nodes. All Nodesin the AddressSpaceof the namespace using one of the IdTypesin the array shall be static Nodes.

The StaticNumericNodeIdRange Propertyprovides a list of NumericRangesused for numeric NodeIdsof static Nodes. If the StaticNodeIdTypes Propertycontains an entry for numeric NodeIds then this Property is ignored.

The StaticStringNodeIdPattern Propertyprovides a regular expression as defined for the Like Operatordefined in OPC 10000-4to filter for string NodeIdsof static Nodes. If the StaticNodeIdTypes Propertycontains an entry for string NodeIdsthen this Propertyis ignored.

The Object NamespaceFilecontains all Nodesand Referencesof the namespace in an XML file where the Information Model XML Schema is defined in OPC 10000-6. The XML file is provided through an AddressSpaceFileType Object.

The DefaultRolePermissions Propertyprovides the default permissionsifa Serversupports RolePermissionsfor the Namespace.A Nodein the Namespaceoverrides this default by adding a RolePermissions Attributeto the Node. If a Serverimplements a vendor-specific RolePermissionsmodel for a Namespace,it does not add the DefaultRolePermissions Property to the NamespaceMetadata Object.

The DefaultUserRolePermissions Property provides the default user permissionsifa Serversupports UserRolePermissions for the Namespace.A Nodein the Namespaceoverrides this default by adding a UserRolePermissions Attributeto the Node. If a Serverimplements a vendor-specific UserRolePermissions model for a Namespace,it does not add the DefaultUserRolePermissions Property to the NamespaceMetadata Object.

The DefaultAccessRestrictions Propertyis present if a Serversupports AccessRestrictionsfor the Namespace andprovidesthedefaults. A Nodein the Namespaceoverrides this default by adding a AccessRestrictions Attribute to the Node. If a Serverimplements a vendor-specific AccessRestriction model for a Namespace,it does not add the DefaultAccessRestrictions Property to the NamespaceMetadata Object.

This ObjectTypedefines a list of NamespaceMetadataType Objectsprovided by the Server. It is formally defined in Table 22.

Table 22– NamespacesType Definition

Attribute

Value

BrowseName

NamespacesType

IsAbstract

False

References

NodeClass

BrowseName

Data Type

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasComponent

Object

<NamespaceIdentifier>

-

NamespaceMetadataType

OptionalPlaceholder

The ObjectTypecontains a list of NamespaceMetadataType Objectsrepresenting the namespaces in the Server. The BrowseNameof an Objectshall be derived from the namespace represented by the Object. This can, for example, be done by using the index of the namespace in the NamespaceArrayas namespaceIndexof the QualifiedNameand the namespace URI as nameof the QualifiedName. Clientsshould not assume that all namespaces provided by a Serverare present in this list as a namespace may not provide the information necessary to fill all mandatory Propertiesof the NamespaceMetadataType.