OPC unified architecture - Part 16: State Machines

OPC Unified Architecture – Teil 16: Zustandsmaschinen

Architecture unifiée OPC - Partie 16: Diagrammes d'états

Enotna arhitektura OPC - 16. del: Stroji stanj

General Information

Status
Not Published
Publication Date
22-Jan-2026
Current Stage
4060 - Enquiry results established and sent to TC, SR, BTTF - Enquiry
Start Date
19-Apr-2024
Completion Date
19-Apr-2024
Draft
prEN IEC 62541-16:2024 - BARVE
English language
34 pages
sale 10% off
Preview
sale 10% off
Preview
e-Library read for
1 day

Standards Content (Sample)


SLOVENSKI STANDARD
01-marec-2024
Enotna arhitektura OPC - 16. del: Stroji stanj
OPC unified architecture - Part 16: State machines
Ta slovenski standard je istoveten z: prEN IEC 62541-16:2024
ICS:
25.040.40 Merjenje in krmiljenje Industrial process
industrijskih postopkov measurement and control
35.240.50 Uporabniške rešitve IT v IT applications in industry
industriji
2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.

65E/1041/CDV
COMMITTEE DRAFT FOR VOTE (CDV)
PROJECT NUMBER:
IEC 62541-16 ED1
DATE OF CIRCULATION: CLOSING DATE FOR VOTING:
2024-01-26 2024-04-19
SUPERSEDES DOCUMENTS:
65E/951/NP, 65E/1011/RVN
IEC SC 65E : DEVICES AND INTEGRATION IN ENTERPRISE SYSTEMS
SECRETARIAT: SECRETARY:
United States of America Mr Donald (Bob) Lattimer
OF INTEREST TO THE FOLLOWING COMMITTEES: PROPOSED HORIZONTAL STANDARD:

Other TC/SCs are requested to indicate their interest, if any,
in this CDV to the secretary.
FUNCTIONS CONCERNED:
EMC ENVIRONMENT QUALITY ASSURANCE SAFETY
SUBMITTED FOR CENELEC PARALLEL VOTING NOT SUBMITTED FOR CENELEC PARALLEL VOTING
Attention IEC-CENELEC parallel voting
The attention of IEC National Committees, members of
CENELEC, is drawn to the fact that this Committee Draft for
Vote (CDV) is submitted for parallel voting.
The CENELEC members are invited to vote through the
CENELEC online voting system.
This document is still under study and subject to change. It should not be used for reference purposes.
Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which
they are aware and to provide supporting documentation.
Recipients of this document are invited to submit, with their comments, notification of any relevant “In Some Countries”
clauses to be included should this proposal proceed. Recipients are reminded that the CDV stage is the final stage for
submitting ISC clauses. (SEE AC/22/2007 OR NEW GUIDANCE DOC).

TITLE:
OPC Unified Architecture – Part 16: State Machines

PROPOSED STABILITY DATE: 2026
NOTE FROM TC/SC OFFICERS:
electronic file, to make a copy and to print out the content for the sole purpose of preparing National Committee positions.
You may not copy or "mirror" the file or printed version of the document, or any part of it, for any other purpose without
permission in writing from IEC.

