.NET Based OPC UA Client/Server SDK
3.0.4.468
|
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.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType |
Instances of this Type 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.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType |
Used as type for DataTypeSystems.
See Part 3 of the OPC UA Specification for a definition of DataTypeSystems.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType |
Used as type for DataTypeEncodings.
Different kinds of DataTypes are handled differently regarding their encoding and whether this encoding is represented in the AddressSpace.
Built-in DataTypes are a fixed set of DataTypes (see Part 6 of the OPC UA Specification for a complete list of Built-in DataTypes). They have no encodings visible in the AddressSpace since the encoding should be known to all OPC UA products. Examples of Built-in DataTypes are Int32 and Double.
Simple DataTypes are subtypes of the Built-in DataTypes. They are handled on the wire like the Built-in DataType, i.e. they cannot be distinguished on the wire from their Built-in supertypes. Since they are handled like Built-in DataTypes regarding the encoding they cannot have encodings defined in the AddressSpace. Clients can read the DataType Attribute of a Variable or VariableType to identify the Simple DataType of the Value Attribute. An example of a Simple DataType is Duration. It is handled on the wire as a Double but the Client can read the DataType Attribute and thus interpret the value as defined by Duration.
Structured DataTypes are DataTypes that represent structured data and are not defined as Built-in DataTypes. Structured DataTypes inherit directly or indirectly from the DataType Structure. Structured DataTypes may have several encodings and the encodings are exposed in the AddressSpace. How the encoding of Structured DataTypes is handled on the wire is defined in Part 6 of the OPC UA Specification. The encoding of the Structured DataType is transmitted with each value, thus Clients are aware of the DataType without reading the DataType Attribute. The encoding has to be transmitted so the Client is able to interpret the data. An example of a Structured DataType is Argument.
Enumeration DataTypes are DataTypes that represent discrete sets of named values. Enumerations are always encoded as Int32 on the wire as defined in Part 6 of the OPC UA Specification. Enumeration DataTypes inherit directly or indirectly from the DataType Enumeration. Enumerations have no encodings exposed in the AddressSpace. To expose the human-readable representation of an enumerated value the DataType Node may have the EnumStrings Property that contains an array of LocalizedText. The Integer representation of the enumeration value points to a position within that array. The EnumValues Property can be used instead of the EnumStrings to support integer representation of enumerations that are not zero-based or have gaps. It contains an array of a Structured DataType containing the integer representation as well as the human-readable representation. An example of an enumeration DataType containing a sparse list of Integers is NodeClass.
In addition to the DataTypes described above, abstract DataTypes are also supported, which do not have any encodings and cannot be exchanged on the wire. Variables and VariableTypes use abstract DataTypes to indicate that their Value may be any one of the subtypes of the abstract DataType. An example of an abstract DataType is Integer.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasProperty | Variable | NamingRule | NamingRuleType | Scalar | PropertyType | Mandatory |
Used as the type for ModelingRules.
ModellingRules are defined in Part 3 of the OPC UA Specification.
Identifies the NamingRule of a ModellingRule.
The NamingRule is defined in Part 3 of the OPC UA Specification.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasProperty | Variable | Auditing | Boolean | Scalar | PropertyType | Mandatory |
HasProperty | Variable | EstimatedReturnTime | DateTime | Scalar | PropertyType | Optional |
HasComponent | Method | GetMonitoredItems | Optional | |||
HasProperty | Variable | NamespaceArray | String | OneDimension | PropertyType | Mandatory |
HasComponent | Object | Namespaces | NamespacesType | Optional | ||
HasComponent | Method | RequestServerStateChange | Optional | |||
HasComponent | Method | ResendData | Optional | |||
HasProperty | Variable | ServerArray | String | OneDimension | PropertyType | Mandatory |
HasComponent | Object | ServerCapabilities | ServerCapabilitiesType | Mandatory | ||
HasComponent | Object | ServerDiagnostics | ServerDiagnosticsType | Mandatory | ||
HasComponent | Object | ServerRedundancy | ServerRedundancyType | Mandatory | ||
HasComponent | Variable | ServerStatus | ServerStatusDataType | Scalar | ServerStatusType | Mandatory |
HasProperty | Variable | ServiceLevel | Byte | Scalar | PropertyType | Mandatory |
HasComponent | Method | SetSubscriptionDurable | Optional | |||
HasComponent | Object | VendorServerInfo | VendorServerInfoType | Mandatory |
Defines the capabilities supported by the OPC UA Server.
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. Part 4 of the OPC UA Specification 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 target nodes 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.
Defines an array of namespace URIs.
This variable is also referred as namespace table. The indexes into the namespace table are referred to as namespace indexes. Namespace indexes 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 namespace indexes of NodeIds should always check when starting a session to verify that the cached namespace indexes have not changed.
Contains elements that describe the status of the Server.
See ServerStatusDataType for a description of its elements.
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. Part 4 of the OPC UA Specification defines required sub-ranges for different scenarios. The intent is to provide the clients an indication of availability among redundant Servers.
Defines the capabilities supported by the OPC UA Server.
See ServerCapabilitiesType for its description.
Defines diagnostic information about the OPC UA Server.
See ServerDiagnosticsType for its description.
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 VendorServerInfoType for its description.
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 also the description of ServerRedundancyType.
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 Part 7 of the OPC UA Specification specify what kind of audit events are generated by the Server.
Used to identify the monitored items of a subscription.
The intended usage is defined in Part 4 of the OPC UA Specification.
Method Result Codes:
Result Code | Description |
---|---|
Bad_SubscriptionIdInvalid | The subscription id is not valid. |
Bad_UserAccessDenied | User does not have permission to perform the requested operation. The Method was not called in the context of the Session that owns the Subscription. |
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
SubscriptionId | UInt32 | Scalar | Identifier of the subscription. |
Output Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
ServerHandles | UInt32 | OneDimension | Array of server handles for all monitored items of the subscription identified by SubscriptionId. |
ClientHandles | UInt32 | OneDimension | Array of client handles for all monitored items of the subscription identified by SubscriptionId |
Provides a list of NamespaceMetadataType objects with additional information about the namespaces used in the Server.
See also the description of NamespaceMetadataType.
Used to set a subscription into a mode where monitored item 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.
The intended usage is defined in Part 4 of the OPC UA Specification.
Method Result Codes:
Result Code | Description |
---|---|
Bad_SubscriptionIdInvalid | The subscription id is not valid. |
Bad_InvalidState | The operation cannot be completed because the object is closed, uninitialized or in some other invalid state. This is returned when a Subscription already contains MonitoredItems. |
Bad_UserAccessDenied | User does not have permission to perform the requested operation. The Method was not called in the context of the Session that owns the Subscription. |
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
SubscriptionId | UInt32 | Scalar | Identifier of the subscription. |
LifetimeInHours | UInt32 | Scalar | The requested lifetime in hours for the durable subscription. |
Output Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
RevisedLifetimeInHours | UInt32 | Scalar | The revised lifetime in hours the server applied to the durable subscription. |
Used to get the latest values of the data monitored items of a Subscription.
The intended usage is defined in Part 4 of the OPC UA Specification.
Method Result Codes:
Result Code | Description |
---|---|
Bad_SubscriptionIdInvalid | The subscription id is not valid. |
Bad_UserAccessDenied | User does not have permission to perform the requested operation. The Method was not called in the context of the Session that owns the Subscription. |
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
SubscriptionId | UInt32 | Scalar | Identifier of the subscription to refresh. |
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.
Allows a Client to request a state change in the Server.
The intended usage is defined in Part 4 of the OPC UA Specification.
The Client shall provide credentials with administrative rights when invoking this method on the Server.
Method Result Codes:
Result Code | Description |
---|---|
Bad_UserAccessDenied | The current user is not authorized to invoke the method. |
Bad_InvalidState | The requested state was not accepted by the server. |
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
State | ServerState | Scalar | The requested target state for the Server. If the new state is accepted by the Server, the state in the ServerStatus is updated with the new value. |
EstimatedReturnTime | DateTime | Scalar | Indicates the time at which the Server is expected to be available in the state RUNNING_0. If no estimate is known, a null DateTime shall be provided. This time will be available in the EstimatedReturnTime property. This parameter shall be ignored by the Server and the property EstimatedReturnTime shall be set to null if the new state is RUNNING_0. |
SecondsTillShutdown | UInt32 | Scalar | The number of seconds until a Server shutdown. This parameter is ignored unless the state is set to SHUTDOWN_4 or restart is set to true. |
Reason | LocalizedText | Scalar | A localized text string that describes the reason for the state change request. |
Restart | Boolean | Scalar | A flag indicating if the Server should be restarted before it attempts to change into the requested change. If restart is true, the server changes its state to SHUTDOWN_4 before the restart if secondsTillShudown is not 0. |
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasComponent | Variable | <VendorCapability> | BaseDataType | Scalar | ServerVendorCapabilityType | OptionalPlaceholder |
HasComponent | Object | AggregateFunctions | FolderType | Mandatory | ||
HasProperty | Variable | LocaleIdArray | LocaleId | OneDimension | PropertyType | Mandatory |
HasProperty | Variable | MaxArrayLength | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxBrowseContinuationPoints | UInt16 | Scalar | PropertyType | Mandatory |
HasProperty | Variable | MaxByteStringLength | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxHistoryContinuationPoints | UInt16 | Scalar | PropertyType | Mandatory |
HasProperty | Variable | MaxQueryContinuationPoints | UInt16 | Scalar | PropertyType | Mandatory |
HasProperty | Variable | MaxStringLength | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MinSupportedSampleRate | Duration | Scalar | PropertyType | Mandatory |
HasComponent | Object | ModellingRules | FolderType | Mandatory | ||
HasComponent | Object | OperationLimits | OperationLimitsType | Optional | ||
HasProperty | Variable | ServerProfileArray | String | OneDimension | PropertyType | Mandatory |
HasProperty | Variable | SoftwareCertificates | SignedSoftwareCertificate | OneDimension | PropertyType | Mandatory |
Defines the capabilities supported by the OPC UA Server.
Lists the profiles that the Server supports.
See Part 7 of the OPC UA Specification for the definitions of Server profiles. This list should be limited to the profiles the Server supports in its current configuration.
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.
Defines the minimum supported sample rate, including 0, which is supported by the Server.
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.
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 that 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.
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 that 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.
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.
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.
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 Part 7 of the OPC UA Specification.
Indicates the maximum length of a one or multidimensional array supported by variables of the Server.
In a multidimensional array it indicates the overall length. For example, a three-dimensional array of 2x3x10 has the array length of 60. The Server might further restrict the length for individual variables without notice to the client. Servers may use the property MaxArrayLength defined in Part 3 of the OPC UA Specification on individual DataVariables to specify the size on individual values. The individual property may have a larger or smaller value than MaxArrayLength.
Indicates the maximum number of characters in strings supported by variables of the Server.
The Server might further restrict the string length for individual variables without notice to the client. Servers may use the property MaxStringLength defined in Part 3 of the OPC UA Specification on individual DataVariables to specify the length on individual values. The individual property may have larger or smaller values than MaxStringLength.
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.
Vendor specific variables of a subtype of the ServerVendorCapabilityType.
These components of the ServerCapabilitiesType define the server-specific capabilities of the Server. Each is defined using a HasComponent reference whose target is an instance of a vendor-defined subtype of the abstract ServerVendorCapabilityType. Each subtype of this type defines a specific Server capability. The NodeIds for these variables and their variable types are server-defined.
Indicates the maximum number of bytes in a ByteString supported by variables or FileType objects of the Server.
The Server might further restrict the ByteString length for individual variables or FileType objects without notice to the Client. Servers may use the property MaxByteStringLength on individual data variables to specify the length on individual values or on FileType objects to specify the maximum size of read and write buffers. The individual property may have larger or smaller values than MaxByteStringLength.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasProperty | Variable | EnabledFlag | Boolean | Scalar | PropertyType | Mandatory |
HasComponent | Variable | SamplingIntervalDiagnosticsArray | SamplingIntervalDiagnosticsDataType | OneDimension | SamplingIntervalDiagnosticsArrayType | Optional |
HasComponent | Variable | ServerDiagnosticsSummary | ServerDiagnosticsSummaryDataType | Scalar | ServerDiagnosticsSummaryType | Mandatory |
HasComponent | Object | SessionsDiagnosticsSummary | SessionsDiagnosticsSummaryType | Mandatory | ||
HasComponent | Variable | SubscriptionDiagnosticsArray | SubscriptionDiagnosticsDataType | OneDimension | SubscriptionDiagnosticsArrayType | Mandatory |
This ObjectType defines diagnostic information about the OPC UA Server.
Contains diagnostic summary information for the Server.
See ServerDiagnosticsSummaryDataType.
An array of diagnostic information per sampling rate (see SamplingIntervalDiagnosticsDataType).
There is one entry for each sampling rate currently used by the Server. Its type definition node is the variable type SamplingIntervalDiagnosticsArrayType, providing a Variable for each entry in the array (see SamplingIntervalDiagnosticsArrayType).
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.
An array of subscription diagnostic information per subscription (see SubscriptionDiagnosticsDataType).
There is one entry for each notification channel actually established in the Server. Its type definition node is the variable type SubscriptionDiagnosticsArrayType, providing a variable for each entry in the array (see SubscriptionDiagnosticsArrayType). Those variables are also used as variables referenced by other variables.
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 re setting and enabling the collection. FALSE indicates that no statistic information is collected, and setting the value to FALSE disables the collection without resetting the statistic values.
Static diagnostic Nodes that always appear in the address space will return Bad_NotReadable when the Value attribute of such a Node is read or subscribed to and diagnostics are turned off. Dynamic diagnostic nodes (such as the Session nodes) will not appear in the address space when diagnostics are turned off.
Contains diagnostic information per session (see SessionsDiagnosticsSummaryType).
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasComponent | Object | <SessionPlaceholder> | SessionDiagnosticsObjectType | OptionalPlaceholder | ||
HasComponent | Variable | SessionDiagnosticsArray | SessionDiagnosticsDataType | OneDimension | SessionDiagnosticsArrayType | Mandatory |
HasComponent | Variable | SessionSecurityDiagnosticsArray | SessionSecurityDiagnosticsDataType | OneDimension | SessionSecurityDiagnosticsArrayType | Mandatory |
Defines diagnostic information about the sessions of the OPC UA Server.
Provides an array with an entry for each session in the Server having general diagnostic information about a session.
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 (Part 4 of the OPC UA Specification) or some other server-specific mechanisms. It is of the object type SessionDiagnosticsObjectType.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasComponent | Variable | SessionDiagnostics | SessionDiagnosticsDataType | Scalar | SessionDiagnosticsVariableType | Mandatory |
HasComponent | Variable | SessionSecurityDiagnostics | SessionSecurityDiagnosticsDataType | Scalar | SessionSecurityDiagnosticsType | Mandatory |
HasComponent | Variable | SubscriptionDiagnosticsArray | SubscriptionDiagnosticsDataType | OneDimension | SubscriptionDiagnosticsArrayType | Mandatory |
This object type defines diagnostic information about a session of the OPC UA Server.
Contains general diagnostic information about the session
Contains security-related diagnostic information.
Because the information of this variable is security-related, it should not be made accessible to all users, but only to authorised users.
An array of subscription diagnostic information per opened subscription, (see).
Its type definition node is the variable type SubscriptionDiagnosticsArrayType providing a variable for each entry in the array.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType |
This object type defines a placeholder object for vendor-specific information about the OPC UA Server.
This object type defines an empty object type that has no components. It shall be subtyped by vendors to define their vendor-specific information.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasProperty | Variable | RedundancySupport | RedundancySupport | Scalar | PropertyType | Mandatory |
This object type defines the redundancy capabilities supported by the OPC UA Server.
Indicates what redundancy is supported by the Server.
Its values are defined in RedundancySupport. It shall be set to NONE_0 for all instances of the ServerRedundancyType using the object type directly (no subtype).
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasComponent | Variable | CurrentState | LocalizedText | Scalar | StateVariableType | Mandatory |
HasComponent | Variable | LastTransition | LocalizedText | Scalar | TransitionVariableType | Optional |
The base ObjectType for all StateMachineTypes.
It defines a single Variable which represents the current state of the machine. An instance of this ObjectType shall generate an Event whenever a significant state change occurs. The Server decides which state changes are significant. Servers shall use the GeneratesEvent ReferenceType to indicate which Event(s) could be produced by the state machine.
Subtypes may add methods which affect the state of the machine. The Executable attribute is used to indicate whether the method is valid given the current state of the machine. The generation of AuditEvents for methods is defined in Part 4 of the OPC UA Specification. A state machine may not be active. In this case, the CurrentState and LastTransition variables shall have a status equal to Bad_StateNotActive.
Subtypes may add components which are instances of StateMachineTypes. These components are considered to be sub-states of the state machine. Sub-state machines are only active when the parent machine is in an appropriate state.
Events produced by sub-state machines may be suppressed by the parent machine. In some cases, the parent machine will produce a single Event that reflects changes in multiple sub-state machines.
FiniteStateMachineType is subtype of StateMachineType that provides a mechanism to explicitly define the states and transitions. A Server should use this mechanism if it knows what the possible states are and the state machine is not trivial.
Stores the current state of an instance of the StateMachineType.
CurrentState provides a human readable name for the current state which may not be suitable for use in application control logic. Applications should use the Id property of CurrentState if they need a unique identifier for the state.
Stores the last transition which occurred in an instance of the StateMachineType.
LastTransition provides a human readable name for the last transition which may not be suitable for use in application control logic. Applications should use the Id property of LastTransition if they need a unique identifier for the transition.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasProperty | Variable | StateNumber | UInt32 | Scalar | PropertyType | Mandatory |
States of a FiniteStateMachine are represented as objects of the StateType.
A number for the state that is unique across all states defined in the state machine.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | StateType |
An object of the InitialStateType represents the state that a FiniteStateMachine enters when it is activated.
Each FiniteStateMachine can have at most one state of type InitialStateType, but a FiniteStateMachine does not have to have a state of this type.
A sub-state machine goes into its initial state whenever the parent state is entered. However, a state machine may define a transition that goes directly to a state of the sub-state machine. In this case the sub-state machine goes into that state instead of the initial State.
If no initial state for a sub-state machine exists and the state having the sub-state machine is entered directly, then the state of the sub-state machine is server-specific.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasProperty | Variable | TransitionNumber | UInt32 | Scalar | PropertyType | Mandatory |
Transitions of a FiniteStateMachine are represented as objects of the ObjectType TransitionType.
Each valid transition shall have exactly one FromState reference and exactly one ToState reference, each pointing to an object of the ObjectType StateType.
Each transition can have one or more HasCause references pointing to the cause that triggers the transition.
Each transition can have one or more HasEffect references pointing to the effects that occur when the transition was triggered.
A number for the transition that is unique across all transitions defined in the state machine.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType |
Defines an AggregateFunction supported by a UA Server.
For the AggregateFunctionType, the Description Attribute is mandatory. The Description Attribute provides a localized description of the AggregateFunction.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | StateMachineType | ||||
HasComponent | Variable | CurrentState | LocalizedText | Scalar | FiniteStateVariableType | Mandatory |
HasComponent | Variable | LastTransition | LocalizedText | Scalar | FiniteTransitionVariableType | Optional |
The FiniteStateMachineType is the base ObjectType for state machines that explicitly define the possible states and transitions.
Once the states are defined, subtypes shall not add new states.
The states of the machine are represented with instances of the StateType ObjectType. Each state shall have a BrowseName which is unique within the state machine and shall have a StateNumber which shall also be unique across all states defined in the state machine. Be aware that states in a sub-state machine may have the same StateNumber or BrowseName as states in the parent machine. A concrete subtype of FiniteStateMachineType shall define at least one state.
A state machine may define one state which is an instance of the InitialStateType. This state is the state that the machine goes into when it is activated.
The transitions that may occur are represented with instances of the TransitionType. Each transition shall have a BrowseName which is unique within the state machine and may have a TransitionNumber which shall also be unique across all transitions defined in the state machine.
The initial state for a transition is a StateType object which is the target of a FromState reference. The final state for a transition is a StateType object which is the target of a ToState reference. The FromState and ToState references shall always be specified.
A transition may produce an event. The event is indicated by a HasEffect reference to a subtype of BaseEventType. The StateMachineType shall have GeneratesEvent references to the targets of a HasEffect reference for each of its transitions.
A FiniteStateMachineType may define methods that cause a transition to occur. These methods are targets of HasCause references for each of the transitions that may be triggered by the method. The Executable attribute for a method is used to indicate whether the current state of the machine allows the method to be called.
A FiniteStateMachineType may have sub-state machines which are represented as instances of StateMachineType ObjectTypes. Each state shall have a HasSubStateMachine reference to the StateMachineType object which represents the child states. The SubStateMachine is not active if the parent state is not active. In this case the CurrentState and LastTransition variables of the sub-state machine shall have a status equal to Bad_StateNotActive.
Stores the current state of an instance of the FiniteStateMachineType.
CurrentState provides a human readable name for the current state which may not be suitable for use in application control logic. Applications should use the Id property of CurrentState if they need a unique identifier for the state.
Stores the last transition which occurred in an instance of the FiniteStateMachineType.
LastTransition provides a human readable name for the last transition which may not be suitable for use in application control logic. Applications should use the Id property of LastTransition if they need a unique identifier for the transition.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasProperty | Variable | MaxMonitoredItemsPerCall | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerBrowse | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerHistoryReadData | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerHistoryReadEvents | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerHistoryUpdateData | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerHistoryUpdateEvents | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerMethodCall | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerNodeManagement | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerRead | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerRegisterNodes | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerTranslateBrowsePathsToNodeIds | UInt32 | Scalar | PropertyType | Optional |
HasProperty | Variable | MaxNodesPerWrite | UInt32 | Scalar | PropertyType | Optional |
Used to identify the operation limits of the OPC UA Server.
Indicates the maximum size of the nodesToRead array when a Client calls the Read service.
Indicates the maximum size of the nodesToWrite array when a Client calls the Write service.
Indicates the maximum size of the methodsToCall array when a Client calls the Call service.
Indicates the maximum size of the nodesToBrowse array when calling the Browse service or the continuationPoints array when a Client calls the BrowseNext service.
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.
Indicates the maximum size of the browsePaths array when a Client calls the TranslateBrowsePathsToNodeIds service.
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.
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 linksToAdd and the linksToRemove arrays when a Client calls the SetTriggering service.
Indicates the maximum size of the nodesToRead array when a Client calls the HistoryRead service using the histroyReadDetails RAW, PROCESSED, MODIFIED or ATTIME.
Indicates the maximum size of the nodesToRead array when a client calls the HistoryRead Service using the historyReadDetails EVENTS.
Indicates the maximum size of the historyUpdateDetails array supported by the Server when a Client calls the HistoryUpdate service.
Indicates the maximum size of the historyUpdateDetails array when a Client calls the HistoryUpdate service.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasComponent | Method | Close | Mandatory | |||
HasComponent | Method | GetPosition | Mandatory | |||
HasProperty | Variable | MimeType | String | Scalar | PropertyType | Optional |
HasComponent | Method | Open | Mandatory | |||
HasProperty | Variable | OpenCount | UInt16 | Scalar | PropertyType | Mandatory |
HasComponent | Method | Read | Mandatory | |||
HasComponent | Method | SetPosition | Mandatory | |||
HasProperty | Variable | Size | UInt64 | Scalar | PropertyType | Mandatory |
HasProperty | Variable | UserWritable | Boolean | Scalar | PropertyType | Mandatory |
HasProperty | Variable | Writable | Boolean | Scalar | PropertyType | Mandatory |
HasComponent | Method | Write | Mandatory |
This ObjectType defines a type for files.
Note that all methods on a file require a FileHandle, which is returned in the Open method.
Defines the size of the file in Bytes.
When a file is opened for writing the size might not be accurate.
Indicates the number of currently valid file handles on the file.
Opens a file represented by an object of FileType.
When a client opens a file, it gets a FileHandle that is valid while the session is open. Clients shall use the Close method to release the handle when they do not need access to the file anymore. Clients can open the same file several times for reading. A request to open for writing shall return Bad_NotWritable when the file is already opened.
Input Arguments
Argument | DataType | ValueRank | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Mode | Byte | Scalar | Indicates whether the file should be opened only for read operations or for read and write operations and where the initial position is set. The mode is an 8-bit unsigned integer used as bit mask with the structure defined in the following table:
|
Output Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
FileHandle | UInt32 | Scalar | A handle for the file used in other method calls indicating not the file (this is done by the object of the method call) but the access request and thus the position in the file. The FileHandle is generated by the server and is unique for the Session. Clients cannot transfer the FileHandle to another Session but need to get a new FileHandle by calling the Open method. |
Closes a file represented by a FileType.
When a client closes a file, the handle becomes invalid.
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
FileHandle | UInt32 | Scalar | A handle returned by the Open method, indicating the access request and thus indirectly the position inside the file. |
Reads a part of the file starting from the current file position.
The file position is advanced by the number of bytes read.
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
FileHandle | UInt32 | Scalar | A handle returned by the Open method, indicating the access request and thus indirectly the position inside the file. |
Length | Int32 | Scalar | Defines the length in bytes that should be returned in data, starting from the current position of the file handle. If the end of file is reached, all data until the end of the file is returned. The Server is allowed to return less data than the specified length. Only positive values are allowed. |
Output Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
Data | ByteString | Scalar | Contains the returned data of the file. If the ByteString is empty, it indicates that the end of the file is reached. |
Writes a part of the file starting from the current file position.
The file position is advanced by the number of bytes written
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
FileHandle | UInt32 | Scalar | A handle returned by the Open method, indicating the access request and thus indirectly the position inside the file. |
Data | ByteString | Scalar | Contains the data to be written at the position of the file. It is server-dependent whether the written data are persistently stored if the session is ended without calling the Close method with the FileHandle. Writing an empty or null ByteString returns a Good result code without any effect on the file. |
Provides the current position of the FileHandle.
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
FileHandle | UInt32 | Scalar | A handle returned by the Open method, indicating the access request and thus indirectly the position inside the file. |
Output Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
Position | UInt64 | Scalar | The position of the FileHandle in the file. If Read or Write is called, it starts at that position. |
Sets the current position of the FileHandle.
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
FileHandle | UInt32 | Scalar | A handle indicating the access request and thus indirectly the position inside the file. |
Position | UInt64 | Scalar | The position to be set for the FileHandle in the file. If Read or Write is called, it starts at that position. If the position is higher than the file size, the position is set to the end of the file. |
Indicates whether the file is writable.
It does not take any user access rights into account, i.e. although the file is writable this may be restricted to a certain user/user group. The Property does not take into account whether the file is currently opened for writing by another client and thus currently locked and not writable by others.
Indicates whether the file is writable, taking user access rights into account.
The Property does not take into account whether the file is currently opened for writing by another client and thus currently locked and not writable by others.
Contains the media type of the file based on RFC 2046.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | FileType | ||||
HasComponent | Method | ExportNamespace | Optional |
This object type defines the file for a namespace provided by the OPC UA Server.
It represents an XML address space file using the XML schema defined in Part 6 of the OPC UA Specification.
Servers might provide some vendor-specific mechanisms importing parts of an address space as subtype of this object type, for example by defining appropriate methods.
Provides a way to export the namespace from the Server address space 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.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasProperty | Variable | IsNamespaceSubset | Boolean | Scalar | PropertyType | Mandatory |
HasComponent | Object | NamespaceFile | AddressSpaceFileType | Optional | ||
HasProperty | Variable | NamespacePublicationDate | DateTime | Scalar | PropertyType | Mandatory |
HasProperty | Variable | NamespaceUri | String | Scalar | PropertyType | Mandatory |
HasProperty | Variable | NamespaceVersion | String | Scalar | PropertyType | Mandatory |
HasProperty | Variable | StaticNodeIdIdentifierTypes | IdType | OneDimension | PropertyType | Mandatory |
HasProperty | Variable | StaticNumericNodeIdRange | NumericRange | OneDimension | PropertyType | Mandatory |
HasProperty | Variable | StaticStringNodeIdPattern | String | OneDimension | PropertyType | Mandatory |
This object type defines the metadata for a namespace provided by the Server.
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.
The browse name 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 namespace array as namespaceIndex of the QualifiedName and the namespace URI as name of the QualifiedName.
Contains the namespace represented by an instance of the MetaDataType.
Provides version information for the namespace.
It is intended for display purposes and shall not be used to programmatically identify the latest version.
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.
Provides a list of IdTypes used for static nodes.
All nodes in the address space of the namespace using one of the IdTypes in the array shall be static nodes.
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.
Provides a regular expression as defined for the Like operator defined in Part 4 of the OPC UA Specification to filter for string NodeIds of static nodes.
If the StaticNodeIdTypes property contains an entry for string NodeIds, this property is ignored.
Contains all nodes and references of the namespace in an XML file where the information model XML schema is defined in Part 6 of OPC UA Specification.
The XML file is provided through an AddressSpaceFileType object.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | BaseObjectType | ||||
HasComponent | Object | <NamespaceIdentifier> | NamespaceMetadataType | OptionalPlaceholder | ||
HasComponent | Object | AddressSpaceFile | AddressSpaceFileType | Optional |
Defines a list of NamespaceMetadataType objects provided by the Server.
The object type contains a list of NamespaceMetadataType objects representing the namespaces in the Server. The browse name 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 namespace array as namespaceIndex of the QualifiedName and the namespace URI as name of the QualifiedName.
Reference | NodeClass | BrowseName | DataType | ValueRank | TypeDefinition | ModellingRule |
---|---|---|---|---|---|---|
HasSupertype | ObjectType | FolderType | ||||
HasComponent | Object | <FileDirectoryName> | FileDirectoryType | OptionalPlaceholder | ||
HasComponent | Object | <FileName> | FileType | OptionalPlaceholder | ||
HasComponent | Method | CreateDirectory | Mandatory | |||
HasComponent | Method | CreateFile | Mandatory | |||
HasComponent | Method | Delete | Mandatory | |||
HasComponent | Method | MoveOrCopy | Mandatory |
Defines a type for the representation of file directories.
It is expected that OPC UA Servers will create vendor specific subtypes of the FileDirectoryType with additional functionalities like methods for creating symbolic links or setting access permissions. OPC UA Clients providing specialized file transfer user interfaces should be prepared to expose such additional methods to the user.
Instances of the ObjectType contain a list of FileDirectoryType objects representing the subdirectories of the file directory represented by the instance of this ObjectType.
Instances of the ObjectType contain a list of FileType objects representing the files in the file directory represented by the instance of this ObjectType.
Creates a new FileDirectoryType object organized by this object.
Method Result Codes
Result Code | Description |
---|---|
Bad_BrowseNameDuplicated | A directory with the name already exists. |
Bad_UserAccessDenied | The user does not have permission to perform the requested operation. |
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
DirectoryName | String | Scalar | The name of the directory to create. The name is used for the BrowseName and DisplayName of the directory object and also for the directory in the file system. For the BrowseName, the directoryName is used for the name part of the QualifiedName. The namespace index is Server specific. For the DisplayName, the directoryName is used for the text part of the LocalizedText. The locale part is Server specific. |
Output Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
DirectoryNodeId | NodeId | Scalar | The NodeId of the created directory object. |
Creates a new FileType object organized by this object.
The created file can be written using the Write method of the FileType.
Method Result Codes
Result Code | Description |
---|---|
Bad_BrowseNameDuplicated | A file with the name already exists. |
Bad_UserAccessDenied | The user does not have permission to perform the requested operation. |
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
FileName | String | Scalar | The name of the file to create. The name is used for the BrowseName and DisplayName of the file object and also for the file in the file system. For the BrowseName, the FileName is used for the name part of the QualifiedName. The namespace index is Server specific. For the DisplayName, the FileName is used for the text part of the LocalizedText. The locale part is Server specific. |
RequestFileOpen | Boolean | Scalar | Flag indicating whether the new file should be opened with the Write and Read bits set in the open mode after the creation of the file. If the flag is set to True, the file is created and opened for writing. If the flag is set to False, the file is just created. |
Output Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
FileNodeId | NodeId | Scalar | The NodeId of the created file object. |
FileHandle | UInt32 | Scalar | The FileHandle is returned if RequestFileOpen is set to True. The FileNodeId and the FileHandle can be used to access the new file through the FileType object representing the new file. If RequestFileOpen is set to False, the returned value shall be 0 and shall be ignored by the caller. |
Deletes a file or directory organized by this object.
Method Result Codes
Result Code | Description |
---|---|
Bad_NotFound | A file or directory with the provided NodeId is not organized by this object. |
Bad_InvalidState | The file or directory is locked and thus cannot be deleted. |
Bad_UserAccessDenied | The user does not have permission to perform the requested operation. |
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
ObjectToDelete | NodeId | Scalar | The NodeId of the file or directory to delete. In the case of a directory, all file and directory objects below the directory to delete are deleted recursively. |
Moves or copies a file or directory organized by this object to another directory or renames a file or directory.
Method Result Codes
Result Code | Description |
---|---|
Bad_BrowseNameDuplicated | A file or directory with the name already exists. |
Bad_NotFound | A file or directory with the provided NodeId is not organized by this object. |
Bad_InvalidState | The file or directory is locked and thus cannot be moved or copied. |
Bad_UserAccessDenied | The user does not have permission to perform the requested operation. |
Input Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
ObjectToMoveOrCopy | NodeId | Scalar | The NodeId of the file or directory to move or copy. |
TargetDirectory | NodeId | Scalar | The NodeId of the target directory of the move or copy command. If the file or directory is just renamed, the targetDirectory matches the ObjectId passed to the method call. |
CreateCopy | Boolean | Scalar | A flag indicating whether a copy of the file or directory should be created at the target directory. |
NewName | String | Scalar | The new name of the file or directory in the new location. If the string is empty, the name is unchanged. |
Output Arguments
Argument | DataType | ValueRank | Description |
---|---|---|---|
NewNodeId | NodeId | Scalar | The NodeId of the moved or copied object. Even if the object is moved, the Server may return a new NodeId. |