This is a subtype of the UInt32 DataType with the OptionSetValues Property defined. It is used to indicate how the Value of a Variable can be accessed (read/write), if it contains current and/or historic data and its atomicity.
The AccessLevelExType DataType is an extended version of the AccessLevelType DataType and as such contains the 8 bits of the AccessLevelType as the first 8 bits.
The NonatomicRead, and NonatomicWrite Fields represent the atomicity of a Variable. In general Atomicity is expected of OPC UA read and write operations. These Fields are used by systems, in particular hard-realtime controllers, which can not ensure atomicity.
The NoSubDataTypes Field represents the ability of a Variable to accept derived DataTypes. In general Variables are expected to allow the defined DataType or any subtype of that DataType. This Field is used to indicate a Variable restricts the DataType to only what is defined, that is no subtypes are allowed.
The NonVolatile Field represents the volatility of the Variable. This Field is used to indicate a Server shall ensure the Value of the Variable is persisted over a restart.
The Constant Field represents the changeability of the Variable and if changes in its Value trigger changes to the ConfigurationVersion Property of the NamespaceMetadata Object for the Namespace of the Variable. When this Field is 0 the Value of the Variable may change at any time and Value changes shall not trigger changes in the ConfigurationVersion Property. When this Field is 1 the Value of the Variable changes infrequently (e.g. by configuration change) and each change in Value shall trigger changes to the ConfigurationVersion Property and the ConfigurationVersion Property shall be provided along with the parent NamespaceMetadata Object for the Namespace of the Variable.
Table 40 defines the combinations of Constant and NonVolatile Fields and their use cases.
Table 40 – Use Cases of Constant and NonVolatile Fields
|0||0||Can not be assumed to be constant or non-volatile|
|0||1||Not constant and non-volatile|
|1||0||constant and volatile. The related ConfigurationVersion shall be changed with each Server restart.|
|1||1||Constant and non-volatile|
The AccessLevelExType is formally defined in Table 41.
Table 41 – AccessLevelExType Definition
|NonatomicRead||8||Indicates non-atomicity for Read access (0 means that atomicity is assured).|
|NonatomicWrite||9||Indicates non-atomicity for Write access (0 means that atomicity is assured).|
|WriteFullArrayOnly||10||Indicates if Write of IndexRange is supported.(0 means Write of IndexRange is supported)|
|NoSubDataTypes||11||Indicates if the Variable doesn’t allow its DataType to be subtyped(0 means the Variable accepts the defined DataType and subtypes of that DataType)|
|NonVolatile||12||Indicates if the Variable is non-volatile(0 means it is volatile or not known to be, 1 means non-volatile)|
|Constant||13||Indicates if the Value of the Variable can be considered constant(0 means the Value is not constant, 1 means the Value is constant)|
|Reserved||14:31||Reserved for future use. Shall always be zero.|