IEC CDV 62541-16 © IEC 2023
1 CONTENTS
3 FIGURES . ii
4 TABLES . iii
5 1 Scope . 1
6 2 Normative references . 1
7 3 Terms, definitions, abbreviated terms, and conventions . 1
8 3.1 Terms and definitions . 1
9 4 State Machine Model . 1
10 4.1 General . 1
11 4.2 Examples of finite state machines . 2
12 4.2.1 Simple state machine . 2
13 4.2.2 State machine containing substates . 2
14 4.3 Definition of state machine . 3
15 4.4 Representation of state machines in the AddressSpace . 4
16 4.4.1 Overview . 4
17 4.4.2 StateMachineType . 5
18 4.4.3 StateVariableType . 5
19 4.4.4 TransitionVariableType . 6
20 4.4.5 FiniteStateMachineType . 7
21 4.4.6 FiniteStateVariableType . 9
22 4.4.7 FiniteTransitionVariableType . 10
23 4.4.8 StateType . 10
24 4.4.9 InitialStateType . 11
25 4.4.10 TransitionType . 12
26 4.4.11 FromState . 12
27 4.4.12 ToState . 13
28 4.4.13 HasCause . 13
29 4.4.14 HasEffect . 14
30 4.4.15 HasSubStateMachine . 14
31 4.4.16 TransitionEventType . 15
32 4.4.17 AuditUpdateStateEventType. 15
33 4.4.18 Special Restrictions on subtyping StateMachines . 16
34 4.4.19 Specific StatusCodes for StateMachines . 16
35 4.5 Examples of StateMachines in the AddressSpace . 17
36 4.5.1 StateMachineType using inheritance . 17
37 4.5.2 StateMachineType with a SubStateMachine using inheritance . 18
38 4.5.3 StateMachineType using containment . 19
39 4.5.4 Example of a StateMachine having Transition to SubStateMachine . 20
40 4.5.5 Example of a StateMachine adding a SubStateMachine on a Subtype . 21
41 4.6 StateMachine Extensions for ChoiceStates and Guards. 23
42 4.6.1 Overview . 23
43 4.6.2 ChoiceStateType . 24
44 4.6.3 HasGuard . 24
45 4.6.4 GuardVariableType . 25
46 4.6.5 ExpressionGuardVariableType . 25
47 4.6.6 ElseGuardVariableType . 26
48 4.7 Example of a StateMachine using a ChoiceState and Guards . 26

IEC CDV 62541-16 © IEC 2023 ii

50 FIGURES
52 Figure 1 – Example of a simple state machine . 2
53 Figure 2 – Example of a state machine having a sub-machine . 3
54 Figure 3 – The StateMachine Information Model . 4
55 Figure 4 – Example of a FiniteStateMachine type . 9
56 Figure 5 – Example of a FiniteStateMachine instance . 9
57 Figure 6 – Example of an initial State in a sub-machine . 11
58 Figure 7 – Example of a StateMachineType using inheritance . 17
59 Figure 8 – Example of a StateMachineType with a SubStateMachine using inheritance . 18
60 Figure 9 – Example of a StateMachineType using containment . 19
61 Figure 10 – Example of a StateMachine with Transitions from sub-states . 20
62 Figure 11 – Example of a StateMachineType having Transition to SubStateMachine . 21
63 Figure 12 – Example of a StateMachine with two States . 22
64 Figure 13 – Example of a StateMachine extended with two Substates . 22
65 Figure 14 – Example of a StateMachine extended with another two Substates . 22
66 Figure 15 – Example of a StateMachineType adding SubStateMachines in Subtypes . 23
67 Figure 16 – Example of a ChoiceState . 24
68 Figure 17 – Example of a StateMachine using ChoiceState and Guards . 27
iii IEC CDV 62541-16 © IEC 2023

70 TABLES
72 Table 1 – StateMachineType definition . 5
73 Table 2 – StateVariableType definition . 6
74 Table 3 – TransitionVariableType definition . 7
75 Table 4 – FiniteStateMachineType definition . 8
76 Table 5 – FiniteStateVariableType definition. 10
77 Table 6 – FiniteTransitionVariableType definition . 10
78 Table 7 – StateType definition . 11
79 Table 8 – InitialStateType definition . 12
80 Table 9 – TransitionType definition . 12
81 Table 10 – FromState ReferenceType . 13
82 Table 11 – ToState ReferenceType . 13
83 Table 12 – HasCause ReferenceType . 14
84 Table 13 – HasEffect ReferenceType . 14
85 Table 14 – HasSubStateMachine ReferenceType . 15
86 Table 15 – TransitionEventType . 15
87 Table 16 – AuditUpdateStateEventType . 15
88 Table 17 – Specific StatusCodes for StateMachines . 16
89 Table 18 – ChoiceStateType . 24
90 Table 19 – HasGuard ReferenceType . 25
91 Table 20 – GuardVariableType definition . 25
92 Table 21 – ExpressionGuardVariableType definition . 26
93 Table 22 – ElseGuardVariableType definition . 26
IEC CDV 62541-16 © IEC 2023 iv

