This VariableType is an abstract type. That is, no instances of this type can exist. However, it might be used in a filter when browsing or querying. The DiscreteItemTypederives from the DataItemTypeand therefore shares all of its characteristics. It is formally defined in Table 3.

Table 3– DiscreteItemType definition

Attribute

Value

BrowseName

DiscreteItemType

IsAbstract

True

ValueRank

−2 (−2 = ‘Any’)

DataType

BaseDataType

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the DataItemTypedefined in 5.2; i.e the Propertiesof that type are inherited.

HasSubtype

VariableType

TwoStateDiscreteType

Defined in 5.3.3.2

HasSubtype

VariableType

MultiStateDiscreteType

Defined in 5.3.3.3

HasSubtype

VariableType

MultiStateValueDiscreteType

Defined in 5.3.3.4

This VariableTypedefines the general characteristics of a DiscreteItemthat can have two states. The TwoStateDiscreteTypederives from the DiscreteItemType. It is formally defined in Table 4.

Table 4– TwoStateDiscreteType definition

Attribute

Value

BrowseName

TwoStateDiscreteType

IsAbstract

False

ValueRank

−2 (−2 = ‘Any’)

DataType

Boolean

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the DiscreteItemTypedefined in 5.3.3; i.e the Propertiesof that type are inherited.

HasProperty

Variable

TrueState

LocalizedText

PropertyType

Mandatory

HasProperty

Variable

FalseState

LocalizedText

PropertyType

Mandatory

TrueStatecontains a string to be associated with this DataItemwhen it is TRUE. This is typically used for a contact when it is in the closed (non-zero) state.

for example: "RUN", "CLOSE", "ENABLE", "SAFE“, etc.

FalseStatecontains a string to be associated with this DataItemwhen it is FALSE. This is typically used for a contact when it is in the open (zero) state.

for example: "STOP", "OPEN", "DISABLE", "UNSAFE“, etc.

If the item contains an array, then the Propertieswill apply to all elements in the array.

The StatusCode SemanticsChangedbit shall be set if any of the FalseState or TrueState (changes can cause misinterpretation by users or (scripting) programs) Propertiesare changed (see section 5.2for additional information).

This VariableTypedefines the general characteristics of a DiscreteItemthat can have more than two states. The MultiStateDiscreteTypederives from the DiscreteItemType. It is formally defined in Table 5.

Table 5– MultiStateDiscreteType definition

Attribute

Value

BrowseName

MultiStateDiscreteType

IsAbstract

False

ValueRank

−2 (−2 = ‘Any’)

DataType

UInteger

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the DiscreteItemTypedefined in 5.3.3; i.e the Propertiesof that type are inherited.

HasProperty

Variable

EnumStrings

LocalizedText[]

PropertyType

Mandatory

EnumStringsis a string lookup table corresponding to sequential numeric values (0, 1, 2, etc.)

Example:

”OPEN”

”CLOSE”

”IN TRANSIT” etc.

Here the string “OPEN” corresponds to 0, “CLOSE” to 1 and “IN TRANSIT” to 2.

Clients should be prepared to handle item values outside of the range of the list; and robust servers should be prepared to handle writes of illegal values.

If the item contains an array then this lookup table shall apply to all elements in the array.

NOTE The EnumStringsproperty is also used for Enumeration DataTypes (for the specification of this DataType, see OPC 10000-3).

The StatusCode SemanticsChangedbit shall be set if the EnumStrings (changes can cause misinterpretation by users or (scripting) programs) Propertyis changed (see section 5.2for additional information).

This VariableTypedefines the general characteristics of a DiscreteItemthat can have more than two states and where the state values (the enumeration) does not consist of consecutive numeric values (may have gaps) or where the enumeration is not zero-based. The MultiStateValueDiscreteTypederives from the DiscreteItemType. It is formally defined in Table 6.

Table 6– MultiStateValueDiscreteType definition

Attribute

Value

BrowseName

MultiStateValueDiscreteType

IsAbstract

False

ValueRank

Scalar

DataType

Number

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the DiscreteItemTypedefined in 5.3.3; i.e the Propertiesof that type are inherited.

HasProperty

Variable

EnumValues

See OPC 10000-3

Mandatory

HasProperty

Variable

ValueAsText

See OPC 10000-3

Mandatory

EnumValuesis an array of EnumValueType. Each entry of the array represents one enumeration value with its integer notation, a human-readable representation, and help information. This represents enumerations with integers that are not zero-based or have gaps (e.g. 1, 2, 4, 8, 16). See OPC 10000-3for the definition of this type. MultiStateValueDiscrete Variablesexpose the current integer notation in their Value Attribute. Clientswill often read the EnumValues Propertyin advance and cache it to lookup a name or help whenever they receive the numeric representation.

MultiStateValueDiscrete Variablescan have any numeric Data Type; this includes signed and unsigned integers from 8 to 64 Bit length.

The numeric representation of the current enumeration value is provided via the Value Attributeof the MultiStateValueDiscrete Variable. The ValueAsText Propertyprovides the localized text representation of the enumeration value. It can be used by Clientsonly interested in displaying the text to subscribe to the Propertyinstead of the Value Attribute.