StateMachine transition Type purpose

Unified Architecture topics related to OPC UA Specification, compliant behavior and any technical issues of OPC UA, like Security, Information Model, Companion Specs DI, PLCopen, ADI, ...

Moderator: Support Team

Post Reply
ctgarvey
Sr. Member
Sr. Member
Posts: 14
Joined: 17 Mar 2013, 13:27

StateMachine transition Type purpose

Post by ctgarvey »

Hello UA,
The ProgramStateMachineType utilises object of type StateType for its states, and uses object of type
TransitionType for its Types.

The TransitionTypes are objects with a readonly uint32 variable called TransitionNumber

The purpose of the transition is to change state momentarily when state machine moves from one state to another.
Whats the additional purpose of a transition type (if any) and why isnt a simple boolean property used (instead of an object that has just 1 variable)?

Do these TransitionType objects have a special behaviour? (one shot or automatically driven back to false/zero after
transition is complete etc)

We are using a concrete subtype of finitestatemachine and creating our own S88statemachinetype
Can we extend transition type and add in a boolean property? ( it doesnt appear to be allowed to do this)

thanks

User avatar
Support Team
Hero Member
Hero Member
Posts: 3064
Joined: 18 Mar 2011, 15:09

Re: StateMachine transition Type purpose

Post by Support Team »

Hi,

A TransitionType object on a state machine type is used to indicate the possible transitions between the states. A transition object is normally not visible on a state machine object instance.

The transition is reported through the LastTransition variable on the state machine object instance or through the Transition event field and its nested event fields through a TransitionEvent.

The FiniteStateVariableType is using the NodeId of the TransitionType object to uniquely identify the transition. The TransitionNumber can be used as optional identification of the transition in LastTransition variable or TransitionEvent.

A Property would not be enough to represent a Transition. Properties are not typed. The only type information is provided through the BrowseName of the Property. Since a state machine has normally more than one transition, it would not be possible to detect that a property represents a Transition.

You can create a sub type of TransitionType and you can add any application specific information you need there.

Best Regards,
Unified Automation Support Team

Post Reply