Typically, the components of an ObjectType are fixed and can be extended by subtyping. However, since each Object of an ObjectType can be extended with additional components, this standard allows extending the standard ObjectTypes defined in this document with additional components. Thereby, it is possible to express the additional information in the type definition that would already be contained in each Object. Some ObjectTypes already provide entry points for server-specific extensions. However, it is not allowed to restrict the components of the standard ObjectTypes defined in this standard. An example of extending the ObjectTypes is putting the standard Property NodeVersion defined in OPC 10000-3 into the BaseObjectType, stating that each Object of the Server will provide a NodeVersion.
The BaseObjectType is used as type definition whenever there is an Object having no more concrete type definitions available. Servers should avoid using this ObjectType and use a more specific type, if possible. This ObjectType is the base ObjectType and all other ObjectTypes shall either directly or indirectly inherit from it. However, it might not be possible for Servers to provide all HasSubtype References from this ObjectType to its subtypes, and therefore it is not required to provide this information.
There are no References specified for this ObjectType. It is formally defined in Table 8.
Table 8 – BaseObjectType definition
Attribute |
Value |
|||||
BrowseName |
BaseObjectType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Conformance Units |
||||||
Base Info Base Types |
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 |
This document defines standard EventTypes. They are represented in the AddressSpace as ObjectTypes. The EventTypes are already defined in OPC 10000-3. The following subclauses specify their representation in the AddressSpace.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 24.
Table 24 – BaseEventType definition
Attribute |
Value |
|||||
BrowseName |
BaseEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseObjectType defined in 6.2 |
||||||
HasProperty |
Variable |
EventId |
ByteString |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
EventType |
NodeId |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
SourceNode |
NodeId |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
SourceName |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
Time |
UtcTime |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ReceiveTime |
UtcTime |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
LocalTime |
TimeZoneDataType |
PropertyType |
Optional |
|
HasProperty |
Variable |
Message |
LocalizedText |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
Severity |
UInt16 |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ConditionClassId |
NodeId |
PropertyType |
Optional |
|
HasProperty |
Variable |
ConditionClassName |
LocalizedText |
PropertyType |
Optional |
|
HasProperty |
Variable |
ConditionSubClassId |
NodeId[] |
PropertyType |
Optional |
|
HasProperty |
Variable |
ConditionSubClassName |
LocalizedText[] |
PropertyType |
Optional |
|
Conformance Units |
||||||
Address Space Events |
EventId is generated by the Server to uniquely identify a particular Event Notification. The Server is responsible to ensure that each Event has its unique EventId. It may do this, for example, by putting GUIDs into the ByteString. Clients can use the EventId to assist in minimizing or eliminating gaps and overlaps that may occur during a redundancy failover. The EventId shall always be returned as value and the Server is not allowed to return a StatusCode for the EventId indicating an error.
EventType describes the specific type of Event. The EventType shall always be returned as value and the Server is not allowed to return a StatusCode for the EventType indicating an error.
The SourceNode Property identifies the Node that the Event originated from. If the Event is not specific to a Node the NodeId is set to null. Some subtypes of this BaseEventType may define additional rules for the SourceNode Property.
SourceName provides a description of the source of the Event. This could be the string-part of the DisplayName of the Event source using the default locale of the server, if the Event is specific to a Node, or some server-specific notation.
Time provides the time the Event occurred. This value is set as close to the event generator as possible. It often comes from the underlying system or device. Once set, intermediate OPC UA Servers shall not alter the value.
ReceiveTime provides the time the OPC UA Server received the Event from the underlying device of another Server. ReceiveTime is analogous to ServerTimestamp defined in OPC 10000-4, i.e. in the case where the OPC UA Server gets an Event from another OPC UA Server, each Server applies its own ReceiveTime. That implies that a Client may get the same Event, having the same EventId, from different Servers having different values of the ReceiveTime. The ReceiveTime shall always be returned as value and the Server is not allowed to return a StatusCode for the ReceiveTime indicating an error.
LocalTime is a structure containing the Offset and the DaylightSavingInOffset flag. The Offset specifies the time difference (in minutes) between the Time Property and the time at the location in which the event was issued. If DaylightSavingInOffset is TRUE, then Standard/Daylight savings time (DST) at the originating 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 have been in effect.
Message provides a human-readable and localizable text description of the Event. The Server may return any appropriate text to describe the Event. A null string is not a valid value; if the Server does not have a description, it shall return the string part of the BrowseName of the Node associated with the Event.
Severity is an indication of the urgency of the Event. This is also commonly called "priority". Values will range from 1 to 1 000, with 1 being the lowest severity and 1 000 being the highest. Typically, a severity of 1 would indicate an Event which is informational in nature, while a value of 1 000 would indicate an Event of catastrophic nature, which could potentially result in severe financial loss or loss of life.
It is expected that very few Server implementations will support 1 000 distinct severity levels. Therefore, Server developers are responsible for distributing their severity levels across the 1 to 1 000 range in such a manner that clients can assume a linear distribution. For example, a client wishing to present five severity levels to a user should be able to do the following mapping:
Client Severity |
OPC Severity |
HIGH |
801 to 1 000 |
MEDIUM HIGH |
601 to 800 |
MEDIUM |
401 to 600 |
MEDIUM LOW |
201 to 400 |
LOW |
1 to 200 |
In many cases a strict linear mapping of underlying source severities to the OPC Severity range is not appropriate. The Server developer will instead intelligently map the underlying source severities to the 1 to 1 000 OPC Severity range in some other fashion. In particular, it is recommended that Server developers map Events of high urgency into the OPC severity range of 667 to 1 000, Events of medium urgency into the OPC severity range of 334 to 666 and Events of low urgency into OPC severities of 1 to 333.
For example, if a source supports 16 severity levels that are clustered such that severities 0 to 2 are considered to be LOW, 3 to 7 are MEDIUM and 8 to 15 are HIGH, then an appropriate mapping might be as follows:
OPC Range |
Source Severity |
OPC Severity |
HIGH (667 to 1 000) |
15 |
1 000 |
14 |
955 |
13 |
910 |
12 |
865 |
11 |
820 |
10 |
775 |
9 |
730 |
8 |
685 |
MEDIUM (334 to 666) |
7 |
650 |
6 |
575 |
5 |
500 |
4 |
425 |
3 |
350 |
LOW (1 to 333) |
2 |
300 |
1 |
150 |
0 |
1 |
Some Servers might not support any Events which are catastrophic in nature, so they may choose to map all of their severities into a subset of the 1 to 1 000 range (for example, 1 to 666). Other Servers might not support any Events which are merely informational, so they may choose to map all of their severities into a different subset of the 1 to 1 000 range (for example, 334 to 1 000).
The purpose of this approach is to allow clients to use severity values from multiple Servers from different vendors in a consistent manner. Additional discussions of severity can be found in OPC 10000-9.
ConditionClassId specifies in which domain this Event is used. It is the NodeId of the corresponding subtype of BaseConditionClassType. See OPC 10000-9 for the definition of ConditionClass and a set of ConditionClasses defined in this standard. When using this Property for filtering, Clients have to specify all individual subtypes of BaseConditionClassType NodeIds. The OfType operator cannot be applied. BaseConditionClassType is used as class whenever an Event cannot be assigned to a more concrete class.
ConditionClassName provides the DisplayName of the of the ConditionClassType provided in the ConditionClassId.
ConditionSubClassId specifies additional class[es] that apply to the Event. It is the NodeId of the corresponding subtype of BaseConditionClassType. See OPC 10000-9 for the definition of ConditionClass and a set of ConditionClasses defined in this standard. When using this Property for filtering, Clients have to specify all individual sub types of BaseConditionClassType NodeIds. The OfType operator cannot be applied. The Client specifies a NULL in the filter, to return Events where no sub class is applied. When returning Events, if this optional field is not available in an Event, a NULL shall be returned for the field.
ConditionSubClassName provides the DisplayName[s] of the ConditionClassType[s] listed in the ConditionSubClassId.
The BrowseNames of the ConditionClassId, ConditionClassName, ConditionSubClassId, and ConditionSubClassName Properties originated from OPC 10000-9. They have now been generalized to also apply to Events, however to preserve backward compatibility the names have been preserved.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 25.
Table 25 – AuditEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseEventType defined in 6.4.2, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
ActionTimeStamp |
UtcTime |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
Status |
Boolean |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ServerId |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ClientAuditEntryId |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ClientUserId |
String |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Connections |
||||||
Auditing NodeManagement |
||||||
Auditing History Services |
||||||
Auditing Write |
||||||
Auditing Method |
This EventType inherits all Properties of the BaseEventType. Their semantic is defined in 6.4.2.
ActionTimeStamp identifies the time the user initiated the action that resulted in the AuditEvent being generated. It differs from the Time Property because this is the time the server generated the AuditEvent documenting the action.
Status identifies whether the requested action could be performed (set Status to TRUE) or not (set Status to FALSE).
ServerId uniquely identifies the Server generating the Event. It identifies the Server uniquely even in a server-controlled transparent redundancy scenario where several Servers may use the same URI.
ClientAuditEntryId contains the human-readable AuditEntryId defined in OPC 10000-4. If the Server is unable to decrypt AuditEntryId due to a certificate check failure, then some Client identification should be used such as the Client’s IP Address, port, MAC address and/or DNS name as the ClientAuditEntryId.
The ClientUserId identifies the user of the client requesting an action. The ClientUserId can be obtained from the UserIdentityToken passed in the ActivateSession call. If the UserIdentityToken is a UserNameIdentityToken then the ClientUserId is the UserName. If the UserIdentityToken is an X509IdentityToken then the ClientUserId is the X509 Subject Name of the Certificate. If the UserIdentityToken is an IssuedIdentityToken then the ClientUserId shall be a string that represents the owner of the token. The best choice for the string depends on the type of IssuedIdentityToken. If an AnonymousIdentityToken was used, the value is null. For a SessionlessInvoke Service invocation the ClientUserId shall be a string that represents the owner of the authenticationToken in the requestHeader of the Service invocation such as the name field of a JWT IssuedIdentityToken.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 26.
Table 26 – AuditSecurityEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditSecurityEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditEventType defined in 6.4.3, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
StatusCodeId |
StatusCode |
PropertyType |
Optional |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditEventType. Their semantic is defined in 6.4.3.
The optional StatusCodeId Property provides the exact security error responsible for producing the Event.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 27.
Table 27 – AuditChannelEventType definition
Attribute |
Value |
||||
BrowseName |
AuditChannelEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the AuditSecurityEventType defined in 6.4.4, which means it inherits the InstanceDeclarations of that Node. |
|||||
HasProperty |
Variable |
SecureChannelId |
String |
PropertyType |
Mandatory |
Conformance Units |
|||||
Auditing Connections |
This EventType inherits all Properties of the AuditSecurityEventType. Their semantic is defined in 6.4.4. The SourceNode Property for Events of this type shall be assigned to the Server Object. The SourceName for Events of this type shall be "SecureChannel/" and the Service that generates the Event (e.g. SecureChannel/OpenSecureChannel or SecureChannel/CloseSecureChannel). If the ClientUserId is not available for a CloseSecureChannel call, then this parameter shall be set to "System/CloseSecureChannel".
The SecureChannelId shall uniquely identify the SecureChannel. The application shall use the same identifier in all AuditEvents related to the Session Service Set (AuditCreateSessionEventType, AuditActivateSessionEventType and their subtypes) and the SecureChannel Service Set (AuditChannelEventType and its subtypes).
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 28.
Table 28 – AuditOpenSecureChannelEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditOpenSecureChannelEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditChannelEventType defined in 6.4.5, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
ClientCertificate |
ByteString |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ClientCertificateThumbprint |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
RequestType |
SecurityTokenRequestType |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
SecurityPolicyUri |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
SecurityMode |
MessageSecurityMode |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
RequestedLifetime |
Duration |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
CertificateErrorEventId |
ByteString |
PropertyType |
Optional |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditChannelEventType. Their semantic is defined in 6.4.5. The SourceName for Events of this type shall be "SecureChannel/OpenSecureChannel". The ClientUserId is not available for this call, thus this parameter shall be set to "System/OpenSecureChannel".
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
ClientCertificate is the clientCertificate parameter of the OpenSecureChannel Service call.
ClientCertificateThumbprint is a thumbprint of the ClientCertificate. See OPC 10000-6 for details on thumbprints.
RequestType is the requestType parameter of the OpenSecureChannel Service call.
SecurityPolicyUri is the securityPolicyUri parameter of the OpenSecureChannel Service call.
SecurityMode is the securityMode parameter of the OpenSecureChannel Service call.
RequestedLifetime is the requestedLifetime parameter of the OpenSecureChannel Service call.
CertificateErrorEventId is the EventId of the corresponding AuditCertificateEventType Event used to report a certificate error.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 29.
Table 29 – AuditSessionEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditSessionEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditSecurityEventType defined in 6.4.4, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
SessionId |
NodeId |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditSecurityEventType. Their semantic is defined in 6.4.4.
If the Event is generated by a TransferSubscriptions Service call, the SourceNode Property shall be assigned to the SessionDiagnostics Object that represents the session. The SourceName for Events of this type shall be "Session/TransferSubscriptions".
Otherwise, the SourceNode Property for Events of this type shall be assigned to the Server Object. The SourceName for Events of this type shall be "Session/" and the Service or cause that generates the Event (e.g. CreateSession, ActivateSession or CloseSession).
The SessionId shall contain the SessionId of the session that the Service call was issued on In the CreateSession Service this shall be set to the newly created SessionId. If no session context exists (e.g. for a failed CreateSession Service call) the SessionId shall be null.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 30.
Table 30 – AuditCreateSessionEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditCreateSessionEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditSessionEventType defined in 6.4.7, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
SecureChannelId |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ClientCertificate |
ByteString |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ClientCertificateThumbprint |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
RevisedSessionTimeout |
Duration |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditSessionEventType. Their semantic is defined in 6.4.7. The SourceName for Events of this type shall be "Session/CreateSession". The ClientUserId is not available for this call thus this parameter shall be set to the "System/CreateSession".
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
SecureChannelId shall uniquely identify the SecureChannel. The application shall use the same identifier in all AuditEvents related to the Session Service Set (AuditCreateSessionEventType, AuditActivateSessionEventType and their subtypes) and the SecureChannel Service Set (AuditChannelEventType and its subtypes).
ClientCertificate is the clientCertificate parameter of the CreateSession Service call.
ClientCertificateThumbprint is a thumbprint of the ClientCertificate. See OPC 10000-6 for details on thumbprints.
RevisedSessionTimeout is the returned revisedSessionTimeout parameter of the CreateSession Service call.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 31.
Table 31 – AuditUrlMismatchEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditUrlMismatchEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditCreateSessionEventType defined in 6.4.8 which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
EndpointUrl |
String |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditSessionEventType. Their semantic is defined in 6.4.8.
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
EndpointUrl is the endpointUrl parameter of the CreateSession Service call.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 32.
Table 32 – AuditActivateSessionEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditActivateSessionEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditSessionEventType defined in 6.4.7, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
ClientSoftwareCertificates |
SignedSoftwareCertificate[] |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
UserIdentityToken |
UserIdentityToken |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
SecureChannelId |
String |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditSessionEventType. Their semantic is defined in 6.4.7. The SourceName for Events of this type shall be "Session/ActivateSession".
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
ClientSoftwareCertificates is the clientSoftwareCertificates parameter of the ActivateSession Service call.
UserIdentityToken reflects the userIdentityToken parameter of the ActivateSession Service call. For Username/Password tokens the password shall not be included.
SecureChannelId shall uniquely identify the SecureChannel. The application shall use the same identifier in all AuditEvents related to the Session Service Set (AuditCreateSessionEventType, AuditActivateSessionEventType and their subtypes) and the SecureChannel Service Set (AuditChannelEventType and its subtypes).
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 33.
Table 33 – AuditCancelEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditCancelEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditSessionEventType defined in 6.4.7, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
RequestHandle |
UInt32 |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditSessionEventType. Their semantic is defined in 6.4.7. The SourceName for Events of this type shall be "Session/Cancel".
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
RequestHandle is the requestHandle parameter of the Cancel Service call.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 34.
Table 34 – AuditCertificateEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditCertificateEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditSecurityEventType defined in 6.4.7, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
Certificate |
ByteString |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditSecurityEventType. Their semantic is defined in 6.4.4. The SourceName for Events of this type shall be "Security/Certificate".
Certificate is any certificate validated by a Server that encountered a validation issue (i.e. users, applications, etc.). Additional subtypes of this EventType will be defined representing the individual validation errors. This certificate can be matched to the Service that passed it (Session or SecureChannel Service Set) since the AuditEvents for these Services also included the Certificate.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 35.
Table 35 – AuditCertificateDataMismatchEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditCertificateDataMismatchEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditCertificateEventType defined in 6.4.12, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
InvalidHostname |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
InvalidUri |
String |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditCertificateEventType. Their semantic is defined in 6.4.12. The SourceName for Events of this type shall be "Security/Certificate".
InvalidHostname is the string that represents the host name passed in as part of the URL that is found to be invalid. If the host name was not invalid it can be null.
InvalidUri is the URI that was passed in and found to not match what is contained in the certificate. If the URI was not invalid it can be null.
Either the InvalidHostname or InvalidUri shall be provided.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 36.
Table 36 – AuditCertificateExpiredEventType definition
Attribute |
Value |
||||
BrowseName |
AuditCertificateExpiredEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the AuditCertificateEventType defined in 6.4.12, which means it inherits the InstanceDeclarations of that Node. |
|||||
Conformance Units |
|||||
Auditing Connections |
This EventType inherits all Properties of the AuditCertificateEventType. Their semantic is defined in 6.4.12. The SourceName for Events of this type shall be "Security/Certificate". The Message Variable shall include a description of why the certificate was expired (i.e. time before start or time after end). There are no additional Properties defined for this EventType.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 37.
Table 37 – AuditCertificateInvalidEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditCertificateInvalidEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditCertificateEventType defined in 6.4.12, which means it inherits the InstanceDeclarations of that Node. |
||||||
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditCertificateEventType. Their semantic is defined in 6.4.12. The SourceName for Events of this type shall be "Security/Certificate". The Message shall include a description of why the certificate is invalid. There are no additional Properties defined for this EventType.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 38.
Table 38 – AuditCertificateUntrustedEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditCertificateUntrustedEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditCertificateEventType defined in 6.4.12, which means it inherits the InstanceDeclarations of that Node. |
||||||
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditCertificateEventType. Their semantic is defined in 6.4.12. The SourceName for Events of this type shall be "Security/Certificate". The Message Variable shall include a description of why the certificate is not trusted. If a trust chain is involved then the certificate that failed in the trust chain should be described. There are no additional Properties defined for this EventType.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 39.
Table 39 – AuditCertificateRevokedEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditCertificateRevokedEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditCertificateEventType defined in 6.4.12, which means it inherits the InstanceDeclarations of that Node. |
||||||
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditCertificateEventType. Their semantic is defined in 6.4.12. The SourceName for Events of this type shall be "Security/Certificate". The Message Variable shall include a description of why the certificate is revoked (was the revocation list unavailable or was the certificate on the list). There are no additional Properties defined for this EventType.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 40.
Table 40 – AuditCertificateMismatchEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditCertificateMismatchEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditCertificateEventType defined in 6.4.12, which means it inherits the InstanceDeclarations of that Node. |
||||||
Conformance Units |
||||||
Auditing Connections |
This EventType inherits all Properties of the AuditCertificateEventType. Their semantic is defined in 6.4.12. The SourceName for Events of this type shall be "Security/Certificate". The Message Variable shall include a description of misuse of the certificate. There are no additional Properties defined for this EventType.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 41.
Table 41 – AuditNodeManagementEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditNodeManagementEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditEventType defined in 6.4.3, which means it inherits the InstanceDeclarations of that Node. |
||||||
Conformance Units |
||||||
Auditing NodeManagement |
This EventType inherits all Properties of the AuditEventType. Their semantic is defined in 6.4.3. There are no additional Properties defined for this EventType. The SourceNode Property for Events of this type shall be assigned to the Server Object. The SourceName for Events of this type shall be "NodeManagement/" and the Service that generates the Event (e.g. AddNodes, AddReferences, DeleteNodes, DeleteReferences).
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 42.
Table 42 – AuditAddNodesEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditAddNodesEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditNodeManagementEventType defined in 6.4.19, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
NodesToAdd |
AddNodesItem[] |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing NodeManagement |
This EventType inherits all Properties of the AuditNodeManagementEventType. Their semantic is defined in 6.4.19. The SourceName for Events of this type shall be "NodeManagement/AddNodes".
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
NodesToAdd is the NodesToAdd parameter of the AddNodes Service call.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 43.
Table 43 – AuditDeleteNodesEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditDeleteNodesEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditNodeManagementEventType defined in 6.4.19, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
NodesToDelete |
DeleteNodesItem[] |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing NodeManagement |
This EventType inherits all Properties of the AuditNodeManagementEventType. Their semantic is defined in 6.4.19. The SourceName for Events of this type shall be "NodeManagement/DeleteNodes".
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
NodesToDelete is the nodesToDelete parameter of the DeleteNodes Service call.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 44.
Table 44 – AuditAddReferencesEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditAddReferencesEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditNodeManagementEventType defined in 6.4.19, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
ReferencesToAdd |
AddReferencesItem[] |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing NodeManagement |
This EventType inherits all Properties of the AuditNodeManagementEventType. Their semantic is defined in 6.4.19. The SourceName for Events of this type shall be "NodeManagement/AddReferences".
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
ReferencesToAdd is the referencesToAdd parameter of the AddReferences Service call.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 45.
Table 45 – AuditDeleteReferencesEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditDeleteReferencesEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditNodeManagementEventType defined in 6.4.19, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
ReferencesToDelete |
DeleteReferencesItem[] |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing NodeManagement |
This EventType inherits all Properties of the AuditNodeManagementEventType. Their semantic is defined in 6.4.19. The SourceName for Events of this type shall be "NodeManagement/DeleteReferences".
The additional Properties defined for this EventType reflect parameters of the Service call that triggers the Event.
ReferencesToDelete is the referencesToDelete parameter of the DeleteReferences Service call.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 46.
Table 46 – AuditUpdateEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditUpdateEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditEventType defined in 6.4.3, which means it inherits the InstanceDeclarations of that Node. |
||||||
Conformance Units |
||||||
Auditing History Services |
||||||
Auditing Write |
This EventType inherits all Properties of the AuditEventType. Their semantic is defined in 6.4.3. The SourceNode Property for Events of this type shall be assigned to the NodeId that was changed. The SourceName for Events of this type shall be "Attribute/" and the Service that generated the event (e.g. Write, HistoryUpdate). Note that one Service call may generate several Events of this type, one per changed value.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 47.
Table 47 – AuditWriteUpdateEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditWriteUpdateEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditUpdateEventType defined in 6.4.24, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
AttributeId |
UInt32 |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
IndexRange |
NumericRange |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
NewValue |
BaseDataType |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
OldValue |
BaseDataType |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Write |
This EventType inherits all Properties of the AuditUpdateEventType. The SourceName for Events of this type shall be "Attribute/Write". Their semantic is defined in 6.4.24.
AttributeId identifies the Attribute that was written. The SourceNode Property identifies the Node that was written.
IndexRange identifies the index range of the written Attribute if the Attribute is an array. If the Attribute is not an array or the whole array was written, the IndexRange is set to null.
NewValue identifies the value that was written. If the IndexRange is provided, only the values in the provided range are shown.
OldValue identifies the value that the Attribute contained before the write. If the IndexRange is provided, only the value of that range is shown. It is acceptable for a Server that does not have this information to report a null value.
Both the NewValue and the OldValue will contain a value in the DataType and encoding used for writing the value.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 48.
Table 48 – AuditHistoryUpdateEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditHistoryUpdateEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditUpdateEventType defined in 6.4.24, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
ParameterDataTypeId |
NodeId |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing History Services |
This EventType inherits all Properties of the AuditUpdateEventType. Their semantic is defined in 6.4.24.
The ParameterDataTypeId identifies the DataTypeId for the extensible parameter used by the HistoryUpdate. This parameter indicates the type of HistoryUpdate being performed.
Subtypes of this EventType are defined in OPC 10000-11 representing the different possibilities to manipulate historical data.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 49.
Table 49 – AuditUpdateMethodEventType definition
Attribute |
Value |
|||||
BrowseName |
AuditUpdateMethodEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AuditEventType defined in 6.4.3, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
MethodId |
NodeId |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
InputArguments |
BaseDataType[] |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Auditing Method |
This EventType inherits all Properties of the AuditEventType. Their semantic is defined in 6.4.3. The SourceNode Property for Events of this type shall be assigned to the NodeId of the Object that the Method resides on. The SourceName for Events of this type shall be "Attribute/Call". Note that one Service call may generate several Events of this type, one per method called. This EventType should be further subtyped to better reflect the functionality of the method and to reflect changes to the address space or updated values triggered by the method.
MethodId identifies the method that was called.
InputArguments provide the values of the input Arguments passed to the method. This parameter can be null if no input arguments where provided.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 50.
Table 50 – SystemEventType definition
Attribute |
Value |
|||||
BrowseName |
SystemEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseEventType defined in 6.4.2, which means it inherits the InstanceDeclarations of that Node. |
||||||
Conformance Units |
||||||
Base Info Device Failure |
||||||
Base Info System Status Underlying System |
||||||
Base Info System Status |
This EventType inherits all Properties of the BaseEventType. Their semantic is defined in 6.4.2. There are no additional Properties defined for this EventType.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 51.
Table 51 – DeviceFailureEventType definition
Attribute |
Value |
|||||
BrowseName |
DeviceFailureEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the SystemEventType defined in 6.4.28, which means it inherits the InstanceDeclarations of that Node. |
||||||
Conformance Units |
||||||
Base Info Device Failure |
This EventType inherits all Properties of the SystemEventType. Their semantic is defined in 6.4.28. There are no additional Properties defined for this EventType.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 52.
Table 52 – SystemStatusChangeEventType definition
Attribute |
Value |
|||||
BrowseName |
SystemStatusChangeEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the SystemEventType defined in 6.4.28, which means it inherits the InstanceDeclarations of that Node. |
||||||
HasProperty |
Variable |
SystemState |
ServerState |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
Base Info System Status Underlying System |
||||||
Base Info System Status |
This EventType inherits all Properties of the SystemEventType. Their semantic is defined in 6.4.28. The SourceNode Property and the SourceName shall identify the system. The system can be the Server itself or some underlying system.
The SystemState specifies the current state of the system. Changes to the ServerState of the system shall trigger a SystemStatusChangeEvent, when the event is supported by the system.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 53.
Table 53 – BaseModelChangeEventType definition
Attribute |
Value |
||||
BrowseName |
BaseModelChangeEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the BaseEventType defined in 6.4.2, which means it inherits the InstanceDeclarations of that Node. |
|||||
Conformance Units |
|||||
Base Info Model Change |
This EventType inherits all Properties of the BaseEventType. Their semantic is defined in 6.4.2. There are no additional Properties defined for this EventType. The SourceNode Property for Events of this type shall be the Node of the View that gives the context of the changes. If the whole AddressSpace is the context, the SourceNode Property is set to the NodeId of the Server Object. The SourceName for Events of this type shall be the String part of the BrowseName of the View; for the whole AddressSpace it shall be "Server".
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 54.
Table 54 – GeneralModelChangeEventType definition
Attribute |
Value |
||||
BrowseName |
GeneralModelChangeEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the BaseModelChangeEventType defined in 6.4.31, which means it inherits the InstanceDeclarations of that Node. |
|||||
HasProperty |
Variable |
Changes |
ModelChangeStructureDataType[] |
PropertyType |
Mandatory |
Conformance Units |
|||||
Base Info Model Change General |
This EventType inherits all Properties of the BaseModelChangeEventType. Their semantic is defined in 6.4.31.
The additional Property defined for this EventType reflects the changes that issued the ModelChangeEvent. It shall contain at least one entry in its array. Its structure is defined in 12.16.
This EventType is defined in OPC 10000-3. Its representation in the AddressSpace is formally defined in Table 55.
Table 55 – SemanticChangeEventType definition
Attribute |
Value |
||||
BrowseName |
SemanticChangeEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the BaseEventType defined in 6.4.2, which means it inherits the InstanceDeclarations of that Node. |
|||||
HasProperty |
Variable |
Changes |
SemanticChangeStructureDataType[] |
PropertyType |
Mandatory |
Conformance Units |
|||||
Base Info SemanticChange |
This EventType inherits all Properties of the BaseEventType. Their semantic is defined in 6.4.2. The SourceNode Property for Events of this type shall be the Node of the View that gives the context of the changes. If the whole AddressSpace is the context, the SourceNode Property is set to the NodeId of the Server Object. The SourceName for Events of this type shall be the String part of the BrowseName of the View, for the whole AddressSpace it shall be "Server".
The additional Property defined for this EventType reflects the changes that issued the SemanticChangeEvent. Its structure is defined in 12.17.
EventQueueOverflow Events are generated when an internal queue of a MonitoredItem subscribing for Events in the Server overflows. OPC 10000-4 defines when the internal EventQueueOverflow Events shall be generated.
The EventType for EventQueueOverflow Events is formally defined in Table 56.
Table 56 – EventQueueOverflowEventType definition
Attribute |
Value |
||||
BrowseName |
EventQueueOverflowEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the BaseEventType defined in 6.4.2, which means it inherits the InstanceDeclarations of that Node. |
|||||
Conformance Units |
|||||
Base Info EventQueueOverflow EventType |
This EventType inherits all Properties of the BaseEventType. Their semantic is defined in 6.4.2. The SourceNode Property for Events of this type shall be assigned to the NodeId of the Server Object. The SourceName for Events of this type shall be "Internal/EventQueueOverflow".
ProgressEvents are generated to identify the progress of an operation. An operation can be a Service call or something application specific like a program execution.
The EventType for Progress Events is formally defined in Table 57.
Table 57 – ProgressEventType definition
Attribute |
Value |
||||
BrowseName |
ProgressEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the BaseEventType defined in 6.4.2, which means it inherits the InstanceDeclarations of that Node. |
|||||
HasProperty |
Variable |
Context |
BaseDataType |
PropertyType |
Mandatory |
HasProperty |
Variable |
Progress |
UInt16 |
PropertyType |
Mandatory |
Conformance Units |
|||||
Base Info Progress Events |
This EventType inherits all Properties of the BaseEventType. Their semantic is defined in 6.4.2. The SourceNode Property for Events of this type shall be assigned to the NodeId of the Session Object where the operation was initiated. The SourceName for Events of this type shall be "Service/<Service Name as defined in OPC 10000-4>" when the progress of a Service call is exposed.
The additional Property Context contains context information about what operation progress is reported. In the case of Service calls it shall be a UInt32 containing the requestHandle of the RequestHeader of the Service call.
The additional Property Progress contains the percentage completed of the progress. The value shall be between 0 and 100, where 100 identifies that the operation has been finished.
It is recommended that Servers only expose ProgressEvents for Service calls to the Session that invoked the Service.
This EventType is used for the categorization of Events generated by a Client. Its representation in the AddressSpace is formally defined in Table 58.
Table 58 – AuditClientEventType definition
Attribute |
Value |
||||
BrowseName |
AuditClientEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the AuditEventType defined in 6.4.3, which means it inherits the InstanceDeclarations of that Node. |
|||||
HasProperty |
Variable |
ServerUri |
UriString |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
Base Info Client Events |
This class of Audit Events are generated by Servers that also support Client functionality. They represent the Client actions taken by the Server.
This EventType inherits all Properties of the AuditEventType. Their semantics are defined in 6.4.3. The SourceNode Property for Events of this type shall be assigned to the NodeId of the Object that is related to the action. If no Object is related, then the SourceNode Property shall be the NodeId of the Server Object.
ServerUri provides the URI of the Server that the Client was accessing.
This EventType allows Method calls issued by a Client to be audited. Its representation in the AddressSpace is formally defined in Table 59.
Table 59 – AuditClientUpdateMethodResultEventType definition
Attribute |
Value |
||||
BrowseName |
AuditClientUpdateMethodResultEventType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the AuditClientEventType defined in 6.4.36, which means it inherits the InstanceDeclarations of that Node. |
|||||
HasProperty |
Variable |
ObjectId |
NodeId |
PropertyType |
Mandatory |
HasProperty |
Variable |
MethodId |
NodeId |
PropertyType |
Mandatory |
HasProperty |
Variable |
StatusCodeId |
StatusCode |
PropertyType |
Mandatory |
HasProperty |
Variable |
InputArguments |
BaseDataType[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
BaseDataType[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
Base Info Client Events |
This EventType inherits all Properties of the AuditClientEventType. Their semantics are defined in 6.4.36. The SourceName for Events of this type shall be "Client/Call". A single Client action may generate several Events of this type, one per Method called.
ObjectId identifies the Object on which the Method was called. The Object may be located on the same Server as the calling instance or on a remote Server.
MethodId identifies the method that was called.
StatusCodeId identifies the overall status returned by the Method Call.
InputArguments identifies the input Arguments for the method. This parameter can be null if no input arguments were provided.
OutputArguments identifies the output Arguments of the method. This parameter can be null if no output arguments where provided.
ModellingRules are defined in OPC 10000-3. This ObjectType is used as the type for the ModellingRules. It is formally defined in Table 60.
Table 60 – ModellingRuleType definition
Attribute |
Value |
|||||
BrowseName |
ModellingRuleType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseObjectType defined in 6.2 |
||||||
Conformance Units |
||||||
Base Info Base Types |
Instances of this ObjectType are used to organise the AddressSpace into a hierarchy of Nodes. They represent the root Node of a subtree, and have no other semantics associated with them. However, the DisplayName of an instance of the FolderType, such as "ObjectTypes", should imply the semantics associated with the use of it. There are no References specified for this ObjectType. It is formally defined in Table 61.
Table 61 – FolderType definition
Attribute |
Value |
|||||
BrowseName |
FolderType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseObjectType defined in 6.2. |
||||||
Conformance Units |
||||||
Base Info Base Types |
DataTypeEncodings are defined in OPC 10000-3. This ObjectType is used as type for the DataTypeEncodings. There are no References specified for this ObjectType. It is formally defined in Table 62.
Table 62 – DataTypeEncodingType definition
Attribute |
Value |
|||||
BrowseName |
DataTypeEncodingType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseObjectType defined in 6.2. |
||||||
Conformance Units |
||||||
Base Info Base Types |
This ObjectType defines an AggregateFunction supported by a UA Server. It is formally defined in Table 63.
Table 63 – AggregateFunctionType definition
Attribute |
Value |
|||||
BrowseName |
AggregateFunctionType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseObjectType defined in 6.2. |
||||||
Conformance Units |
||||||
Historical Access Aggregates |
For the AggregateFunctionType, the Description Attribute is mandatory. The Description Attribute provides a localized description of the AggregateFunction. Specific AggregateFunctions may be defined in further parts of this series of standards.
The BaseInterfaceType ObjectType is the super-type for Interfaces. All subtypes of BaseInterfaceType shall be abstract.
There are no References specified for this ObjectType. It is formally defined in Table 64.
Table 64 – BaseInterfaceType definition
Attribute |
Value |
|||||
BrowseName |
BaseInterfaceType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseObjectType defined in 6.2. |
||||||
Conformance Units |
||||||
Address Space Interfaces |
The OrderedListType is a base type to manage an ordered list of Objects. It is formally defined in Table 65.
Table 65 – OrderedListType Definition
Attribute |
Value |
||||
BrowseName |
OrderedListType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in 6.2 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
HasOrderedComponent |
Object |
<OrderedObject> |
|
BaseObjectType |
OP |
HasProperty |
Variable |
NodeVersion |
String |
PropertyType |
O |
GeneratesEvent |
ObjectType |
GeneralModelChangeEventType |
|
|
|
Conformance Units |
|||||
Base Info OrderedList |
The <OrderedObject> Object represents the ordered Objects managed by Instances of the OrderedListType. The order is provided by the 0:HasOrderedComponent References to the Objects. As not all Clients consider the order returned by the Browse Service (e.g. displaying the results in alphabetic order) each <OrderedObject> shall implement the IOrderedObjectType Interface, providing the order by a specific Property (see definition of IOrderedObjectType).
The NodeVersion is intended to be used in conjunction with the GeneralModelChangeEventType in the way defined in OPC 10000-3. The NodeVersion should be provided if the ordered List can change (e.g. new Objects added or removed). This allows Clients to subscribe to the Property or the GeneralModelChangeEvents, instead of polling Browse calls. Changes in the order of the List are considered as adding and deleting References, i.e. if the order changes the NodeVersion shall be changed and a GeneralModelChangeEvent shall be issued, indicating that References have been added and deleted.
In Table 66 the additional References are defined.
Table 66 – OrderedListType Additional Subcomponents
SourcePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
<OrderedObject> |
HasProperty |
Variable |
NumberInList |
Number |
PropertyType |
M |
<OrderedObject> |
HasInterface |
ObjectType |
IOrderedObjectType |
|
|
|
The <OrderedObject> Object shall implement the Interface IOrderedObjectType and therefore contains the mandatory Property NumberInList.
The IOrderedObjectType defines the Interface all Objects managed by an OrderedListType shall implement. It is formally defined in Table 67.
Table 67 – IOrderedObjectType Definition
Attribute |
Value |
||||
BrowseName |
IOrderedObjectType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseInterfaceType defined in 6.9, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
HasProperty |
Variable |
NumberInList |
Number |
PropertyType |
M |
Conformance Units |
|||||
Base Info OrderedList |
The mandatory Property NumberInList provides the position of the Object in a list, managed by an instance of the OrderedListType. Ideally, the numbering should start with a 0 and have no gaps, but that is not required and Clients shall not assume this. All Objects in the same list shall use the same concrete DataType for the property NumberInList. Two Objects in a list shall never have the same value in this Property. The order shall be identical to the order managed by the HasOrderedComponent References.
Note that due to the nature of a list element, the NumberInList Property is bound to the parent instance of OrderedListType. Objects implementing the Interface can in general not be managed by two instances of OrderedListType at the same time.