95 INTERNATIONAL ELECTROTECHNICAL COMMISSION
96 ____________
98 OPC UNIFIED ARCHITECTURE –
100 Part 16: State Machines
102 FOREWORD
103 1) The International Electrotechnical Commission (IEC) is a worldwide organization for standardization comprising all national
104 electrotechnical committees (IEC National Committees). The object of IEC is to promote international co-operation on all
105 questions concerning standardization in the electrical and electronic fields. To this end and in addition to other activities,
106 IEC publishes International Standards, Technical Specifications, Technical Reports, Publicly Available Specifications (PAS)
107 and Guides (hereafter referred to as “IEC Publication(s)”). Their preparation is entrusted to technical committees; any IEC
108 National Committee interested in the subject dealt with may participate in this preparatory work. International, governmental
109 and non-governmental organizations liaising with the IEC also participate in this preparation. IEC collaborates closely with
110 the International Organization for Standardization (ISO) in accordance with conditions determined by agreement between
111 the two organizations.
112 2) The formal decisions or agreements of IEC on technical matters express, as nearly as possible, an international consensus
113 of opinion on the relevant subjects since each technical committee has representation from all interested IEC National
114 Committees.
115 3) IEC Publications have the form of recommendations for international use and are accepted by IEC National Committees in
116 that sense. While all reasonable efforts are made to ensure that the technical content of IEC Publications is accurate, IEC
117 cannot be held responsible for the way in which they are used or for any misinterpretation by any end user.
118 4) In order to promote international uniformity, IEC National Committees undertake to apply IEC Publications transparently to
119 the maximum extent possible in their national and regional publications. Any divergence between any IEC Publication and
120 the corresponding national or regional publication shall be clearly indicated in the latter.
121 5) IEC itself does not provide any attestation of conformity. Independent certification bodies provide conformity assessment
122 services and, in some areas, access to IEC marks of conformity. IEC is not responsible for any services carried out by
123 independent certification bodies.
124 6) All users should ensure that they have the latest edition of this publication.
125 7) No liability shall attach to IEC or its directors, employees, servants or agents including individual experts and members of
126 its technical committees and IEC National Committees for any personal injury, property damage or other damage of any
127 nature whatsoever, whether direct or indirect, or for costs (including legal fees) and expenses arising out of the publication,
128 use of, or reliance upon, this IEC Publication or any other IEC Publications.
129 8) Attention is drawn to the Normative references cited in this publication. Use of the referenced publications is indispensable
130 for the correct application of this publication.
131 9) Attention is drawn to the possibility that some of the elements of this IEC Publication may be the subject of patent rights.
132 IEC shall not be held responsible for identifying any or all such patent rights.
133 The main task of IEC technical committees is to prepare International Standards. However, a technical
134 committee may propose the publication of a technical report when it has collected data of a different
135 kind from that which is normally published as an International Standard, for example "state of the art".
136 International Standard IEC 62541-16 has been prepared by subcommittee 65E: Devices and integration
137 in enterprise systems, of IEC technical committee 65: Industrial-process measurement, control and
138 automation.
139 The text of this international standard is based on the following documents:
CDV Report on voting
65E/XX/CDV 65E/XX/RVC
141 Full information on the voting for the approval of this international standard can be found in the report
142 on voting indicated in the above table.
143 This publication has been drafted in accordance with the ISO/IEC Directives, Part 2.
144 Throughout this document and the other Parts of the series, certain document conventions are used:

