{"id":244171,"date":"2024-10-19T16:02:12","date_gmt":"2024-10-19T16:02:12","guid":{"rendered":"https:\/\/pdfstandards.shop\/product\/uncategorized\/bs-en-61131-32013\/"},"modified":"2024-10-25T11:00:58","modified_gmt":"2024-10-25T11:00:58","slug":"bs-en-61131-32013","status":"publish","type":"product","link":"https:\/\/pdfstandards.shop\/product\/publishers\/bsi\/bs-en-61131-32013\/","title":{"rendered":"BS EN 61131-3:2013"},"content":{"rendered":"
IEC 61131-3:2013 specifies the syntax and semantics of a unified suite of programming languages for programmable controllers (PCs). This suite consists of two textual languages, Instruction List (IL) and Structured Text (ST), and two graphical languages, Ladder Diagram (LD) and Function Block Diagram (FBD). This third edition cancels and replaces the second edition, published in 2003 and constitutes a technical revision. It includes the following significant technical changes: It is a compatible extension of the second edition. The main extensions are new data types and conversion functions, references, name spaces and the object oriented features of classes and function blocks.<\/p>\n
PDF Pages<\/th>\n | PDF Title<\/th>\n<\/tr>\n | ||||||
---|---|---|---|---|---|---|---|
6<\/td>\n | English CONTENTS <\/td>\n<\/tr>\n | ||||||
11<\/td>\n | 1 Scope 2 Normative references 3 Terms and definitions <\/td>\n<\/tr>\n | ||||||
20<\/td>\n | 4 Architectural models 4.1 Software model Figures Figure 1 \u2013 Software model <\/td>\n<\/tr>\n | ||||||
21<\/td>\n | 4.2 Communication model <\/td>\n<\/tr>\n | ||||||
23<\/td>\n | Figure 3 \u2013 Combination of programmable controller language elements <\/td>\n<\/tr>\n | ||||||
24<\/td>\n | 5 Compliance 5.1 General 5.2 Feature tables 5.3 Implementer\u2019s compliance statement <\/td>\n<\/tr>\n | ||||||
25<\/td>\n | Figure 4 \u2013 Implementer\u2019s compliance statement (Example) <\/td>\n<\/tr>\n | ||||||
26<\/td>\n | 6 Common elements 6.1 Use of printed characters 6.1.1 Character set 6.1.2 Identifiers 6.1.3 Keywords Tables Table 1 \u2013 Character set Table 2 \u2013 Identifiers <\/td>\n<\/tr>\n | ||||||
27<\/td>\n | 6.1.4 Use of white space 6.1.5 Comments Table 3 \u2013 Comments <\/td>\n<\/tr>\n | ||||||
28<\/td>\n | 6.2 Pragma 6.3 Literals \u2013 External representation of data 6.3.1 General 6.3.2 Numeric literals and string literals Table 4 \u2013 Pragma <\/td>\n<\/tr>\n | ||||||
29<\/td>\n | Table 5 \u2013 Numeric literals <\/td>\n<\/tr>\n | ||||||
30<\/td>\n | 6.3.3 Character string literals Table 6 \u2013 Character string literals <\/td>\n<\/tr>\n | ||||||
31<\/td>\n | 6.3.4 Duration literal Table 7 \u2013 Two-character combinations in character strings Table 8 \u2013 Duration literals <\/td>\n<\/tr>\n | ||||||
32<\/td>\n | 6.3.5 Date and time of day literal 6.4 Data types 6.4.1 General 6.4.2 Elementary data types (BOOL, INT, REAL, STRING, etc.) Table 9 \u2013 Date and time of day literals <\/td>\n<\/tr>\n | ||||||
33<\/td>\n | Table 10 \u2013 Elementary data types <\/td>\n<\/tr>\n | ||||||
35<\/td>\n | 6.4.3 Generic data types <\/td>\n<\/tr>\n | ||||||
36<\/td>\n | 6.4.4 User-defined data types Figure 5 \u2013 Hierarchy of the generic data types <\/td>\n<\/tr>\n | ||||||
37<\/td>\n | Figure 6 \u2013 Initialization by literals and constant expressions (Rules) Table 11 \u2013 Declaration of user-defined data types and initialization <\/td>\n<\/tr>\n | ||||||
48<\/td>\n | Table 12 \u2013 Reference operations <\/td>\n<\/tr>\n | ||||||
49<\/td>\n | 6.5 Variables 6.5.1 Declaration and initialization of variables <\/td>\n<\/tr>\n | ||||||
50<\/td>\n | Table 13 \u2013 Declaration of variables <\/td>\n<\/tr>\n | ||||||
51<\/td>\n | 6.5.2 Variable sections Table 14 \u2013 Initialization of variables <\/td>\n<\/tr>\n | ||||||
52<\/td>\n | Figure 7 \u2013 Variable declaration keywords (Summary) <\/td>\n<\/tr>\n | ||||||
53<\/td>\n | 6.5.3 Variable length ARRAY variables Figure 8 \u2013 Usage of VAR_GLOBAL, VAR_EXTERNAL and CONSTANT (Rules) <\/td>\n<\/tr>\n | ||||||
54<\/td>\n | Table 15 \u2013 Variable-length ARRAY variables <\/td>\n<\/tr>\n | ||||||
55<\/td>\n | 6.5.4 Constant variables <\/td>\n<\/tr>\n | ||||||
56<\/td>\n | 6.5.5 Directly represented variables ( % ) Table 16 \u2013 Directly represented variables <\/td>\n<\/tr>\n | ||||||
58<\/td>\n | 6.5.6 Retentive variables (RETAIN, NON_RETAIN) <\/td>\n<\/tr>\n | ||||||
59<\/td>\n | Figure 9 \u2013 Conditions for the initial value of a variable (Rules) <\/td>\n<\/tr>\n | ||||||
60<\/td>\n | 6.6 Program organization units (POUs) 6.6.1 Common features for POUs <\/td>\n<\/tr>\n | ||||||
62<\/td>\n | Table 17 \u2013 Partial access of ANY_BIT variables <\/td>\n<\/tr>\n | ||||||
65<\/td>\n | Figure 10 \u2013 Formal and non-formal representation of call (Examples) <\/td>\n<\/tr>\n | ||||||
67<\/td>\n | Table 18 \u2013 Execution control graphically using EN and ENO <\/td>\n<\/tr>\n | ||||||
69<\/td>\n | Figure 11 \u2013 Data type conversion rules \u2013 implicit and\/or explicit (Summary) <\/td>\n<\/tr>\n | ||||||
70<\/td>\n | Figure 12 \u2013 Supported implicit type conversions <\/td>\n<\/tr>\n | ||||||
72<\/td>\n | 6.6.2 Functions <\/td>\n<\/tr>\n | ||||||
74<\/td>\n | Table 19 \u2013 Function declaration <\/td>\n<\/tr>\n | ||||||
76<\/td>\n | Table 20 \u2013 Function call <\/td>\n<\/tr>\n | ||||||
78<\/td>\n | Table 21 \u2013 Typed and overloaded functions <\/td>\n<\/tr>\n | ||||||
80<\/td>\n | Table 22 \u2013 Data type conversion function <\/td>\n<\/tr>\n | ||||||
82<\/td>\n | Table 23 \u2013 Data type conversion of numeric data types <\/td>\n<\/tr>\n | ||||||
84<\/td>\n | Table 24 \u2013 Data type conversion of bit data types <\/td>\n<\/tr>\n | ||||||
85<\/td>\n | Table 25 \u2013 Data type conversion of bit and numeric types <\/td>\n<\/tr>\n | ||||||
87<\/td>\n | Table 26 \u2013 Data type conversion of date and time types <\/td>\n<\/tr>\n | ||||||
88<\/td>\n | Table 27 \u2013 Data type conversion of character types <\/td>\n<\/tr>\n | ||||||
89<\/td>\n | Table 28 \u2013 Numerical and arithmetic functions <\/td>\n<\/tr>\n | ||||||
90<\/td>\n | Table 29 \u2013 Arithmetic functions <\/td>\n<\/tr>\n | ||||||
91<\/td>\n | Table 30 \u2013 Bit shift functions Table 31 \u2013 Bitwise Boolean functions <\/td>\n<\/tr>\n | ||||||
92<\/td>\n | Table 32 \u2013 Selection functions d <\/td>\n<\/tr>\n | ||||||
93<\/td>\n | Table 33 \u2013 Comparison functions <\/td>\n<\/tr>\n | ||||||
94<\/td>\n | Table 34 \u2013 Character string functions <\/td>\n<\/tr>\n | ||||||
95<\/td>\n | Table 35 \u2013 Numerical functions of time and duration data types <\/td>\n<\/tr>\n | ||||||
96<\/td>\n | Table 36 \u2013 Additional functions of time data types CONCAT and SPLIT <\/td>\n<\/tr>\n | ||||||
100<\/td>\n | Table 37 \u2013 Function for endianess conversion Table 38 \u2013 Functions of enumerated data types <\/td>\n<\/tr>\n | ||||||
101<\/td>\n | 6.6.3 Function blocks Table 39 \u2013 Validate functions <\/td>\n<\/tr>\n | ||||||
102<\/td>\n | Table 40 \u2013 Function block type declaration <\/td>\n<\/tr>\n | ||||||
106<\/td>\n | Table 41 \u2013 Function block instance declaration <\/td>\n<\/tr>\n | ||||||
107<\/td>\n | Table 42 \u2013 Function block call <\/td>\n<\/tr>\n | ||||||
110<\/td>\n | Figure 13 \u2013 Usage of function block input and output parameters (Rules) <\/td>\n<\/tr>\n | ||||||
111<\/td>\n | Figure 14 \u2013 Usage of function block input and output parameters (Illustration of rules) <\/td>\n<\/tr>\n | ||||||
114<\/td>\n | Table 43 \u2013 Standard bistable function blocksa <\/td>\n<\/tr>\n | ||||||
115<\/td>\n | Table 44 \u2013 Standard edge detection function blocks Table 45 \u2013 Standard counter function blocks <\/td>\n<\/tr>\n | ||||||
117<\/td>\n | Table 46 \u2013 Standard timer function blocks <\/td>\n<\/tr>\n | ||||||
118<\/td>\n | Figure 15 \u2013 Standard timer function blocks \u2013 timing diagrams (Rules) <\/td>\n<\/tr>\n | ||||||
119<\/td>\n | 6.6.4 Programs Table 47 \u2013 Program declaration <\/td>\n<\/tr>\n | ||||||
120<\/td>\n | 6.6.5 Classes <\/td>\n<\/tr>\n | ||||||
121<\/td>\n | Figure 16 \u2013 Overview of inheritance and interface implementation <\/td>\n<\/tr>\n | ||||||
122<\/td>\n | Table 48 \u2013 Class <\/td>\n<\/tr>\n | ||||||
124<\/td>\n | Table 49 \u2013 Class instance declaration <\/td>\n<\/tr>\n | ||||||
127<\/td>\n | Table 50 \u2013 Textual call of methods \u2013 Formal and non-formal parameter list <\/td>\n<\/tr>\n | ||||||
130<\/td>\n | Figure 17 \u2013 Inheritance of classes (Illustration) <\/td>\n<\/tr>\n | ||||||
139<\/td>\n | 6.6.6 Interface Table 51 \u2013 Interface <\/td>\n<\/tr>\n | ||||||
140<\/td>\n | Figure 18 \u2013 Interface with derived classes (Illustration) <\/td>\n<\/tr>\n | ||||||
145<\/td>\n | Figure 19 \u2013 Inheritance of interface and class (Illustration) <\/td>\n<\/tr>\n | ||||||
148<\/td>\n | 6.6.7 Object oriented features for function blocks Table 52 \u2013 Assignment attempt <\/td>\n<\/tr>\n | ||||||
149<\/td>\n | Table 53 \u2013 Object oriented function block <\/td>\n<\/tr>\n | ||||||
151<\/td>\n | Figure 20 \u2013 Function block with optional body and methods (Illustration) <\/td>\n<\/tr>\n | ||||||
153<\/td>\n | Figure 21 \u2013 Inheritance of function block body with SUPER() (Example) <\/td>\n<\/tr>\n | ||||||
154<\/td>\n | 6.6.8 Polymorphism <\/td>\n<\/tr>\n | ||||||
157<\/td>\n | 6.7 Sequential Function Chart (SFC) elements 6.7.1 General 6.7.2 Steps <\/td>\n<\/tr>\n | ||||||
158<\/td>\n | Table 54 \u2013 SFC step <\/td>\n<\/tr>\n | ||||||
159<\/td>\n | 6.7.3 Transitions <\/td>\n<\/tr>\n | ||||||
160<\/td>\n | Table 55 \u2013 SFC transition and transition condition <\/td>\n<\/tr>\n | ||||||
162<\/td>\n | 6.7.4 Actions Table 56 \u2013 SFC declaration of actions <\/td>\n<\/tr>\n | ||||||
164<\/td>\n | Table 57 \u2013 Step\/action association <\/td>\n<\/tr>\n | ||||||
165<\/td>\n | Table 58 \u2013 Action block Table 59 \u2013 Action qualifiers <\/td>\n<\/tr>\n | ||||||
167<\/td>\n | Figure 22 \u2013 ACTION_CONTROL function block \u2013 External interface (Summary) <\/td>\n<\/tr>\n | ||||||
168<\/td>\n | Figure 23 \u2013 ACTION_CONTROL function block body (Summary) <\/td>\n<\/tr>\n | ||||||
170<\/td>\n | 6.7.5 Rules of evolution Figure 24 \u2013 Action control (Example) Table 60 \u2013 Action control features <\/td>\n<\/tr>\n | ||||||
171<\/td>\n | Table 61 \u2013 Sequence evolution \u2013 graphical <\/td>\n<\/tr>\n | ||||||
176<\/td>\n | Figure 25 \u2013 SFC evolution (Rules) <\/td>\n<\/tr>\n | ||||||
177<\/td>\n | Figure 26 \u2013 SFC errors (Example) <\/td>\n<\/tr>\n | ||||||
178<\/td>\n | 6.8 Configuration elements 6.8.1 General <\/td>\n<\/tr>\n | ||||||
179<\/td>\n | Figure 27 \u2013 Configuration (Example) <\/td>\n<\/tr>\n | ||||||
180<\/td>\n | Table 62 \u2013 Configuration and resource declaration <\/td>\n<\/tr>\n | ||||||
182<\/td>\n | 6.8.2 Tasks Figure 28 \u2013 CONFIGURATION and RESOURCE declaration (Example) <\/td>\n<\/tr>\n | ||||||
184<\/td>\n | Table 63 \u2013 Task <\/td>\n<\/tr>\n | ||||||
188<\/td>\n | 6.9 Namespaces 6.9.1 General 6.9.2 Declaration <\/td>\n<\/tr>\n | ||||||
191<\/td>\n | Figure 29 \u2013 Accessibility using namespaces (Rules) <\/td>\n<\/tr>\n | ||||||
193<\/td>\n | Table 64 \u2013 Namespace <\/td>\n<\/tr>\n | ||||||
194<\/td>\n | 6.9.3 Usage 6.9.4 Namespace directive USING Table 65 \u2013 Nested namespace declaration options <\/td>\n<\/tr>\n | ||||||
196<\/td>\n | Table 66 \u2013 Namespace directive USING <\/td>\n<\/tr>\n | ||||||
197<\/td>\n | 7 Textual languages 7.1 Common elements 7.2 Instruction list (IL) 7.2.1 General 7.2.2 Instructions Figure 30 \u2013 Common textual elements (Summary) <\/td>\n<\/tr>\n | ||||||
198<\/td>\n | 7.2.3 Operators, modifiers and operands <\/td>\n<\/tr>\n | ||||||
199<\/td>\n | Table 67 \u2013 Parenthesized expression for IL language Table 68 \u2013 Instruction list operators <\/td>\n<\/tr>\n | ||||||
200<\/td>\n | 7.2.4 Functions and function blocks <\/td>\n<\/tr>\n | ||||||
201<\/td>\n | Table 69 \u2013 Calls for IL language <\/td>\n<\/tr>\n | ||||||
203<\/td>\n | 7.3 Structured Text (ST) 7.3.1 General 7.3.2 Expressions Table 70 \u2013 Standard function block operators for IL language <\/td>\n<\/tr>\n | ||||||
204<\/td>\n | Table 71 \u2013 Operators of the ST language <\/td>\n<\/tr>\n | ||||||
205<\/td>\n | 7.3.3 Statements Table 72 \u2013 ST language statements <\/td>\n<\/tr>\n | ||||||
210<\/td>\n | 8 Graphic languages 8.1 Common elements 8.1.1 General <\/td>\n<\/tr>\n | ||||||
211<\/td>\n | 8.1.2 Representation of variables and instances <\/td>\n<\/tr>\n | ||||||
213<\/td>\n | 8.1.3 Representation of lines and blocks <\/td>\n<\/tr>\n | ||||||
214<\/td>\n | 8.1.4 Direction of flow in networks <\/td>\n<\/tr>\n | ||||||
215<\/td>\n | 8.1.5 Evaluation of networks <\/td>\n<\/tr>\n | ||||||
216<\/td>\n | 8.1.6 Execution control elements <\/td>\n<\/tr>\n | ||||||
217<\/td>\n | 8.2 Ladder diagram (LD) 8.2.1 General Table 73 \u2013 Graphic execution control elements <\/td>\n<\/tr>\n | ||||||
218<\/td>\n | 8.2.2 Power rails 8.2.3 Link elements and states 8.2.4 Contacts Table 74 \u2013 Power rails and link elements <\/td>\n<\/tr>\n | ||||||
219<\/td>\n | Table 75 \u2013 Contacts <\/td>\n<\/tr>\n | ||||||
220<\/td>\n | 8.2.5 Coils Table 76 \u2013 Coils <\/td>\n<\/tr>\n | ||||||
221<\/td>\n | 8.2.6 Functions and function blocks 8.2.7 Order of network evaluation 8.3 Function Block Diagram (FBD) 8.3.1 General 8.3.2 Combination of elements <\/td>\n<\/tr>\n | ||||||
222<\/td>\n | 8.3.3 Order of network evaluation <\/td>\n<\/tr>\n | ||||||
223<\/td>\n | Annex A (normative) Formal specification of the languages elements <\/td>\n<\/tr>\n | ||||||
230<\/td>\n | Annex B (informative) List of major changes and extensions of the third edition <\/td>\n<\/tr>\n | ||||||
231<\/td>\n | Bibliography <\/td>\n<\/tr>\n<\/table>\n","protected":false},"excerpt":{"rendered":" Programmable controllers – Programming languages<\/b><\/p>\n |