IEC 61131-3:2025
(Main)Programmable controllers – Part 3: Programming languages
Programmable controllers – Part 3: Programming languages
IEC 61131-3:2025 specifies the syntax and semantics of programming languages for programmable controllers as defined in IEC 61131-1.
This document specifies the syntax and semantics of a unified suite of programming languages for programmable controllers (PCs). This suite consists of the textual language structured text (ST), and the graphical languages, ladder diagram (LD) and function block diagram (FBD).
An additional set of graphical and equivalent textual elements named sequential function chart (SFC) is defined for structuring the internal organization of programs and function blocks. Also, configuration elements are defined which support the installation of programmable controller programs into programmable controller systems.
In addition, features are defined which facilitate communication among programmable controllers and other components of automated systems.
This edition includes the following significant technical changes with respect to the previous edition:
a) inclusion of UTF-8 strings and their associated functions;
b) Annex B contains a comprehensive list of features that have been added, removed or deprecated in comparison to IEC 61131-3:2013.
Automates programmables - Partie 3: Langages de programmation
IEC 61131-3: 2025 spécifie la syntaxe et la sémantique des langages de programmation utilisés pour les automates programmables tels que définis dans l’IEC 61131-1.
Le présent document spécifie la syntaxe et la sémantique d’une suite unifiée de langages de programmation utilisés pour les automates programmables (AP). Cette suite est constituée du langage textuel ST (Structured Text) et des langages graphiques LD (Ladder Diagram) et FBD (Function Block Diagram).
Un autre ensemble d’éléments graphiques et textuels équivalents appelé SFC (Sequential Function Chart) est défini pour structurer l’organisation interne des programmes et des blocs fonctionnels. Des éléments de configuration qui prennent en charge l’installation des programmes pour automate programmable dans des systèmes d’automate programmable, sont également définis.
De plus, des caractéristiques sont définies pour faciliter la communication entre les automates programmables et les autres composants des systèmes automatisés.
Cette édition inclut les modifications techniques majeures suivantes par rapport à l’édition précédente:
a) inclusion des chaînes UTF-8 et de leurs fonctions associées;
b) l’Annexe B contient une liste complète des fonctionnalités qui ont été ajoutées, supprimées ou déconseillées par rapport à l’IEC 61131-3:2013.
General Information
- Status
- Published
- Publication Date
- 21-May-2025
- Technical Committee
- SC 65B - Measurement and control devices
- Drafting Committee
- WG 7 - TC 65/SC 65B/WG 7
- Current Stage
- PPUB - Publication issued
- Start Date
- 22-May-2025
- Completion Date
- 13-Jun-2025
Relations
- Effective Date
- 05-Sep-2023
Overview
IEC 61131-3:2025 is the latest international standard published by the International Electrotechnical Commission (IEC) that defines the syntax and semantics of programming languages used for programmable controllers (PCs). As part three of the IEC 61131 series, this edition focuses on programming languages for industrial automation and control systems, establishing a unified framework for developing, structuring, and managing control software.
This 2025 revision introduces significant updates-including UTF-8 string support and comprehensive feature changes-ensuring modern applicability and enhanced interoperability of programmable controllers within automated systems. It specifies key programming languages such as Structured Text (ST), Ladder Diagram (LD), Function Block Diagram (FBD), and Sequential Function Chart (SFC), providing both textual and graphical options to meet diverse engineering needs.
Key Topics
- Unified Programming Languages: Standardizes the use of ST (textual), LD and FBD (graphical), and SFC (program organization) to enhance flexibility in program development for PCs.
- Syntax and Semantics: Defines clear rules and structures for program coding and interpretation to ensure reliability and consistency across different devices and vendors.
- Program Organization Units (POUs): Includes functions, function blocks, programs, classes, and interfaces, promoting modularity, reusability, and object-oriented features like inheritance and polymorphism.
- Configuration Elements: Addresses how programs are installed and configured within PC systems to optimize deployment and integration.
- Data Types and Literals: Defines elementary and user-defined data types, including recent inclusion of UTF-8 strings, extending data representation capabilities.
- Communication Model: Facilitates interaction between programmable controllers and other automated system components, enhancing system interoperability.
- Concurrency and Synchronization: Specifies mechanisms like mutexes and semaphores for managing parallel task execution within automation workflows.
- Compliance and Feature Tables: Includes detailed compliance requirements and a list of added, deprecated, or removed features compared to the 2013 edition to aid implementers.
- Annexes and Informative Content: Provides normative formal language specifications and informative material such as major changes for ease of transition and implementation.
Applications
IEC 61131-3:2025 serves as the cornerstone standard for engineers, developers, and integrators designing and programming industrial automation systems. Its comprehensive programming language suite supports:
- Industrial Machine Control: Creating robust control programs for manufacturing equipment and processing plants using standardized languages.
- Automation System Integration: Enabling seamless communication and consistent program behavior across programmable controllers from multiple vendors.
- Software Development and Maintenance: Facilitating modular, scalable, and maintainable software through clear programming conventions, object-oriented constructs, and configuration elements.
- Training and Certification: Establishing a global benchmark for teaching automation programming concepts and validating professional skills.
- Smart Factory and Industry 4.0: Supporting advanced automation and communication requirements necessary for modern intelligent manufacturing environments.
- Cross-industry Use: Applicable across sectors including automotive, energy, food processing, and water treatment where programmable controllers are integral.
The inclusion of UTF-8 strings and extended textual elements also boosts the capability to handle internationalization and complex data formats, addressing global industry needs.
Related Standards
- IEC 61131-1:2025 - General definitions and concepts for programmable controllers, forming the architectural foundation upon which IEC 61131-3 builds its language specifications.
- IEC 61131-2 - Covers equipment requirements and testing for programmable controllers, complementary to the programming language focus.
- ISO/IEC 10646 - International standard for Universal Character Set (UCS), referenced in Annex C for string and character literals compliance.
- IEC 61499 - Function blocks for distributed control systems, related for advanced automation architecture beyond the scope of IEC 61131-3.
- IEC 61508 - Functional safety standards relevant for programming practices when safety controllers are involved.
- IEC Electropedia and IEC Just Published - Essential IEC resources for terminology and the latest updates on standards and technical publications.
By harmonizing programming languages for PCs through IEC 61131-3:2025, industries worldwide can improve automation software portability, reduce development times, and foster innovation with standardized tools and methods.
Frequently Asked Questions
IEC 61131-3:2025 is a standard published by the International Electrotechnical Commission (IEC). Its full title is "Programmable controllers – Part 3: Programming languages". This standard covers: IEC 61131-3:2025 specifies the syntax and semantics of programming languages for programmable controllers as defined in IEC 61131-1. This document specifies the syntax and semantics of a unified suite of programming languages for programmable controllers (PCs). This suite consists of the textual language structured text (ST), and the graphical languages, ladder diagram (LD) and function block diagram (FBD). An additional set of graphical and equivalent textual elements named sequential function chart (SFC) is defined for structuring the internal organization of programs and function blocks. Also, configuration elements are defined which support the installation of programmable controller programs into programmable controller systems. In addition, features are defined which facilitate communication among programmable controllers and other components of automated systems. This edition includes the following significant technical changes with respect to the previous edition: a) inclusion of UTF-8 strings and their associated functions; b) Annex B contains a comprehensive list of features that have been added, removed or deprecated in comparison to IEC 61131-3:2013.
IEC 61131-3:2025 specifies the syntax and semantics of programming languages for programmable controllers as defined in IEC 61131-1. This document specifies the syntax and semantics of a unified suite of programming languages for programmable controllers (PCs). This suite consists of the textual language structured text (ST), and the graphical languages, ladder diagram (LD) and function block diagram (FBD). An additional set of graphical and equivalent textual elements named sequential function chart (SFC) is defined for structuring the internal organization of programs and function blocks. Also, configuration elements are defined which support the installation of programmable controller programs into programmable controller systems. In addition, features are defined which facilitate communication among programmable controllers and other components of automated systems. This edition includes the following significant technical changes with respect to the previous edition: a) inclusion of UTF-8 strings and their associated functions; b) Annex B contains a comprehensive list of features that have been added, removed or deprecated in comparison to IEC 61131-3:2013.
IEC 61131-3:2025 is classified under the following ICS (International Classification for Standards) categories: 25.040.40 - Industrial process measurement and control; 35.240.50 - IT applications in industry. The ICS classification helps identify the subject area and facilitates finding related standards.
IEC 61131-3:2025 has the following relationships with other standards: It is inter standard links to IEC 61131-3:2013. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.
You can purchase IEC 61131-3:2025 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of IEC standards.
Standards Content (Sample)
IEC 61131-3 ®
Edition 4.0 2025-05
INTERNATIONAL
STANDARD
NORME
INTERNATIONALE
Programmable controllers –
Part 3: Programming languages
Automates programmables –
Partie 3: Langages de programmation
ICS 25.040.40, 35.240.50 ISBN 978-2-8327-0436-3
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or
by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from either
IEC or IEC's member National Committee in the country of the requester. If you have any questions about IEC copyright
or have an enquiry about obtaining additional rights to this publication, please contact the address below or your local
IEC member National Committee for further information.
Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite ni
utilisée sous quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie et
les microfilms, sans l'accord écrit de l'IEC ou du Comité national de l'IEC du pays du demandeur. Si vous avez des
questions sur le copyright de l'IEC ou si vous désirez obtenir des droits supplémentaires sur cette publication, utilisez
les coordonnées ci-après ou contactez le Comité national de l'IEC de votre pays de résidence.
IEC Secretariat Tel.: +41 22 919 02 11
3, rue de Varembé info@iec.ch
CH-1211 Geneva 20 www.iec.ch
Switzerland
About the IEC
The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
International Standards for all electrical, electronic and related technologies.
About IEC publications
The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
latest edition, a corrigendum or an amendment might have been published.
IEC publications search - IEC Products & Services Portal - products.iec.ch
webstore.iec.ch/advsearchform Discover our powerful search engine and read freely all the
The advanced search enables to find IEC publications by a publications previews, graphical symbols and the glossary.
variety of criteria (reference number, text, technical With a subscription you will always have access to up to date
committee, …). It also gives information on projects, content tailored to your needs.
replaced and withdrawn publications.
Electropedia - www.electropedia.org
IEC Just Published - webstore.iec.ch/justpublished The world's leading online dictionary on electrotechnology,
Stay up to date on all new IEC publications. Just Published containing more than 22 500 terminological entries in English
details all new publications released. Available online and and French, with equivalent terms in 25 additional languages.
once a month by email. Also known as the International Electrotechnical Vocabulary
(IEV) online.
IEC Customer Service Centre - webstore.iec.ch/csc
If you wish to give us your feedback on this publication or
need further assistance, please contact the Customer
Service Centre: sales@iec.ch.
A propos de l'IEC
La Commission Electrotechnique Internationale (IEC) est la première organisation mondiale qui élabore et publie des
Normes internationales pour tout ce qui a trait à l'électricité, à l'électronique et aux technologies apparentées.
A propos des publications IEC
Le contenu technique des publications IEC est constamment revu. Veuillez vous assurer que vous possédez l’édition la
plus récente, un corrigendum ou amendement peut avoir été publié.
Recherche de publications IEC - IEC Products & Services Portal - products.iec.ch
webstore.iec.ch/advsearchform Découvrez notre puissant moteur de recherche et consultez
La recherche avancée permet de trouver des publications gratuitement tous les aperçus des publications, symboles
IEC en utilisant différents critères (numéro de référence, graphiques et le glossaire. Avec un abonnement, vous aurez
texte, comité d’études, …). Elle donne aussi des toujours accès à un contenu à jour adapté à vos besoins.
informations sur les projets et les publications remplacées
ou retirées. Electropedia - www.electropedia.org
Le premier dictionnaire d'électrotechnologie en ligne au
IEC Just Published - webstore.iec.ch/justpublished monde, avec plus de 22 500 articles terminologiques en
Restez informé sur les nouvelles publications IEC. Just anglais et en français, ainsi que les termes équivalents
Published détaille les nouvelles publications parues. dans 25 langues additionnelles. Egalement appelé
Disponible en ligne et une fois par mois par email. Vocabulaire Electrotechnique International (IEV) en ligne.
Service Clients - webstore.iec.ch/csc
Si vous désirez nous donner des commentaires sur cette
publication ou si vous avez des questions contactez-
nous: sales@iec.ch.
– 2 – IEC 61131-3:2025 © IEC 2025
CONTENTS
FOREWORD . 7
1 Scope . 9
2 Normative references . 9
3 Terms and definitions . 9
4 Architectural models . 17
4.1 Software model . 17
4.2 Communication model . 19
4.3 Programming model . 20
5 Compliance . 22
5.1 General . 22
5.2 Feature tables . 22
5.3 Implementer’s compliance statement . 22
6 Common elements . 24
6.1 Use of printed characters . 24
6.1.1 Character set. 24
6.1.2 Identifiers . 24
6.1.3 Keywords . 25
6.1.4 Use of white space . 25
6.1.5 Comments . 25
6.2 Pragma. 26
6.3 Literals – External representation of data . 26
6.3.1 General. 26
6.3.2 Numeric literals and string literals . 26
6.3.3 Character string literals . 28
6.3.4 Duration literal . 31
6.3.5 Date and time of day literal . 31
6.4 Data types . 32
6.4.1 General. 32
6.4.2 Elementary data types (BOOL, INT, REAL, STRING, etc.) . 32
6.4.3 Generic data types . 36
6.4.4 User-defined data types . 37
6.5 Variables . 51
6.5.1 Declaration and initialization of variables . 51
6.5.2 Variable sections . 54
6.5.3 Variable length ARRAY variables . 57
6.5.4 Constant variables . 59
6.5.5 Directly represented variables ( % ) . 59
6.5.6 Retentive variables (RETAIN, NON_RETAIN) . 62
6.6 Program organization units (POUs) . 63
6.6.1 Common features for POUs . 63
6.6.2 Functions . 77
6.6.3 Function blocks. 113
6.6.4 Programs . 132
6.6.5 Classes. 134
6.6.6 Interface . 155
6.6.7 Object-oriented features for function block types . 165
6.6.8 Polymorphism . 171
6.7 Sequential function chart (SFC) elements. 174
6.7.1 General. 174
6.7.2 Steps . 175
6.7.3 Transitions . 176
6.7.4 Actions . 179
6.7.5 Rules of evolution . 187
6.8 Configuration elements . 195
6.8.1 General. 195
6.8.2 Tasks . 200
6.9 Synchronization of concurrent execution . 205
6.9.1 General. 205
6.9.2 Mutex . 206
6.9.3 Object-oriented mutex . 208
6.9.4 Semaphore. 209
6.9.5 Object-oriented semaphore . 211
6.10 Namespaces . 211
6.10.1 General. 211
6.10.2 Declaration . 212
6.10.3 Usage . 217
6.10.4 Namespace directive USING . 218
7 Textual languages . 221
7.1 Common elements . 221
7.2 Structured text (ST) . 221
7.2.1 General. 221
7.2.2 Expressions . 221
7.2.3 Statements . 223
8 Graphical languages . 229
8.1 Common elements . 229
8.1.1 General. 229
8.1.2 Representation of variables and instances . 229
8.1.3 Representation of lines and blocks . 231
8.1.4 Direction of flow in networks . 232
8.1.5 Evaluation of networks . 233
8.1.6 Execution control elements . 234
8.2 Ladder diagram (LD) . 235
8.2.1 General. 235
8.2.2 Power rails . 236
8.2.3 Link elements and states . 236
8.2.4 Contacts . 236
8.2.5 Coils . 238
8.2.6 Functions and function blocks . 239
8.2.7 Order of network evaluation . 239
8.3 Function block diagram (FBD) . 240
8.3.1 General. 240
8.3.2 Combination of elements . 240
8.3.3 Order of network evaluation . 240
Annex A (normative) Formal specification of the language elements . 241
– 4 – IEC 61131-3:2025 © IEC 2025
Annex B (informative) List of major changes and extensions of Edition 4 of
IEC 61131-3 . 249
B.1 General . 249
B.2 New features . 249
B.3 Significant changes . 249
B.4 Deletions . 250
B.5 Deprecations . 250
Annex C (informative) Relating strings, characters, and their literals to ISO/IEC 10646 . 251
Bibliography . 253
Figure 1 – Software model . 18
Figure 2 – Communication model . 20
Figure 3 – Combination of programmable controller language elements . 21
Figure 4 – Implementer’s compliance statement (Example) . 23
Figure 5 – Hierarchy of the generic data types . 37
Figure 6 – Initialization by literals and constant expressions (Rules) . 38
Figure 7 – Variable declaration keywords (Summary) . 54
Figure 8 – Usage of VAR_GLOBAL, VAR_EXTERNAL and CONSTANT (Rules). 55
Figure 9 – Conditions for the initial value of a variable (Rules) . 62
Figure 10 – Formal and non-formal representation of call (Examples) . 68
Figure 11 – Data type conversion rules – implicit and explicit (Summary) . 72
Figure 12 – Implicit type conversions overview . 73
Figure 13 – Data type conversion from string types to array of bytes . 96
Figure 14 – Data type conversion from array of bytes to string types. 97
Figure 15 – Usage of function block input and output parameters (Rules) . 123
Figure 16 – Usage of function block input and output parameters (Illustration of rules) . 124
Figure 17 – Standard timer function blocks – timing diagrams (Rules) . 130
Figure 18 – Recommended implementation in pseudo code for timer . 132
Figure 19 – Overview of inheritance and interface implementation . 135
Figure 20 – Inheritance of classes (Illustration) . 144
Figure 21 – Interface with derived classes (Illustration) . 157
Figure 22 – Inheritance of interface and class (Illustration) . 162
Figure 23 – Function block types with optional body and methods (Illustration) . 168
Figure 24 – Inheritance of function block body with SUPER() (Example) . 170
Figure 25 – ACTION_CONTROL function block – External interface (Summary) . 184
Figure 26 – ACTION_CONTROL function block body (Summary) . 185
Figure 27 – Action control (Example) . 186
Figure 28 – SFC evolution (Rules). 193
Figure 29 – SFC errors (Example) . 194
Figure 30 – Configuration (Example) . 196
Figure 31 – CONFIGURATION and RESOURCE declaration (Example). 199
Figure 32 – The reference implementation of mutex functions . 208
Figure 33 – The reference implementation of object-oriented mutex. 209
Figure 34 – The reference implementation of semaphore functions . 210
Figure 35 – The reference implementation of object-oriented semaphore . 211
Figure 36 – Accessibility using namespaces (Rules) . 214
Figure 37 – Common textual elements (Summary) . 221
Figure C.1 – Relation between ISO/IEC 10646 and IEC 61131-3 . 251
Figure C.2 – Example of encoded strings in memory . 252
Table 1 – Character set . 24
Table 2 – Identifiers . 24
Table 3 – Comments . 26
Table 4 – Pragma . 26
Table 5 – Numeric literals . 28
Table 6 – Character string literals . 29
Table 7 – Two-character combinations in character strings . 30
Table 8 – Duration literals . 31
Table 9 – Date and time of day literals . 32
Table 10 – Elementary data types . 33
Table 11 – Declaration of user-defined data types and initialization . 38
Table 12 – Reference operations . 51
Table 13 – Declaration of variables . 53
Table 14 – Initialization of variables . 53
Table 15 – Variable-length ARRAY variables . 57
Table 16 – Directly represented variables . 60
Table 17 – Partial access of ANY_BIT variables (except BOOL) . 65
Table 18 – Execution control graphically using EN and ENO . 70
Table 19 – Function declaration . 79
Table 20 – Function call . 81
Table 21 – Typed and overloaded functions . 84
Table 22 – Data type conversion function . 86
Table 23 – Data type conversion of numeric data types . 88
Table 24 – Data type conversion of bit data types . 91
Table 25 – Data type conversion of bit and numeric types. 92
Table 26 – Data type conversion of date and time types . 94
Table 27 – Data type conversion of character types . 95
Table 28 – Numerical and arithmetic functions . 98
Table 29 – Arithmetic functions . 99
Table 30 – Bit shift functions. 100
Table 31 – Bitwise Boolean functions . 100
Table 32 – Selection functions . 101
Table 33 – Comparison functions . 102
Table 34 – Character string functions . 103
Table 35 – Numerical functions of time and duration data types . 105
Table 36 – Additional functions of time data types CONCAT and SPLIT . 107
Table 37 – Function for endianness conversion . 111
– 6 – IEC 61131-3:2025 © IEC 2025
Table 38 – Functions of enumerated and named values data types . 111
Table 39 – Validate functions . 112
Table 40 – Function ASSERT . 112
Table 41 – Function block type declaration. 114
Table 42 – Function block instance declaration . 118
Table 43 – Function block call. 120
a
Table 44 – Standard bistable function blocks . 126
Table 45 – Standard edge detection function blocks . 127
Table 46 – Standard counter function blocks . 128
Table 47 – Standard timer function blocks . 129
Table 48 – Program declaration . 133
Table 49 – Class . 136
Table 50 – Class instance declaration . 138
Table 51 – Textual call of methods – Formal and non-formal parameter list . 142
Table 52 – Interface . 156
Table 53 – Assignment attempt . 164
Table 54 – Object-oriented function block type . 166
Table 55 – SFC step . 176
Table 56 – SFC transition and transition condition . 178
Table 57 – SFC declaration of actions . 180
Table 58 – Association between step and action . 181
Table 59 – Action block . 182
Table 60 – Action qualifiers . 182
Table 61 – Action control features . 187
Table 62 – Sequence evolution – graphical . 188
Table 63 – Configuration and resource declaration . 198
Table 64 – Task . 201
Table 65 – Mutex type and operations . 207
Table 66 – Semaphore type and operations . 209
Table 67 – Namespace . 216
Table 68 – Nested namespace declaration options. 217
Table 69 – Namespace directive USING . 220
Table 70 – Operators of the ST language . 223
Table 71 – ST language statements . 224
Table 72 – Graphical execution control elements . 235
Table 73 – Power rails and link elements . 236
Table 74 – Contacts. 237
Table 75 – Coils . 239
INTERNATIONAL ELECTROTECHNICAL COMMISSION
____________
PROGRAMMABLE CONTROLLERS –
Part 3: Programming languages
FOREWORD
1) The International Electrotechnical Commission (IEC) is a worldwide organization for standardization comprising
all national electrotechnical committees (IEC National Committees). The object of IEC is to promote international
co-operation on all questions concerning standardization in the electrical and electronic fields. To this end and
in addition to other activities, IEC publishes International Standards, Technical Specifications, Technical Reports,
Publicly Available Specifications (PAS) and Guides (hereafter referred to as “IEC Publication(s)”). Their
preparation is entrusted to technical committees; any IEC National Committee interested in the subject dealt with
may participate in this preparatory work. International, governmental and non-governmental organizations liaising
with the IEC also participate in this preparation. IEC collaborates closely with the International Organization for
Standardization (ISO) in accordance with conditions determined by agreement between the two organizations.
2) The formal decisions or agreements of IEC on technical matters express, as nearly as possible, an international
consensus of opinion on the relevant subjects since each technical committee has representation from all
interested IEC National Committees.
3) IEC Publications have the form of recommendations for international use and are accepted by IEC National
Committees in that sense. While all reasonable efforts are made to ensure that the technical content of IEC
Publications is accurate, IEC cannot be held responsible for the way in which they are used or for any
misinterpretation by any end user.
4) In order to promote international uniformity, IEC National Committees undertake to apply IEC Publications
transparently to the maximum extent possible in their national and regional publications. Any divergence between
any IEC Publication and the corresponding national or regional publication shall be clearly indicated in the latter.
5) IEC itself does not provide any attestation of conformity. Independent certification bodies provide conformity
assessment services and, in some areas, access to IEC marks of conformity. IEC is not responsible for any
services carried out by independent certification bodies.
6) All users should ensure that they have the latest edition of this publication.
7) No liability shall attach to IEC or its directors, employees, servants or agents including individual experts and
members of its technical committees and IEC National Committees for any personal injury, property damage or
other damage of any nature whatsoever, whether direct or indirect, or for costs (including legal fees) and
expenses arising out of the publication, use of, or reliance upon, this IEC Publication or any other IEC
Publications.
8) Attention is drawn to the Normative references cited in this publication. Use of the referenced publications is
indispensable for the correct application of this publication.
9) IEC draws attention to the possibility that the implementation of this document may involve the use of (a)
patent(s). IEC takes no position concerning the evidence, validity or applicability of any claimed patent rights in
respect thereof. As of the date of publication of this document, IEC had not received notice of (a) patent(s), which
may be required to implement this document. However, implementers are cautioned that this may not represent
the latest information, which may be obtained from the patent database available at https://patents.iec.ch. IEC
shall not be held responsible for identifying any or all such patent rights.
IEC 61131-3 has been prepared by subcommittee 65B: Measurement and control devices, of
IEC technical committee 65: Industrial-process measurement, control and automation. It is an
International Standard.
This fourth edition cancels and replaces the third edition published in 2013. This edition
constitutes a technical revision.
This edition includes the following significant technical changes with respect to the previous
edition:
a) inclusion of UTF-8 strings and their associated functions;
b) Annex B contains a comprehensive list of features that have been added, removed or
deprecated in comparison to IEC 61131-3:2013.
– 8 – IEC 61131-3:2025 © IEC 2025
The text of this International Standard is based on the following documents:
Draft Report on voting
65B/1281/FDIS 65B/1291/RVD
Full information on the voting for its approval can be found in the report on voting indicated in
the above table.
The language used for the development of this International Standard is English.
This document was drafted in accordance with ISO/IEC Directives, Part 2, and developed in
accordance with ISO/IEC Directives, Part 1 and ISO/IEC Directives, IEC Supplement, available
at www.iec.ch/members_experts/refdocs. The main document types developed by IEC are
described in greater detail at www.iec.ch/publications.
A list of all the parts in the IEC 61131 series, published under the general title Programmable
controllers can be found on the IEC website.
The committee has decided that the contents of this document will remain unchanged until the
stability date indicated on the IEC website under webstore.iec.ch in the data related to the
specific document. At this date, the document will be
• reconfirmed,
• withdrawn, or
• revised.
PROGRAMMABLE CONTROLLERS –
Part 3: Programming languages
1 Scope
This part of IEC 61131 specifies the syntax and semantics of programming languages for
programmable controllers as defined in IEC 61131-1.
This document specifies the syntax and semantics of a unified suite of programming languages
for programmable controllers (PCs). This suite consists of the textual language structured text
(ST), and the graphical languages, ladder diagram (LD) and function block diagram (FBD).
An additional set of graphical and equivalent textual elements named sequential function chart
(SFC) is defined for structuring the internal organization of programs and function blocks. Also,
configuration elements are defined which support the installation of programmable controller
programs into programmable controller systems.
In addition, features are defined which facilitate communication among programmable
controllers and other components of automated systems.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content
constitutes requirements of this document. For dated references, only the edition cited applies.
For undated references, the latest edition of the referenced document (including any
amendments) applies.
IEC 61131-1, Programmable controllers – Part 1: General information
IEC 61131-5, Programmable controllers – Part 5: Communications
ISO/IEC 10646, Information technology – Universal Coded Character Set (UCS)
ISO/IEC 60559, Floating-point arithmetic
3 Terms and definitions
For the purposes of this document, the terms and definitions given in IEC 61131-1 and the
following apply.
ISO and IEC maintain terminology databases for use in standardization at the following
addresses:
• IEC Electropedia: available at https://www.electropedia.org/
• ISO Online browsing platform: available at https://www.iso.org/obp
3.1
access path
association of a symbolic name with a variable for the purpose of open communication
– 10 – IEC 61131-3:2025 © IEC 2025
3.2
action
Boolean variable or a collection of operations to be performed, together with an associated
control structure
3.3
action block
graphical language element which utilizes a Boolean input variable to determine the value of a
Boolean output variable or the enabling condition for an action, according to a predetermined
control structure
3.4
aggregate
structured collection of data objects forming a data type
3.5
array
aggregate that consists of data objects, with identical attributes, each of which can be uniquely
referenced by subscripting
3.6
assignment
mechanism to give a value to a variable or to an aggregate
3.7
base type
data type, function block type or class from which further types are inherited or derived
3.8
based number
number represented in a specified base other than ten
3.9
binary coded decimal
BCD
encoding for decimal numbers in which each digit is represented by its own binary sequence
3.10
bistable function block
function block with two stable states controlled by one or more inputs
3.11
bit string
data element consisting of one or more bits
3.12
bit string literal
literal that directly represents a bit string value of data type BOOL, BYTE, WORD, DWORD, or
LWORD
3.13
body
set of operations of a program organization unit
3.14
call
language construct causing the execution of a function, function block, or method
3.15
character string
aggregate that consists of an ordered sequence of characters
3.16
character string literal
literal that directly represents a character or character string value of data type CHAR, WCHAR,
UCHAR, STRING, WSTRING or USTRING
3.17
class
program organization unit consisting of:
• the definition of a data structure,
• a set of methods and properties to be performed upon the data structure
3.18
comment
language construct for the inclusion of text having no impact on the execution of the program
3.19
configuration
language element corresponding to one or multiple programmable controller system
3.20
constant
language element which declares a data element with a fixed value
3.21
counter function block
function block which accumulates a value for the number of changes sensed at one or more
specified inputs
3.22
data type
language element which allows a set of values together with a set of permitted operations
3.23
date and time
date within the year and the time of day represented as a single language element
3.24
declaration
mechanism for establishing the definition of a language element
3.25
delimiter
character or combination of characters used to separate program language elements
3.26
derived class
extended class
child class
class that extends another class by inheritance
3.27
directly derived data type
data type that is declared as an alias for another data type
– 12 – IEC 61131-3:2025 © IEC 2025
3.28
derived function block type
function block type created by inheritance from another function block type or class type
3.29
direct representation
means of representing a variable in a programmable controller program from which an
implementation-specified correspondence to a physical or logical location can be determined
directly
3.30
double word
data element containing 32 bits
3.31
dynamic binding
situation in which the implementation of a method is retrieved during runtime according to the
actual type of the instance
3.32
evaluation
process of establishing a value for an expression or a function, or for the outputs of a network
or function block instance, during program execution
3.33
execution control element
language element which controls the flow of program execution
3.34
falling edge
change from TRUE (1) to FALSE (0) of a Boolean variable
3.35
function
program organization unit that does not retain state and which, when executed, typically yields
one result and possibly additional output variables
3.36
function block instance
instance of a function block type
3.37
function block type
language element consisting of:
• the definition of a data structure partitioned into input, output, and internal variables; and
• a set of operations or a set of methods and properties to be performed upon the elements
of the data structure when an instance of the function block type is called
3.38
function block diagram
network in which the nodes are function block instances, graphically represented functions or
method calls, variables, literals, and labels
3.39
generic data type
data type which represents more than one type of data
3.40
global variable
variable whose scope is global
3.41
hierarchical addressing
direct representation of a data element as a member of a physical or logical hierarchy
EXAMPLE A point within a module which is contained in a rack, which in turn is contained in a cubicle, etc.
3.42
identifier
combination of letters, numbers, and underscore characters which begins with a letter or
underscore and which names a language element
3.43
implementation
product version of a PLC or the programming and debugging tool provided by the implementer
3.44
implementer
manufacturer of the PLC or the programming and debugging tool provided to the user to
program a PLC application
3.45
inheritance
creation of a new class, function block type or interface based on an existing class, function
block type or interface, respectively
3.46
initial value
value assigned to a variable at the beginning of its lifetime
3.47
in-out variable
variable which is used to supply a value to a program organization unit and which is additionally
used to return a value from the program organization unit
3.48
input variable
variable which is used to supply a value to a program organization unit or method
3.49
instance
individual, named copy of the data structure associated with a function block type, class, or
program type
3.50
instance name
identifier associated with a specific instance
3.51
instantiation
creation of an instance
3.52
integer literal
literal which directly represents an integer value
– 14 – IEC 61131-3:2025 © IEC 2025
3.53
interface
language element in the context of object-oriented programming containing a set of method and
property protot
...
IEC 61131-3:2025は、プログラマブルコントローラーのためのプログラミング言語の構文と意味を定義した標準であり、その範囲は非常に広範です。この文書では、プログラマブルコントローラー(PC)用の統一されたプログラミング言語のスイートが指定されています。このスイートは、テキスト言語である構造化テキスト(ST)と、グラフィカル言語であるラダー図(LD)およびファンクションブロック図(FBD)から構成されています。 IEC 61131-3:2025の強みの一つは、プログラムやファンクションブロックの内部構成を構造化するために定義された逐次機能チャート(SFC)の追加セットの存在です。これにより、プログラミングの可読性や保守性が向上し、複雑な制御システムにおいてもプログラムの管理が容易になります。 さらに、プログラマブルコントローラーのプログラムをプログラマブルコントローラーシステムにインストールするための構成要素も定義されており、ユーザーにとって便利です。また、プログラマブルコントローラーと自動化システムの他のコンポーネント間の通信を促進する機能も規定されており、これによりシステムの統合性が高まります。 この版では、以前の版に比べていくつかの重要な技術的変更が含まれています。特に、UTF-8文字列とそれに関連する機能の追加は、国際化に対する配慮がなされていることを示しています。また、附属書Bには、IEC 61131-3:2013と比較して追加、削除、または非推奨となった機能の包括的なリストが含まれており、技術者にとって非常に有益です。 総じて、IEC 61131-3:2025は、プログラマブルコントローラーのプログラミングにおいて必須の標準であり、その明確な構文、強力な機能、及び最新の技術的動向に対する適応は、業界全体の操作性と効率性を大幅に向上させるものとなっています。
IEC 61131-3:2025 표준은 프로그래머블 컨트롤러(PC)의 프로그래밍 언어에 대한 구문 및 의미론을 명시하는 중요한 문서입니다. 이 표준의 범위는 단순한 언어 정의를 넘어 프로그래머블 컨트롤러의 통합 프로그래밍 언어 모음을 제공합니다. 각 언어는 텍스트 기반인 구조적 텍스트(ST)와 그래픽 기반의 래더 다이어그램(LD) 및 함수 블록 다이어그램(FBD)으로 구성되어 있어, 다양한 프로그래밍 스타일을 지원합니다. 특히 추가된 순차 기능 차트(SFC)는 프로그램과 기능 블록의 내부 조직 구조를 체계적으로 구성하는 데 중요한 역할을 하며, 이는 프로그래밍의 효율성을 높이는 데 기여합니다. 이러한 표준은 설치 및 유지 관리 측면에서 프로그래머블 컨트롤러 시스템에 프로그램을 배치하는 데 필요한 구성 요소도 명확히 정의합니다. 또한, IEC 61131-3:2025는 프로그래머블 컨트롤러와 자동화 시스템 내 다른 구성 요소간의 통신을 용이하게 하는 다양한 기능을 포함하고 있어, 시스템 통합에 매우 적합한 환경을 마련합니다. 주목할 만한 점은 본 개정판이 이전판 대비 다음과 같은 중요한 기술적 변화를 포함하고 있다는 것입니다. 첫째, UTF-8 문자열과 그 관련 기능의 포함은 현대적인 프로그래밍 환경에서 필수적인 요소로 작용하고, 둘째, 부록 B에서 추가되거나 제거되거나 사용 중지된 기능에 대한 포괄적인 목록을 제공하여 사용자들이 최신 정보를 쉽게 파악할 수 있도록 돕습니다. 이렇듯 IEC 61131-3:2025는 프로그래머블 컨트롤러의 프로그래밍 언어를 명확하게 정의함으로써 업계 표준을 확립하고, 효율성과 소통의 향상을 가져오는 강력한 도구로 기능합니다.
Die Norm IEC 61131-3:2025 stellt einen bedeutenden Fortschritt im Bereich der programmierbaren Steuerungen dar, indem sie die Syntax und Semantik verschiedener Programmier sprachen für programmierbare Steuerungen (PCs) spezifiziert. Der Anwendungsbereich dieser Norm richtet sich an Fachleute, die in der Automatisierungstechnik tätig sind, und bietet ihnen ein einheitliches Set an Programmier sprachen, zu dem die strukturierte Textsprache (ST) sowie die graphischen Sprachen, wie das Kontaktplan-Diagramm (LD) und das Funktionsblock-Diagramm (FBD), gehören. Ein herausragender Aspekt dieser Norm ist die Definition des sequentiellen Funktionsdiagramms (SFC), das für die Strukturierung der internen Organisation von Programmen und Funktionsblöcken vorgesehen ist. Diese Ergänzung fördert eine klarere Programmgestaltung und ermöglicht eine optimale Nutzung der verfügbaren Programmiersprachen. Zudem sind konfigurative Elemente definiert, die die Installation von Programmen in programmierbaren Steuerungssystemen unterstützen, was die Praktikabilität und Benutzerfreundlichkeit erheblich verbessert. Eine wesentliche Stärke der IEC 61131-3:2025 liegt in der erweiterten Interoperabilität, die durch die definierten Merkmale zur Kommunikation zwischen den programmierbaren Steuerungen und anderen Komponenten automatisierter Systeme gefördert wird. Dies ermöglicht einen nahtlosen Austausch von Informationen und trägt zur Effizienzsteigerung bei. Die aktualisierte Ausgabe umfasst bedeutende technische Änderungen im Vergleich zur vorherigen Fassung. Besonders hervorzuheben ist die Einführung von UTF-8-Zeichenfolgen und deren zugehörigen Funktionen, die einen zeitgemäßen Umgang mit internationalen Textdaten ermöglichen. Darüber hinaus enthält Anhang B eine umfassende Liste von Merkmalen, die im Vergleich zur IEC 61131-3:2013 hinzugefügt, entfernt oder als veraltet betrachtet wurden. Diese Informationen tragen zur Transparenz und Nachvollziehbarkeit von Änderungen bei, was für die kontinuierliche Weiterbildung und Anpassung an neue Anforderungen von großer Bedeutung ist. Insgesamt ist die IEC 61131-3:2025 eine relevante und wesentliche Norm, die den aktuellen Anforderungen der Automatisierungsindustrie gerecht wird und einen effizienten und strukturierten Ansatz für die Programmierung von PCs bietet. Sie stellt sicher, dass sowohl neue als auch erfahrene Entwickler in der Lage sind, effektive und zuverlässige Automatisierungslösungen zu erstellen.
La norme IEC 61131-3:2025 joue un rôle essentiel dans le domaine des automates programmables en définissant les langages de programmation adaptés à ces systèmes. Son champ d'application englobe la spécification de la syntaxe et de la sémantique d'un ensemble unifié de langages de programmation pour les contrôleurs programmables (PC), conformément à la norme IEC 61131-1. Parmi les forces de cette norme, on trouve l'inclusion de plusieurs types de langages : le langage textuel "structured text" (ST) ainsi que les langages graphiques, à savoir le diagramme à relais (LD) et le diagramme de blocs fonctionnels (FBD). Cette diversité de langages permet aux développeurs de choisir l'outil le mieux adapté à leurs besoins en termes de clarté et d'efficacité dans la programmation des contrôleurs. Un autre point fort majeur de cette norme est la définition d'un ensemble d'éléments graphiques et de leur équivalent textuel, appelés "sequential function chart" (SFC), qui est spécialement conçu pour structurer l'organisation interne des programmes et des blocs fonctionnels. Cela améliore également la lisibilité et la gestion des programmes complexes. De plus, la norme IEC 61131-3:2025 propose des éléments de configuration qui facilitent l'installation des programmes d'automates programmables dans les systèmes des contrôleurs. Cela montre son engagement envers une intégration fluide et une utilisation optimale des programmes au sein des systèmes automatisés. Les nouvelles caractéristiques de cette édition, notamment l'inclusion des chaînes UTF-8 et leurs fonctions associées, témoignent de la volonté de la norme de rester à jour avec les évolutions technologiques et les besoins croissants en matière de communication dans les systèmes automatisés. L'Annexe B, qui présente une liste complète des fonctionnalités ajoutées, supprimées ou obsolètes par rapport à la version de 2013, offre une transparence importante pour les utilisateurs de cette norme. En résumé, la norme IEC 61131-3:2025 se positionne comme un document de référence incontournable pour quiconque travaille avec des automates programmables. Sa pertinence dans les environnements d'automatisation modernes est indéniable, assurant que les programmateurs disposent des outils nécessaires pour tirer le meilleur parti de leurs systèmes de contrôle.
IEC 61131-3:2025 represents a pivotal advancement in the programming of programmable controllers (PCs), as it meticulously specifies the syntax and semantics of a unified suite of programming languages designed for this technology. The scope of this standard encompasses a foundational framework that is critical for software development within the realm of automation. One of the primary strengths of IEC 61131-3:2025 lies in its comprehensive suite of languages, which includes structured text (ST), ladder diagram (LD), and function block diagram (FBD). By offering both textual and graphical programming options, the standard accommodates a wide array of user preferences and skill levels, thus enhancing accessibility and usability in diverse applications. The inclusion of the sequential function chart (SFC) introduces an additional layer of sophistication for organizing programs and function blocks, enabling developers to create more structured and manageable code. This promotes better program flow and increased clarity in complex automation tasks, making it particularly relevant for industries that rely on intricate operational structures. Another significant enhancement in this edition is the inclusion of UTF-8 strings and their associated functions, which improves the handling of text data within programmable controllers. This advancement facilitates internationalization and provides greater flexibility in programming, catering to a global audience and varied linguistic requirements. Furthermore, the document includes an Annex B that provides a detailed examination of the features added, removed, or deprecated compared to its predecessor, IEC 61131-3:2013. This transparency in the evolution of the standard ensures that programmers and system integrators can smoothly transition to the latest version without losing track of critical updates or functionalities. The standard also addresses interconnectivity by defining features that support communication among programmable controllers and other components of automated systems. This aspect is increasingly important as the automation landscape evolves towards more interconnected and smart environments. In summary, IEC 61131-3:2025 stands out as an essential resource for professionals in the field of automation and control engineering. Its clearly defined programming languages, robust organizational structures, and enhancements in data handling solidify its relevance and utility in developing efficient and effective programmable controller programs.










Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...