v IEC CDV 62541-16 © IEC 2023
145 Italics are used to denote a defined term or definition that appears in the “Terms and definition” clause
146 in one of the parts of the series.
147 Italics are also used to denote the name of a service input or output parameter or the name of a structure
148 or element of a structure that are usually defined in tables.
149 The italicized terms and names are also often written in camel-case (the practice of writing compound
150 words or phrases in which the elements are joined without spaces, with each element's initial letter
151 capitalized within the compound). For example, the defined term is AddressSpace instead of Address
152 Space. This makes it easier to understand that there is a single definition for AddressSpace, not
153 separate definitions for Address and Space.
154 A list of all parts of the IEC 62541 series is included in IEC 62541-1 clause 4 Structure of the OPC UA
155 series and published under the general title OPC Unified Architecture, can be found on the IEC website.
156 The committee has decided that the contents of this publication will remain unchanged until the stability
157 date indicated on the IEC web site under "http://webstore.iec.ch" in the data related to the specific
158 publication. At this date, the publication will be
159 • reconfirmed,
160 • withdrawn,
161 • replaced by a revised edition, or
162 • amended.
164 A bilingual version of this publication may be issued at a later date.
IMPORTANT – The 'colour inside' logo on the cover page of this publication indicates
that it contains colours which are considered to be useful for the correct understanding
of its contents. Users should therefore print this document using a colour printer.
IEC CDV 62541-16 © IEC 2023 1
170 OPC Unified Architecture Specification
172 Part 16: State Machines
176 1 Scope
177 This part of the OPC Unified Architecture defines an Information Model. The Information Model
178 describes the basic infrastructure to model state machines.
179 Note: In the previous version, File Transfer was in IEC 62541-5, Annex B
180 2 Normative references
181 The following documents, in whole or in part, are normatively referenced in this document and
182 are indispensable for its application. For dated references, only the edition cited applies. For
183 undated references, the latest edition of the referenced document (including any amendments
184 and errata) applies.
185 IEC 62541-1, OPC Unified Architecture – Part 1: Overview and Concepts
186 IEC 62541-3, OPC Unified Architecture – Part 3: Address Space Model
187 IEC 62541-4, OPC Unified Architecture – Part 4: Services
188 IEC 62541-5, OPC Unified Architecture – Part 5: Information Model
189 IEC 62541-6, OPC Unified Architecture – Part 6: Mappings
190 IEC 62541-7, OPC Unified Architecture – Part 7: Profiles
191 IEC 62541-9, OPC Unified Architecture – Part 9: Alarms and Conditions
192 IEC 62541-10, OPC Unified Architecture – Part 10: Programs
194 3 Terms, definitions, abbreviated terms, and conventions
195 3.1 Terms and definitions
196 For the purposes of this document, the terms and definitions given in IEC 62541-1, IEC 62541-
197 3, and IEC 62541-5 apply.
198 4 State Machine Model
199 4.1 General
200 This document describes the basic infrastructure to model state machines. It defines
201 ObjectTypes, VariableTypes and ReferenceTypes and explains how they should be used.
202 This document is an integral part of this standard, that is, the types defined in this document
203 shall be used as defined. However, it is not required but strongly recommended that a Server
204 uses these types to expose its state machines. The defined types may be subtyped to refine
205 their behaviour.
206 When a Server exposes its state machine using the types defined in this document, it might
207 only provide a simplified view on its internal state machine, hiding for example substates or
208 putting several internal states into one exposed state.

2 IEC CDV 62541-16 © IEC 2023
209 The scope of the state machines described in this document is to provide an appropriate
210 foundation for state machines needed for IEC 62541-9 and IEC 62541-10. It does not provide
211 more complex functionality of a state machine like parallel states, forks and joins, history states,
212 choices, and junctions, etc. However, the base state machine defined in this document can be
213 extended to support such concepts.
214 The following clauses describe examples of state machines, define state machines in the
215 context of this document and define the representation of state machines in OPC UA. Finally,
216 some examples of state machines, represented in OPC UA, are given.
217 4.2 Examples of finite state machines
218 4.2.1 Simple state machine
219 The following example provides an overview of the base features that the state machines
220 defined in this specification will support. In the following, a more complex example is given, that
221 also supports sub-state machines.
222 Figure 1 gives an overview over a simple state machine. It contains the three states "State1",
223 "State2" and "State3". There are transitions from "State1" to "State2", "State2" to "State2", etc.
224 Some of the transitions provide additional information with regard to what causes (or triggers)
225 the transition, for example the call of "Method1" for the transition from "State1" to "State2". The
226 effect (or action) of the transition can also be specified, for example the generation of an Event
227 of the "EventType1" in the same transition. The notation used to identify the cause is simply
228 listing it on the transition, the effect is prefixed with a "/". More than one cause or effect are
229 separated by a ",". Not every transition has to have a cause or effect, for example the transition
230 between "State2" and "State3".
232 Figure 1 – Example of a simple state machine
233 For simplicity, the state machines described in this specification will only support causes in form
234 of specifying Methods that have to be called and effects in form of EventTypes of Events that
235 are generated. However, the defined infrastructure allows extending this to support additional
236 different causes and effects.
237 4.2.2 State machine containing substates
238 Figure 2 shows an example of a state machine where "State6" is a sub-state-machine. This
239 means, that when the overall state machine is in State6, this state can be distinguished to be
240 in the sub-states "State7" or "State8". Sub-state-machines can be nested, that is, "State7" could
241 be another sub-state-machine.

