Dictionary |
A data type dictionary is an entity that contains a set of type descriptions, such as an XML schema. Data type dictionaries are defined as Variables of the VariableType DataTypeDictionaryType.
The data type dictionary describes a set of DataTypes in sufficient detail to allow clients to parse/interpret Variable Values that they receive and to construct Values that they send. The data type dictionary is represented as a Variable of type DataTypeDictionaryType in the Address Space; the description about the DataTypes is contained in its Value Attribute. All containing DataTypes exposed in the Address Space are represented as Variables of type Standard Variable Types. The Value of one of these Variables identifies the description of a DataType in the Value Attribute of the data type dictionary.
The DataType of a data type dictionary Variable is always a ByteString. The format and conventions for defining DataTypes in this ByteString are defined by DataTypeSystems. DataTypeSystems are identified by NodeIds. They are represented in the Address Space as Objects of the ObjectTypeDataTypeSystemType. Each Variable representing a data type dictionary references a DataTypeSystem Object to identify their DataTypeSystem.
Dictionary properties:
Encoding Name – the qualified name of the encoding.
Is Empty - indicates if the Encoding name is empty.
Name – the name of the Encoding.
Namespace – a namespace that qualifies the name of the Encoding.
Max Cardinality - this attribute indicates the maximum number of possibly existing instances of this element.
Min Cardinality - this attribute indicates the minimum number of possibly existing instances of this element. If the element has minimal cardinality greater than 0, it is possible to check that it exists in the instantiated nodes.
Modeling Rule - dependent on the value of these properties specified for the components of a type they are used to create appropriate instances while the parent type is instantiated in the address space. The default value is Mandatory. In this case the component is always created with the values of the attributes derived from the inheritance chain. If the value is None it indicates that this node only belongs to the type and is not used to create an instance while the parent type is instantiated. If the node is not a type component the value of this property is ignored.
Preserve Default Attributes - a value indicating whether to preserve default attributes.
Type Definition - the type of this instance pointed out by the HasTypeDefinition reference.
Default value – the default value of the Type Definition.
Is Empty - indicates if the Type Definition is empty.
Name – the name of the TypeDefinition.
Namespace – a namespace that qualifies the name of the TypeDefinition.
Browse Name - a name used in the information model. The validator will create the BrowseName automatically from the SymbolicName. The BrowseName is qualified by the namespace used for the SymbolicName.
Description – optionally, a vendor specific description is provided. The validator automatically creates a generic Description from the BrowseName and NodeClass.
Key – an optional key that can be used to look up the Description for other locales in a resource DB.
Value – the value of the Description attribute for the Node.
Display Name – a human readable name for the Node. The validator automatically creates the DisplayName from the BrowseName.
Key – an optional key that can be used to look up the display name for other locales in a resource DB.
Value – the value of the Display Name.
IsDeclaration - this flag indicates that the Node is defined elsewhere and no code will be generated. Nodes that are declarations do not need to be completely defined. They only need to have the information required to generate code for nodes that reference it (e.g. the BaseType).
StringId - an alternate unique identifier for the node. It is used instead of the NumericId if it is specified in the CSV input file.
Symbolic Name - identifies the Node within the ModelDesign or within the containing Node. The SymbolicName should always be specified. It is used to create the BrowseName and SymbolicId if they are not specified.
Is Empty - indicates whether the Symbolic Name is empty.
Name – a name, which is a part of the Symbolic Name.
Namespace – a namespace, which qualifies the Name from the Symbolic Name.
Write access - a bit mask that indicates, which attributes are writeable. Optionally the WriteMask Attribute can be provided. If the WriteMask Attribute is provided, it shall set all Attributes to not writeable that are not said to be vendor-specific. For example, the Description Attribute may be set to writeable since a Server may provide a server-specific description for the Node. The NodeId shall not be writeable, because it is defined for each Node in specification.
Access Level - this property defines the value of the AccessLevel attribute of the Dictionary node class. The access level for variables used for type definitions is vendor-specific, for all other variables defined in the specification the access level shall allow a current read; other settings are vendor specific.
Array Dimensions - if the Value Rank does not identify an array of a specific dimension (i.e. ValueRank <= 0) the Array Dimensions attribute can either be set to null or the attribute is missing. This behaviour is vendor-specific. If the Value Rank attribute specifies an array of a specific dimension (i.e. ValueRank > 0) then the Array Dimensions attribute shall be specified in the table defining the Dictionary.
Data Type - the type of the data.
Is Empty - indicates if the DataType is empty.
Name - DataType name.
Namespace – a namespace that qualifies the DataType name.
Default value – the default value of the property
Selected type – the type of the Default value.
Value – the value of the type.
Historizing - this attribute indicates whether the Server is actively collecting data for the history of the Dictionary. This differs from the AccessLevel Attribute which identifies if the Dictionary has any historical data. A value of TRUE indicates that the Server is actively collecting data. A value of FALSE indicates the Server is not actively collecting data.
Minimum Sampling Interval - optionally, a vendor-specific minimum sampling interval is provided. It indicates how “current” the Value of the Dictionary will be kept. It specifies (in milliseconds) how fast the server can reasonably sample the value for changes. A MinimumSamplingInterval of 0 indicates that the server is to monitor the item continuously. A MinimumSamplingInterval of -1 means indeterminate.
Value Rank - this Attribute indicates whether the Value Attribute of the Dictionary is an array and how many dimensions the array has. It may have the following values: n>1 - the Value is an array with the specified number of dimensions; OneDimension (1)- the value is an array with one dimension; OneOrMoreDimensions (0) - the value is an array with one or more dimensions. Scalar (-1)- the value is not an array; Any (-2)- the value can be a scalar or an array with any number of dimensions; ScalarOrOneDimension (-3)- the value can be a scalar or a one dimensional array.