The MultiStateDictionaryEntryDiscreteBaseType VariableType is a subtype of the MultiStateValueDiscreteType. It provides dictionary entries for each of the possible states as well as the current state of the MultiStateValueDiscreteType. It is formally defined in Table 6.

Table 6 – MultiStateDictionaryEntryDiscreteBaseType Definition

Attribute

Value

BrowseName

MultiStateDictionaryEntryDiscreteBaseType

IsAbstract

False

ValueRank

Scalar

DataType

Number

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the MultiStateValueDiscreteType defined in OPC 10000-8

HasProperty

Variable

EnumDictionaryEntries

NodeId[][]

PropertyType

Mandatory

HasProperty

Variable

ValueAsDictionaryEntries

NodeId[]

PropertyType

Optional

Conformance Units

Data Access MultiStateDictionaryEntryDBT

Data Access ValueAsDictionaryEntries Property

The normal approach of associating DictionaryEntryType Nodes with HasDictionaryEntry References cannot be used with a MultiStateValueDiscreteType VariableType due to the EnumValues Property being an Array, making this Type necessary. References can however be used for other VariableTypes. For example, the TwoStateDiscreteType can use HasDictionaryEntry References with SourceNode being the TrueState and FalseState Properties and TargetNode being the DictionaryEntry Nodes.

EnumDictionaryEntries is a two-dimensional array of NodeIds. The first dimension is used to list all possible dictionary entry values for the related variable in a specific dictionary (e.g. CDD or ECLASS). The second dimension is used to reference this dictionary. The size of the first array dimension shall be the same size as the EnumValues Property.

ValueAsDictionaryEntries provides a list of all dictionary entry values in the different dictionaries related to the current value of the variable. The order of the array entries shall be in the same order used by the EnumDictionaryEntries Property.

If an instance of this type is writeable and the optional ValueAsDictionaryEntries Property is implemented, it shall be writeable as well. Clients writing to the ValueAsDictionaryEntries Property shall use one of the DictionaryEntryType NodeIds defined by the EnumDictionaryEntries Property. This will have the same result as writing the value attribute, but the client does not require knowledge of the values.

The NodeIds represent the dictionary entries and can be generated with dictionary knowledge.