IEC CDV 62541-16 © IEC 2023 3
243 Figure 2 – Example of a state machine having a sub-machine
244 4.3 Definition of state machine
245 The infrastructure of state machines defined in this specification only deals with the basics of
246 state machines needed to support IEC 62541-9 and IEC 62541-10. The intention is to keep the
247 basic simple but extensible.
248 For the state machines defined in this specification we assume that state machines are typed
249 and instances of a type have their states and semantics specified by the type. For some types,
250 this means that the states and transitions are fixed. For other types the states and transitions
251 may be dynamic or unknown. A state machine where all the states are specified explicitly by
252 the type is called a finite state machine.
253 Therefore, we distinguish between StateMachineType and StateMachine and their subtypes like
254 FiniteStateMachineType. The StateMachineType specifies a description of the state machine,
255 that is, its states, transitions, etc., whereas the StateMachine is an instance of the
256 StateMachineType and only contains the current state.
257 Each StateMachine contains information about the current state. If the StateMachineType has
258 SubStateMachines, the StateMachine also contains information about the current state of the
259 SubStateMachines. StateMachines which have their states completely defined by the type are
260 instances of a FiniteStateMachineType.
261 Each FiniteStateMachineType has one or more States. For simplicity, we do not distinguish
262 between different States like the start or the end states.
263 Each State can have one or more SubStateMachines.
264 Each FiniteStateMachineType may have one or more Transitions. A Transition is directed and
265 points from one State to another State.
266 Each Transition can have one or more Causes. A Cause leads a FiniteStateMachine to change
267 its current State from the source of the Transition to its target. In this specification we only
268 specify Method calls to be Causes of Transitions. Transitions do not have to have a Cause. A
269 Transition can always be caused by some server-internal logic that is not exposed in the
270 AddressSpace.
4 IEC CDV 62541-16 © IEC 2023
271 Each Transition can have one or more Effects. An Effect occurs if the Transition is used to
272 change the State of a StateMachine. In this specification we only specify the generation of
273 Events to be Effects of a Transition. A Transition is not required to expose any Effects in the
274 AddressSpace.
275 Although this specification only specifies simple concepts for state machines, the provided
276 infrastructure is extensible. If needed, special States can be defined as well as additional
277 Causes or Effects.
278 4.4 Representation of state machines in the AddressSpace
279 4.4.1 Overview
280 The types defined in this specification are illustrated in Figure 3. The
281 MyFiniteStateMachineType is a minimal example which illustrates how these Types can be used
282 to describe a StateMachine. See IEC 62541-9 and IEC 62541-10 for additional examples of
283 StateMachines.
StateMachineType
StateVariableType
CurrentState Id
LastTransition Name
FiniteStateMachineType Number
Effective
DisplayName
MyFiniteStateMachineType
TransitionVariableType
MyState StateType Id
ToState FromState
Name
GeneratesEvent StateNumber
MyTransition
Number
TransitionType
TransitionTime
HasCause
MyMethod
TransitionNumber
HasEffect
MyEventType InitialStateType
286 Figure 3 – The StateMachine Information Model

