This ObjectType defines 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 |
|
Conformance Units |
|||||
Base Info ServerType |
ServerArray defines an array of Server URIs. This Variable is also referred to as the server table. Each URI in this array represents a globally-unique logical name for a Server within the scope of the network in which it is installed. Each OPC UA Server instance has a single URI that is used in the server table of other OPC UA Servers. Index 0 is reserved for the URI of the local Server. Values above 0 are used to identify remote Servers and are specific to a Server. OPC 10000-4 describes discovery mechanism that can be used to resolve URIs into URLs. The Server URI is case sensitive.
The URI of the ServerArray with Index 0 shall be identical to the URI of the NamespaceArray with Index 1, since both represent the local Server.
The indexes into the server table are referred to as server indexes or server names. They are used in OPC UA Services to identify TargetNodes of References that reside in remote Servers. Clients may read the entire table or they may read individual entries in the table. The Server shall 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 Server may add entries to the server table even if clients are connected to the Server.
NamespaceArray defines an array of namespace URIs. This Variable is also referred as namespace table. The indexes into the namespace table are referred to as NamespaceIndexes. NamespaceIndexes are used in NodeIds in 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 table or they may read individual entries in the namespace table. The Server shall not modify or delete entries of the namespace table while any client has an open session to the Server, because clients may cache the namespace table. A Server may add entries to the namespace table even if clients are connected to the Server. It is recommended that Servers not change the indexes of the namespace table but only add entries, because the client may cache NodeIds using the indexes. Nevertheless, it might not always be possible for Servers to avoid changing indexes in the namespace table. Clients that cache NamespaceIndexes of NodeIds should always check when starting a session to verify that the cached NamespaceIndexes have not changed.
UrisVersion defines the version of the ServerArray and the NamespaceArray. Everytime the ServerArray or the NamespaceArray is changed, the value of the UrisVersion shall be updated to a value greater than the previous value. The UrisVersion Property is used in combination with the SessionlessInvoke Service defined in OPC 10000-4. If a Server supports this Service, the Server shall support this Property. It is the responsibility of the Server to provide a consistent set of values for the ServerArray, NamespaceArray and the UrisVersion Properties. The VersionTime DataType is defined in OPC 10000-4.
ServerStatus contains elements that describe the status of the Server. See 12.10 for a description of its elements.
ServiceLevel describes the ability of the Server to provide its data to the Client. The value range is from 0 to 255, where 0 indicates the worst and 255 indicates the best. Servers shall set the ServiceLevel according to the sub-ranges defined in OPC 10000-4.
Auditing is a Boolean specifying if the Server is currently generating audit events. It is set to TRUE if the Server generates audit events, otherwise to false. The Profiles defined in OPC 10000-7 specify what kind of audit events are generated by the Server.
EstimatedReturnTime indicates the time at which the Server is expected to have a ServerStatus.State of RUNNING_0. A Client that observes a shutdown or a ServiceLevel of 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.
LocalTime is a structure containing the Offset and the DaylightSavingInOffset flag. The Offset specifies the time difference (in minutes) between the Server time in UTC and the local time at the Server location. If DaylightSavingInOffset is TRUE, then Standard/Daylight savings time (DST) at the Server location 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.2 for its description.
ServerDiagnostics defines diagnostic information about the OPC UA Server. See 6.3.3 for its description.
VendorServerInfo represents the browse entry point for vendor-defined Server information. This Object is required to be present even if there are no vendor-defined Objects beneath it. See 6.3.6 for its description.
ServerRedundancy describes the redundancy capabilities provided by the Server. This Object is required even if the Server does not provide any redundancy support. If the Server supports redundancy, then a subtype of ServerRedundancyType is used to describe its capabilities. Otherwise, it provides an Object of type ServerRedundancyType with the Property RedundancySupport set to none. See 6.3.7 for the description of ServerRedundancyType.
Namespaces provides a list of NamespaceMetadataType Objects with additional information about the namespaces used in the Server. See 6.3.14 for the description of NamespaceMetadataType.
The GetMonitoredItems Method is used to identify the MonitoredItems of 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 Method is used to set a Subscription into a mode where MonitoredItem data and event queues are stored and delivered even if an OPC UA Client was disconnected for a longer time or the OPC UA Server was restarted. It is defined in 9.3; the intended usage is defined in OPC 10000-4.
The RequestServerStateChange Method allows a Client to request a state change in the Server. It is defined in 9.4; the intended usage is defined in OPC 10000-4.
This ObjectType defines 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 |
HasProperty |
Variable |
MaxSessions |
UInt32 PropertyType |
Optional |
HasProperty |
Variable |
MaxSubscriptions |
UInt32 PropertyType |
Optional |
HasProperty |
Variable |
MaxMonitoredItems |
UInt32 PropertyType |
Optional |
HasProperty |
Variable |
MaxSubscriptionsPerSession |
UInt32 PropertyType |
Optional |
HasProperty |
Variable |
MaxMonitoredItemsPerSubscription |
UInt32 PropertyType |
Optional |
HasProperty |
Variable |
MaxSelectClauseParameters |
UInt32 PropertyType |
Optional |
HasProperty |
Variable |
MaxWhereClauseParameters |
UInt32 PropertyType |
Optional |
HasProperty |
Variable |
MaxMonitoredItemsQueueSize |
UInt32 PropertyType |
Optional |
HasComponent |
Variable |
<VendorCapability> |
BaseDataType ServerVendorCapabilityType |
OptionalPlaceholder |
HasProperty |
Variable |
ConformanceUnits |
QualifiedName[] PropertyType |
Optional |
Conformance Units |
||||
Base Info ServerType |
ServerProfileArray lists the Profiles that the Server supports. The String shall be the URI of the Profile. See OPC 10000-7 for definitions of OPC UA Server Profiles. This list should be limited to the Profiles the Server supports in its current configuration.
LocaleIdArray is an array of LocaleIds that are known to be supported by the Server. The Server might 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.
MaxBrowseContinuationPoints is an integer specifying the maximum number of parallel continuation points of the Browse Service that the Server can support per session. The value specifies the maximum the Server can support under normal circumstances, so there is no guarantee the Server can 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 Server does not restrict the number of parallel continuation points the client should use.
MaxQueryContinuationPoints is an integer specifying the maximum number of parallel continuation points of the QueryFirst Services that the Server can support per session. The value specifies the maximum the Server can support under normal circumstances, so there is no guarantee the Server can 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 Server does 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 Services that the Server can support per session. The value specifies the maximum the Server can support under normal circumstances, so there is no guarantee the Server can 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 Server does not restrict the number of parallel continuation points the client should use.
SoftwareCertificates is an array of SignedSoftwareCertificates containing all SoftwareCertificates supported by the Server. A SoftwareCertificate identifies capabilities of the Server. It contains the list of Profiles supported by the Server. Profiles are described in OPC 10000-7.
The MaxArrayLength Property indicates the maximum length of a one or multidimensional array supported by Variables, Method arguments and Event fields 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 Server might further restrict the length for individual Variables, Method arguments or Event fields without notice to the client. Servers may use the Property MaxArrayLength defined in OPC 10000-3 on individual DataVariables to specify the size on individual values. The individual Property may have a larger or smaller value than MaxArrayLength.
The MaxStringLength Property indicates the maximum number of bytes in Strings and LocalizedText supported by Variables, Method arguments and Event fields of the Server. Servers may override this setting by adding the MaxStringLength Property defined in OPC 10000-3 to an individual DataVariable. If a Server does not impose a maximum number of bytes or is not able to determine the maximum number of bytes this Property shall not be provided.
The MaxByteStringLength Property indicates the maximum number of bytes in a ByteString supported by Variables, Method arguments and Event fields of the Server. Servers may override this setting by adding the MaxByteStringLength Property defined in OPC 10000-3 to an individual DataVariable. If a Server does not impose a maximum number of bytes or is not able to determine the maximum number of bytes this Property shall not be provided.
OperationLimits is an entry point to access information on operation limits of the Server, for example the maximum length of an array in a read Service call.
ModellingRules is an entry point to browse to all ModellingRules supported by the Server. All ModellingRules supported by the Server should be able to be browsed starting from this Object.
AggregateFunctions is an entry point to browse to all AggregateFunctions supported by the Server. All AggregateFunctions supported by the Server should be able to be browsed starting from this Object. AggregateFunctions are Objects of AggregateFunctionType.
The RoleSet Object is used to publish all Roles supported by the Server. The RoleSetType is specified in OPC 10000-18.
MaxSessions is an integer specifying the maximum number of concurrent Sessions the Server can support. The value specifies the maximum the Server can support under normal circumstances, therefore there is no guarantee the Server can always support the maximum.
MaxSubscriptions is an integer specifying the maximum number of Subscriptions the Server can support. The value specifies the maximum the Server can support under normal circumstances, therefore there is no guarantee the Server can always support the maximum.
MaxMonitoredItems is an integer specifying the maximum number of MonitoredItems the Server can support. The value specifies the maximum the Server can support under normal circumstances, therefore there is no guarantee the Server can always support the maximum.
MaxSubscriptionsPerSession is an integer specifying the maximum number of Subscriptions per Session the Server can support. The value specifies the maximum the Server can support under normal circumstances, therefore there is no guarantee the Server can always support the maximum.
MaxMonitoredItemsPerSubscription is an integer specifying the maximum number of MonitoredItems per Subscription the Server can support. The value specifies the maximum the Server can support under normal circumstances, therefore there is no guarantee the Server can always support the maximum.
MaxSelectClauseParameters is an integer specifying the maximum number of EventField SelectClause Parameters the Server can support for an EventFilter. The value specifies the maximum the Server can support under normal circumstances, therefore there is no guarantee the Server can always support the maximum.
MaxWhereClauseParameters is an integer specifying the maximum number of EventField WhereClause Parameters the Server can support for an EventFilter. The value specifies the maximum the Server can support under normal circumstances, therefore there is no guarantee the Server can always support the maximum.
MaxMonitoredItemsQueueSize is an integer specifying the maximum size of data MonitoredItem queues. The value specifies the maximum the Server can support under normal circumstances, therefore there is no guarantee the Server can always support the maximum.
When a vendor can not determine a limit of an optional component then the component shall not be included.
When vendors expose their own capabilities, they should add additional Nodes to the standard ServerCapabilities Object instance.
The <VendorCapability> Variable is used to provide information about the server-specific capabilities.
ConformanceUnits is a QualifiedName array specifying the set of conformance units the Server supports. This list should be limited to the ConformanceUnits the Server supports in its current configuration.
This ObjectType defines diagnostic information about the OPC UA Server. This ObjectType is 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 |
Conformance Units |
||||
Base Info ServerType |
ServerDiagnosticsSummary contains diagnostic summary information for the Server, as defined in 12.9.
SamplingIntervalDiagnosticsArray is 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 TypeDefinitionNode is the VariableType SamplingIntervalDiagnosticsArrayType, providing a Variable for each entry in the array, as defined in 7.9.
The sampling interval diagnostics are only collected by Servers which use a fixed set of sampling intervals. In these cases, length of the array and the set of contained Variables will be determined by the Server configuration and the NodeId assigned to a given sampling interval diagnostics variable shall not change as long as the Server configuration does not change. A Server may 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 TypeDefinitionNode is the VariableType SubscriptionDiagnosticsArrayType, providing a Variable for each entry in the array as defined in 7.11. Those Variables are also used as Variables referenced 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 Server collects 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 Server can return Bad_NodeIdUnknown for all static diagnostic Nodes except the EnabledFlag Property. Dynamic diagnostic Nodes (such as the Session Nodes) will not appear in the AddressSpace.
If the collection of diagnostic information is not supported, the EnabledFlag Property will be read only.
This ObjectType defines diagnostic information about the sessions of the OPC UA Server. This ObjectType is 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 |
|
Conformance Units |
|||||
Base Info ServerType |
SessionDiagnosticsArray provides an array with an entry for each session in the Server having general diagnostic information about a session.
SessionSecurityDiagnosticsArray provides an array with an entry for each active session in the Server having 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 over encrypted channels.
For each session of the Server, this Object also provides an Object representing the session, indicated by <ClientName>. The BrowseName could be derived from the sessionName defined in the CreateSession Service (OPC 10000-4) or some other server-specific mechanisms. It is of the ObjectType SessionDiagnosticsObjectType, as defined in 6.3.5.
This ObjectType defines diagnostic information about a session of the OPC UA Server. This ObjectType is 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 |
|
Conformance Units |
|||||
Base Info ServerType |
SessionDiagnostics contains general diagnostic information about the session; the SessionSecurityDiagnostics Variable contains security-related diagnostic information. Because the information of the second Variable is 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 TypeDefinitionNode is the VariableType SubscriptionDiagnosticsArrayType providing a Variable for each entry in the array, as defined in 7.11.
This ObjectType defines a placeholder Object for vendor-specific information about the OPC UA Server. This ObjectType defines an empty ObjectType that has no components. It should be subtyped by vendors to define their vendor-specific information. This ObjectType is 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 |
|||||
Conformance Units |
|||||
Base Info ServerType |
This ObjectType defines 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 |
HasProperty |
Variable |
RedundantServerArray |
RedundantServerDataType[] |
PropertyType |
Optional |
Conformance Units |
|||||
Base Info ServerType |
RedundancySupport indicates what redundancy is supported by the Server. Its values are defined in 12.5. It shall be set to NONE for all instances of the ServerRedundancyType using the ObjectType directly (no subtype).
The RedundantServerArray contains an array of available Servers in the Redundant Set; including their service levels (see 12.7). This array may change during a Session; the order of the array elements shall always be the same order as the array elements of the ServerUriArray Variable.
This ObjectType is a subtype of ServerRedundancyType and is used to identify the capabilities of the OPC UA Server for 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 |
|
Conformance Units |
||||||
Redundancy Server Transparent |
RedundancySupport is 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 Servers serve 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 Server in the Redundant Set. This Server is valid only inside a Session; if a Client opens several Sessions, different Servers of the redundant set of Servers may serve it in different Sessions. The value of the CurrentServerId may change due to Failover or load balancing, so a Client that needs to track its data source shall subscribe to this Variable.
As diagnostic information, the RedundantServerArray contains an array of available Servers in the Redundant Set; including their service levels (see 12.7). This array may change during a Session.
This ObjectType is a subtype of ServerRedundancyType and is used to identify the capabilities of the OPC UA Server for 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 |
Conformance Units |
|||||
Redundancy Server |
RedundancySupport is inherited from the ServerRedundancyType. It shall be set to COLD, WARM, HOT or HOT_AND_MIRRORED 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 ObjectType is a subtype of NonTransparentRedundancyType and is used to identify the capabilities of the OPC UA Server for 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 |
|
Conformance Units |
||||||
Redundancy Server |
Clients switching between network paths to the same Server behave the same as HotAndMirrored redundancy. Server and network redundancy can be combined. In the combined approach it is important for the Client to know which ServerUris belong to the same Server representing different network paths and which ServerUris represent different Servers. Therefore, a Server implementing non-transparent network redundancy shall use the NonTransparentNetworkRedundancyType to identify its redundancy support.
RedundancySupport is inherited from the ServerRedundancyType. It shall be set to COLD, WARM, HOT or HOT_AND_MIRRORED for all instances of the NonTransparentNetworkRedundancyType. If no Server redundancy is supported (the ServerUriArray only contains one entry), the RedundancySupport shall be set to HOT_AND_MIRRORED.
The ServerNetworkGroups contains an array of NetworkGroupDataType. The URIs of the Servers in that array (in the serverUri of 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 Server only supports network redundancy, it has only one entry in the ServerNetworkGroups. The networkPaths in the structure represents the redundant network paths for each of the Servers. The networkPaths describes 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 an Endpoint. This allows using different protocol options for the same network path.
The Endpoints provided shall match with the Endpoints provided by the GetEndpoints Service of the corresponding Server.
This ObjectType is a subtype of FolderType and 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 |
Conformance Units |
|||||
Base Info ServerType |
Any operational limits Property that is provided shall have a non zero value.
The MaxNodesPerRead Property indicates the maximum size of the nodesToRead array when a Client calls the Read Service.
The MaxNodesPerHistoryReadData Property indicates the maximum size of the nodesToRead array when a Client calls the HistoryRead Service using the historyReadDetails RAW, PROCESSED, MODIFIED, or ATTIME.
The MaxNodesPerHistoryReadEvents Property indicates the maximum size of the nodesToRead array when a Client calls the HistoryRead Service using the historyReadDetails EVENTS.
The MaxNodesPerWrite Property indicates the maximum size of the nodesToWrite array when a Client calls the Write Service.
The MaxNodesPerHistoryUpdateData Property indicates the maximum size of the historyUpdateDetails array supported by the Server when a Client calls the HistoryUpdate Service.
The MaxNodesPerHistoryUpdateEvents Property indicates the maximum size of the historyUpdateDetails array when a Client calls the HistoryUpdate Service.
The MaxNodesPerMethodCall Property indicates the maximum size of the methodsToCall array when a Client calls the Call Service.
The MaxNodesPerBrowse Property indicates the maximum size of the nodesToBrowse array when calling the Browse Service or the continuationPoints array when a Client calls the BrowseNext Service.
The MaxNodesPerRegisterNodes Property indicates the maximum size of the nodesToRegister array when a Client calls the RegisterNodes Service and the maximum size of the nodesToUnregister when calling the UnregisterNodes Service.
The MaxNodesPerTranslateBrowsePathsToNodeIds Property indicates the maximum size of the browsePaths array when a Client calls the TranslateBrowsePathsToNodeIds Service.
The MaxNodesPerNodeManagement Property indicates the maximum size of the nodesToAdd array when a Client calls the AddNodes Service, the maximum size of the referencesToAdd array when a Client calls the AddReferences Service, the maximum size of the nodesToDelete array when a Client calls the DeleteNodes Service, and the maximum size of the referencesToDelete array when a Client calls the DeleteReferences Service.
The MaxMonitoredItemsPerCall Property indicates
- the maximum size of the itemsToCreate array when a Client calls the CreateMonitoredItems Service,
- the maximum size of the itemsToModify array when a Client calls the ModifyMonitoredItems Service,
- the maximum size of the monitoredItemIds array when a Client calls the SetMonitoringMode Service or the DeleteMonitoredItems Service,
- the maximum size of the sum of the linksToAdd and linksToRemove arrays when a Client calls the SetTriggering Service.
This ObjectType defines 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 OPC 10000-20 |
|||||
HasComponent |
Method |
ExportNamespace |
The method has no parameters. |
Optional |
|
Conformance Units |
|||||
Base Info ServerType |
The ExportNamespace Method provides a way to export the namespace from the Server AddressSpace to the XML file represented by the AddressSpaceFileType. Value Attributes are only exported if they represent static configuration information. The client is expected to call the ExportNamespace Method first to update the XML file and then access the file with the Methods defined in the FileType.
Servers might provide some vendor-specific mechanisms importing parts of an address space as subtype of this ObjectType, for example by defining appropriate Methods.
This ObjectType defines the metadata for a namespace provided by the Server. It is formally defined in Table 21.
Instances of this Object allow Servers to provide more information like version information in addition to the namespace URI. Important information for aggregating Servers is 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 |
HasProperty |
Variable |
ConfigurationVersion |
VersionTime |
PropertyType |
Optional |
HasProperty |
Variable |
ModelVersion |
SemanticVersionString |
PropertyType |
Optional |
Conformance Units |
|||||
Base Info ServerType |
The BrowseName of 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 NamespaceArray as NamespaceIndex of the QualifiedName and the namespace URI as name of the QualifiedName.
The NamespaceUri Property contains the namespace represented by an instance of the MetaDataType.
The NamespaceVersion Property provides 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 Property shall be set to a null String.
The NamespacePublicationDate Property provides the publication date of the namespace version. This Property value can be used by Clients to determine the latest version if different versions are provided by different Servers when the ModelVersion is not provided. If there is no formal publication date defined for the namespace this Property shall be set to a null DateTime.
The IsNamespaceSubset Property defines whether all Nodes of the namespace are accessible in the Server or 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 Property shall be set to TRUE.
Static Nodes are identical for all Attributes in all Servers, including the Value Attribute. For TypeDefinitionNodes, also the InstanceDeclarations shall be identical. That means that for static Nodes the semantic is always the same. Namespaces with static Nodes are 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 Servers the aggregating Server needs to distinguish the namespace for each aggregated Server. The static Nodes of a namespace only need to be handled once, even if they are used by several aggregated Servers.
The StaticNodeIdTypes Property provides a list of IdTypes used for static Nodes. All Nodes in the AddressSpace of the namespace using one of the IdTypes in the array shall be static Nodes.
The StaticNumericNodeIdRange Property provides a list of NumericRanges used for numeric NodeIds of static Nodes. If the StaticNodeIdTypes Property contains an entry for numeric NodeIds then this Property is ignored.
The StaticStringNodeIdPattern Property provides a regular expression as defined for the Like Operator defined in OPC 10000-4 to filter for string NodeIds of static Nodes. If the StaticNodeIdTypes Property contains an entry for string NodeIds then this Property is ignored.
The Object NamespaceFile contains all Nodes and References of 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 Property provides the default permissions if a Server supports RolePermissions for the Namespace. A Node in the Namespace overrides this default by adding a RolePermissions Attribute to the Node. If a Server implements a vendor-specific RolePermissions model for a Namespace, it does not add the DefaultRolePermissions Property to the NamespaceMetadata Object.
The DefaultUserRolePermissions Property provides the default user permissions if a Server supports UserRolePermissions for the Namespace. A Node in the Namespace overrides this default by adding a UserRolePermissions Attribute to the Node. If a Server implements a vendor-specific UserRolePermissions model for a Namespace, it does not add the DefaultUserRolePermissions Property to the NamespaceMetadata Object.
The DefaultAccessRestrictions Property is present if a Server supports AccessRestrictions for the Namespace and provides the defaults. A Node in the Namespace overrides this default by adding a AccessRestrictions Attribute to the Node. If a Server implements a vendor-specific AccessRestriction model for a Namespace, it does not add the DefaultAccessRestrictions Property to the NamespaceMetadata Object.
The optional ConfigurationVersion Property indicates the current configuration of all Nodes of this Namespace. A Node of this Namespace is identified by having the corresponding NamespaceIndex in the NodeId. A Client can use the ConfigurationVersion Property in conjunction with the Constant Field of the AccessLevelEx Attribute, defined in OPC 10000-3, to optimize the use of Variables which have a constant value.
The optional ModelVersion Property indicates the InformationModel version expressed as a SemanticVersionString allowing programmatic comparisons.
This ObjectType defines a list of NamespaceMetadataType Objects provided 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 |
Conformance Units |
|||||
Base Info ServerType |
The ObjectType contains a list of NamespaceMetadataType Objects representing the namespaces in the Server. The BrowseName of an Object shall be derived from the namespace represented by the Object. This can, for example, be done by using the index of the namespace in the NamespaceArray as NamespaceIndex of the QualifiedName and the namespace URI as name of the QualifiedName. Clients should not assume that all namespaces provided by a Server are present in this list as a namespace may not provide the information necessary to fill all mandatory Properties of the NamespaceMetadataType.
This ObjectType is a subtype of NonTransparentRedundancyType intended to be used to identify the capabilities of the Servers which support non-transparent primary with backup redundancy. It is formally defined in Table 23.
A Server represented by this Type shall use the Warm Failover mode defined in OPC 10000-4.
Table 23 – NonTransparentBackupRedundancyType definition
Attribute |
Value |
||||
BrowseName |
NonTransparentBackupRedundancyType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of the NonTransparentRedundancyType defined in 6.3.9. |
|||||
HasProperty |
Variable |
RedundantServerArray |
RedundantServerDataType[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
Mode |
RedundantServerMode |
PropertyType |
Mandatory |
HasComponent |
Method |
Failover |
The method has no parameters. |
Mandatory |
|
Conformance Units |
|||||
Redundancy Server |
The Mode Property represents the current operating mode of a Server in a non-transparent redundant server set. It is an enumeration defined in 12.44. This Property is used to indicate the availability status of backup Servers. A Server operating in primary mode provides the availability status of backup Servers and a Server operating in backup mode provides its ability to take over the primary operating mode. A Server operating in BACKUP_READY, BACKUP_NOT_READY or PRIMARY_ONLY mode shall use a ServiceLevel in the degraded range. A Server shall use a higher ServiceLevel value for BACKUP_READY than BACKUP_NOT_READY.
The Failover Method is used to request a manual transfer of primary and backup modes. This method has no arguments. This Method call may be directed to a primary or a backup Server. When called on the primary and more than one backup is ready to take over the primary will use some vendor specific logic to determine which backup will assume the primary mode. When called on a backup which is ready to take over, it will become the primary. The Server should set the Executable Attribute of this method to indicate if the failover is currently possible.
Signature
Failover(
);
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_InvalidState |
Defined in OPC 10000-4 This is returned when the failover failed due to the current RedundantServerMode mode of a primary being PRIMARY_ONLY or a backup being BACKUP_NOT_READY. |
Bad_UserAccessDenied |
Defined in OPC 10000-4 |