C++ Based OPC UA Client/Server SDK  1.5.5.355
Variable Types

TwoStateVariableType

Reference NodeClass BrowseName DataType ValueRank TypeDefinition ModellingRule
HasSupertype VariableType StateVariableType  
HasProperty Variable EffectiveTransitionTime UtcTime Scalar PropertyType Optional
HasProperty Variable FalseState LocalizedText Scalar PropertyType Optional
HasProperty Variable Id Boolean Scalar PropertyType Mandatory
HasProperty Variable TransitionTime UtcTime Scalar PropertyType Optional
HasProperty Variable TrueState LocalizedText Scalar PropertyType Optional

Most states defined in the OPC UA Specification are simple – i.e. they are either TRUE or FALSE. The TwoStateVariableType is introduced specifically for this use case. More complex states are modelled by using a StateMachineType. The TwoStateVariableType is derived from the StateVariableType. The Value Attribute of a TwoStateVariable contains the current state as a human readable name. The EnabledState for example, might contain the name “Enabled” when TRUE and “Disabled” when FALSE.

The optional Property EffectiveDisplayName from the StateVariableType is used if a state has substates. It contains a human readable name for the current state after taking the state of any SubStateMachines in account. As an example, the EffectiveDisplayName of the EnabledState could contain “Active/HighHigh” to specify that the Condition is active and has exceeded the HighHigh limit.

A HasTrueSubState Reference is used to indicate that the TRUE state has substates.

A HasFalseSubState Reference is used to indicate that the FALSE state has substates.

Variable Id

The Property Id shall be the current state, i.e. either TRUE or FALSE.

Id is inherited from the StateVariableType and overridden to reflect the required DataType (Boolean).

Variable TransitionTime

TransitionTime specifies the time when the current state was entered.

Variable EffectiveTransitionTime

EffectiveTransitionTime specifies the time when the current state or one of its substates was entered.

If, for example, a LevelAlarm is active and – while active – switches several times between High and HighHigh, then the TransitionTime stays at the point in time where the Alarm became active whereas the EffectiveTransitionTime changes with each shift of a substate.

Variable TrueState

TrueState and FalseState contain the localized string for the TwoStateVariable value when its Id Property has the value TRUE or FALSE, respectively.

Since the two Properties provide meta-data for the Type, Servers may not allow these Properties to be selected in the Event filter for a monitored item. Clients can use the Read Service to get the information from the specific ConditionType.

Variable FalseState

TrueState and FalseState contain the localized string for the TwoStateVariable value when its Id Property has the value TRUE or FALSE, respectively.

Since the two Properties provide metadata for the Type, Servers may not allow these Properties to be selected in the Event filter for a monitored item. Clients can use the Read Service to get the information from the specific ConditionType.

ConditionVariableType

Reference NodeClass BrowseName DataType ValueRank TypeDefinition ModellingRule
HasSupertype VariableType BaseDataVariableType  
HasProperty Variable SourceTimestamp UtcTime Scalar PropertyType Mandatory

Various information elements of a Condition are not considered to be states. However, a change in their value is considered important and supposed to trigger an Event Notification. These information elements are called ConditionVariables. ConditionVariables are represented by a ConditionVariableType. It defines the mandatory Property SourceTimestamp.

Variable SourceTimestamp

SourceTimestamp indicates the time of the last change of the Value of this ConditionVariable.

It shall be the same time that would be returned from the Read Service inside the DataValue structure for the ConditionVariable Value Attribute.