IEC CDV 62541-16 © IEC 2023 5
287 4.4.2 StateMachineType
288 The StateMachineType is the base ObjectType for all StateMachineTypes. It defines a single
289 Variable which represents the current state of the machine. An instance of this ObjectType shall
290 generate an Event whenever a significant state change occurs. The Server decides which state
291 changes are significant. Servers shall use the GeneratesEvent ReferenceType to indicate which
292 Event(s) could be produced by the StateMachine.
293 Subtypes may add Methods which affect the state of the machine. The Executable Attribute is
294 used to indicate whether the Method is valid given the current state of the machine. The
295 generation of AuditEvents for Methods is defined in IEC 62541-4. A StateMachine may not be
296 active. In this case, the CurrentState and LastTransition Variables shall have a status equal to
297 Bad_StateNotActive (see Table 17).
298 Subtypes may add components which are instances of StateMachineTypes. These components
299 are considered to be sub-states of the StateMachine. SubStateMachines are only active when
300 the parent machine is in an appropriate state.
301 Events produced by SubStateMachines may be suppressed by the parent machine. In some
302 cases, the parent machine will produce a single Event that reflects changes in multiple
303 SubStateMachines.
304 FiniteStateMachineType is a subtype of StateMachineType that provides a mechanism to
305 explicitly define the states and transitions. A Server should use this mechanism if it knows what
306 the possible states are and the state machine is not trivial. The FiniteStateMachineType is
307 defined in 4.4.5.
308 The StateMachineType is formally defined in Table 1.
309 Table 1 – StateMachineType definition
Attribute Value
BrowseName StateMachineType
IsAbstract False
References Node BrowseName DataType TypeDefinition Modelling
Class Rule
Subtype of the BaseObjectType defined in IEC 62541-5
Note that a Reference to this subtype is not shown in the definition of the BaseObjectType.
HasSubtype ObjectType FiniteStateMachineType Defined in 4.4.5
HasComponent Variable CurrentState LocalizedText StateVariableType Mandatory
HasComponent Variable LastTransition LocalizedText TransitionVariableType Optional
Conformance Units
Base Info State Machine Instance
311 CurrentState stores the current state of an instance of the StateMachineType. CurrentState
312 provides a human readable name for the current state which may not be suitable for use in
313 application control logic. Applications should use the Id Property of CurrentState if they need a
314 unique identifier for the state.
315 LastTransition stores the last transition which occurred in an instance of the StateMachineType.
316 LastTransition provides a human readable name for the last transition which may not be suitable
317 for use in application control logic. Applications should use the Id Property of LastTransition if
318 they need a unique identifier for the transition.
319 4.4.3 StateVariableType
320 The StateVariableType is the base VariableType for Variables that store the current state of a
321 StateMachine as a human readable name.
322 The StateVariableType is formally defined in Table 2.

6 IEC CDV 62541-16 © IEC 2023
323 Table 2 – StateVariableType definition
Attribute Value
BrowseName StateVariableType
DataType LocalizedText
ValueRank −1 (−1 = Scalar)
IsAbstract False
References Node BrowseName DataType TypeDefinition Modelling
Class Rule
Subtype of the BaseDataVariableType defined in IEC 62541-5
Note that a Reference to this subtype is not shown in the definition of the BaseDataVariableType.
HasSubtype VariableType FiniteStateVariableType Defined in 4.4.6
HasProperty Variable Id BaseDataType PropertyType Mandatory
HasProperty Variable Name QualifiedName PropertyType Optional
HasProperty Variable Number UInt32 PropertyType Optional
HasProperty Variable EffectiveDisplayName LocalizedText PropertyType Optional
Conformance Units
Base Info State Machine Instance
325 Id is a name which uniquely identifies the current state within the StateMachineType. A subtype
326 may restrict the DataType.
327 Name is a QualifiedName which uniquely identifies the current state within the
328 StateMachineType.
329 Number is an integer which uniquely identifies the current state within the StateMachineType.
330 EffectiveDisplayName contains a human readable name for the current state of the state
331 machine after taking the state of any SubStateMachines in account. There is no rule specified
332 for which state or sub-state should be used. It is up to the Server and will depend on the
333 semantics of the StateMachineType.
334 StateMachines produce Events which may include the current state of a StateMachine. In that
335 case Servers shall provide all the optional Properties of the StateVariableType in the Event,
336 even if they are not provided on the instances in the AddressSpace.
337 4.4.4 TransitionVariableType
338 The TransitionVariableType is the base VariableType for Variables that store a Transition that
339 occurred within a StateMachine as a human readable name.
340 The SourceTimestamp for the value specifies when the Transition occurred. This value may
341 also be exposed with the TransitionTime Property.
342 The TransitionVariableType is formally defined in Table 3.

