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 1.

Table 1 – 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

HasComponent

Variable

ValueAsDictionaryEntries

NodeId[]

PropertyType

Optional

The normal approach of associating DictionaryEntryType Nodes with HasDictionaryEntry References cannot be used with a MultiStateValueDiscreteType VariableType due to the EnumStrings 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 eCl@ss). The second dimension is used to reference this dictionary. The size of the first array dimension shall be the same size as the EnumStrings 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.

The MultiStateDictionaryEntryDiscreteType VariableType is a subtype of the MultiStateDictionaryEntryDiscreteBaseType. It requires the ValueAsDictionaryEntries Property. It is formally defined in Table 2.

Table 2 – MultiStateDictionaryEntryDiscreteType Definition

Attribute

Value

BrowseName

MultiStateDictionaryEntryDiscreteType

IsAbstract

False

ValueRank

Scalar

DataType

Number

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the MultiStateDictionaryEntryDiscreteBaseType defined in 7.1

HasComponent

Variable

ValueAsDictionaryEntries

NodeId[]

PropertyType

Mandatory