IEC CDV 62541-16 © IEC 2023 7
343 Table 3 – TransitionVariableType definition
Attribute Value
BrowseName TransitionVariableType
DataType LocalizedText
ValueRank −1 (−1 = Scalar)
IsAbstract False
References Node BrowseName DataType TypeDefinition Modelling
Class Rule
Subtype of the BaseDataVariableType defined in IEC 62541-5
Note that a Reference to this subtype is not shown in the definition of the BaseDataVariableType.
HasSubtype VariableType FiniteTransitionVariableType Defined in 4.4.7
HasProperty Variable Id BaseDataType PropertyType Mandatory
HasProperty Variable Name QualifiedName PropertyType Optional
HasProperty Variable Number UInt32 PropertyType Optional
HasProperty Variable TransitionTime UtcTime PropertyType Optional
HasProperty Variable EffectiveTransitionTime UtcTime PropertyType Optional
Conformance Units
Base Info State Machine Instance
345 Id is a name which uniquely identifies a Transition within the StateMachineType. A subtype may
346 restrict the DataType.
347 Name is a QualifiedName which uniquely identifies a transition within the StateMachineType.
348 Number is an integer which uniquely identifies a transition within the StateMachineType.
349 TransitionTime specifies when the transition occurred.
350 EffectiveTransitionTime specifies the time when the current state or one of its substates was
351 entered. If, for example, a StateA is active and – while active – switches several times between
352 its substates SubA and SubB, then the TransitionTime stays at the point in time where StateA
353 became active whereas the EffectiveTransitionTime changes with each change of a substate.
354 4.4.5 FiniteStateMachineType
355 The FiniteStateMachineType is the base ObjectType for StateMachines that explicitly define
356 the possible States and Transitions. Once the States and Transitions are defined subtypes shall
357 not add new States and Transitions (see 4.4.18). Subtypes may add causes or effects.
358 The States of the machine are represented with instances of the StateType ObjectType. Each
359 State shall have a BrowseName which is unique within the StateMachine and shall have a
360 StateNumber which shall also be unique across all States defined in the StateMachine. Be
361 aware that States in a SubStateMachine may have the same StateNumber or BrowseName as
362 States in the parent machine. A concrete subtype of FiniteStateMachineType shall define at
363 least one State.
364 A StateMachine may define one State which is an instance of the InitialStateType. This State
365 is the State that the machine goes into when it is activated.
366 The Transitions that may occur are represented with instances of the TransitionType. Each
367 Transition shall have a BrowseName which is unique within the StateMachine and may have a
368 TransitionNumber which shall also be unique across all Transitions defined in the
369 StateMachine.
370 The initial State for a Transition is a StateType Object which is the target of a FromState
371 Reference. The final State for a Transition is a StateType Object which is the target of a ToState
372 Reference. The FromState and ToState References shall always be specified.
373 A Transition may produce an Event. The Event is indicated by a HasEffect Reference to a
374 subtype of BaseEventType. The StateMachineType shall have GeneratesEvent References to
375 the targets of a HasEffect Reference for each of its Transitions.

8 IEC CDV 62541-16 © IEC 2023
376 A FiniteStateMachineType may define Methods that cause a transition to occur. These Methods
377 are targets of HasCause References for each of the Transitions that may be triggered by the
378 Method. The Executable Attribute for a Method is used to indicate whether the current State of
379 the machine allows the Method to be called.
380 A FiniteStateMachineType may have sub-state-machines which are represented as instances
381 of StateMachineType ObjectTypes. Each State shall have a HasSubStateMachine Reference
382 to the StateMachineType Object which represents the child States. The SubStateMachine is
383 not active if the parent State is not active. In this case the CurrentState and LastTransition
384 Variables of the SubStateMachine shall have a status equal to Bad_StateNotActive (see Table
385 17).
386 The FiniteStateMachineType is formally defined in Table 4.
387 Table 4 – FiniteStateMachineType definition
Attribute Value
BrowseName FiniteStateMachineType
IsAbstract True
References Node BrowseName DataType TypeDefinition Modelling
Class Rule
Subtype of the StateMachineType defined in 4.4.2
HasComponent Variable CurrentState LocalizedText FiniteStateVariableType Mandatory
HasComponent Variable LastTransition LocalizedText FiniteTransitionVariableType Optional
HasComponent Variable AvailableStates NodeId[] BaseDataVariableType Optional
HasComponent Variable AvailableTransitions NodeId[] BaseDataVariableType Optional
Conformance Units
Base Info Finite State Machine Instance
Base Info Available States and Transitions
389 In some Servers an instance of a StateMachine may restrict the States and / or Transitions that
390 are available. These restrictions may result from the internal design of the instance. For
391 example, the StateMachine for an instrument’s limit alarm which only supports Hi and HiHi and
392 can not produce a Low or LowLow. An instance of a StateMachine may also dynamically change
393 the available States and/or Transitions based on its operating mode. For example, when a piece
394 of equipment is in a maintenance mode the available States may be limited to some subset of
395 the States available during normal operation.
396 The AvailableStates Variable provides a NodeId list of the States that are present in the
397 StateMachine instance. The list may change during operation of the Server.
398 The AvailableTransitions Variable provides a NodeId list of the Transitions that are present in
399 the StateMachine instance. The list may change during operation of the Server.
400 An example of a FiniteStateMachine type is shown in Figure 4.

IEC CDV 62541-16 © IEC 2023 9
Held (11)
M
L
Unholding (12) Holding (10)
N
K
Idle (4) D Starting (5) E Execute (6) F Complete (13)
G
J
C
Unsuspended (9) Suspending (7)
ResettingState
(3)
B
I
Suspending (8)
H
A
N
Transactions to
Stopped (2) O Stopping (1) {P,Q,R,S,T,U,V,W,Y} Stopped (2) from
States (5 to 13)
402 Figure 4 – Example of a FiniteStateMachine type
403 An example instance of the type is shown in Figure 5. In this example the States {7,8,9} and
404 the Transitions {G,H,I,J} are not available in this instance.
Held (11)
M
L
Unholding (12) Holding (10)
N
K
Idle (4) Starting (5) Execute (6) Complete (13)
D E F
C
ResettingState
N
(3)
B
A
Transactions to Stopped (2)
Stopped (2) Stopping (1) from
O {S,T,U,V,W,Y}
States (5,6,10,11,12 and 13)
406 Figure 5 – Example of a FiniteStateMachine instance
407 4.4.6 FiniteStateVariableType
408 The FiniteStateVariableType is a subtype of StateVariableType and is used to store the current
409 state of a FiniteStateMachine as a human readable name.
410 The FiniteStateVariableType is formally defined in Table 5.

10 IEC CDV 62541-16 © IEC 2023

411 Table 5 – FiniteStateVariableType definition
Attribute Value
BrowseName FiniteStateVariableType
DataType LocalizedText
ValueRank −1 (−1 = Scalar)
IsAbstract False
References Node BrowseName DataType TypeDefinition Modelling
Class Rule
Subtype of the StateVariableType defined 4.4.3
HasProperty Variable Id NodeId PropertyType Mandatory
Conformance Units
Base Info Finite State Machine Instance
413 Id is inherited from the StateVariableType and overridden to reflect the required DataType. This
414 value shall be the NodeId of one of the State Objects of the FiniteStateMachineType. If the
415 FiniteStateMachine is subtyped, it shall be the NodeId of the State defined on the supertype,
416 i.e., where the State is defined the first time in the type hierarchy.
417 The Name Property is inherited from StateVariableType. Its Value shall be the BrowseName of
418 one of the State Objects of the FiniteStateMachineType.
419 The Number Property is inherited from StateVariableType. Its Value shall be the StateNumber
420 for one of the State Objects of the FiniteStateMachineType.
421 4.4.7 FiniteTransitionVariableType
422 The FiniteTransitionVariableType is a subtype of TransitionVariableType and is used to store a
423 Transition that occurred within a FiniteStateMachine as a human readable name.
424 The FiniteTransitionVariableType is formally defined in Table 6.
425 Table 6 – FiniteTransitionVariableType definition
Attribute Value
BrowseName FiniteTransitionVariableType
DataType LocalizedText
ValueRank −1 (−1 = Scalar)
IsAbstract False
References Node BrowseName DataType TypeDefinition Modelling
Class Rule
Subtype of the TransitionVariableType defined in 4.4.4
Note that a Reference to this subtype is not shown in the definition of the BaseDataVariableType.
HasProperty Variable Id NodeId PropertyType Mandatory
Conformance Units
Base Info Finite State Machine Instance
427 Id is inherited from the TransitionVariableType and overridden to reflect the required DataType.
428 This value shall be the NodeId of one of the Transition Objects of the FiniteStateMachineType.
429 If the FiniteStateMachine is subtyped, it shall be the NodeId of the Transition defined on the
430 supertype, i.e., where the Transition is defined the first time in the type hierarchy.
431 The Name Property is inherited from the TransitionVariableType. Its Value shall be the
432 BrowseName of one of the Transition Objects of the FiniteStateMachineType.
433 The Number Property is inherited from the TransitionVariableType. Its Value shall be the
434 TransitionNumber for one of the Transition Objects of the FiniteStateMachineType.
435 4.4.8 StateType
436 States of a FiniteStateMachine are represented as Objects of the StateType. Each Object of
437 the StateType or one of its subty
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.