IEC61131 Common Elements
   HOME

TheInfoList



OR:

IEC 61131-3 is the third part (of 10) of the
international standard An international standard is a technical standard developed by one or more international standards organizations. International standards are available for consideration and use worldwide. The most prominent such organization is the International O ...
IEC 61131 IEC 61131 is an International Electrotechnical Commission, IEC standard for programmable logic controller, programmable controllers. It was first published in 1993; the current IEC 61131-3, (third) edition dates from 2013. It was known as IEC 113 ...
for
programmable logic controller A programmable logic controller (PLC) or programmable controller is an industrial computer that has been ruggedized and adapted for the control of manufacturing processes, such as assembly lines, machines, robotic devices, or any activity that ...
s. It was first published in December 1993 by the
IEC The International Electrotechnical Commission (IEC; ) is an international standards organization that prepares and publishes international standards for all electrical, electronic and related technologies. IEC standards cover a vast range of ...
; the current (fourth) edition was published in May 2025. Part 3 of ''IEC 61131'' deals with basic software architecture and
programming languages A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their syntax (form) and semantics (meaning), usually defined by a formal language. Languages usually provide features ...
of the control program within PLC. It defines three graphical and two textual programming language standards: * Ladder diagram (LD), graphical *
Function block diagram The function block diagram (FBD) is a graphical language for programmable logic controller design, that can describe the function between input variables and output variables. A function is described as a set of elementary blocks. Input and o ...
(FBD), graphical *
Structured text Structured text, abbreviated as ST or STX, is one of the five languages supported by the IEC 61131-3 standard, designed for programmable logic controller A programmable logic controller (PLC) or programmable controller is an industrial comp ...
(ST), textual *
Instruction list Instruction list (IL) is one of the 5 languages supported by the initial versions of IEC 61131-3 standard, and subsequently deprecated in the third edition. It is designed for programmable logic controllers (PLCs). It is a low level language and ...
(IL), textual
deprecated Deprecation is the discouragement of use of something human-made, such as a term, feature, design, or practice. Typically something is deprecated because it is claimed to be inferior compared to other options available. Something may be deprec ...
. Per IEC 61131-3-2025, chapter 7.2 Instruction List (IL) is no longer included in Edition 4. Thus, IL (AWL) is no longer part of IEC 61131-3. * Sequential function chart (SFC), has elements to organize programs for sequential and parallel control processing, graphical.


Data types

* Elementary Data Type ** Bit Strings – groups of on/off values *** BOOL - 1 bit (0,1) ***
BYTE The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
– 8 bit (1 byte) ***
WORD A word is a basic element of language that carries semantics, meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of what a word is, there is no consensus among linguist ...
– 16 bit (2 byte) *** DWORD – 32 bit (4 byte) *** LWORD – 64 bit (8 byte) **
INTEGER An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
– whole numbers (Considering byte size 8 bits) *** SINT – signed short integer (1 byte) *** INT – signed integer (2 byte) *** DINT – signed double integer (4 byte) *** LINT – signed long integer (8 byte) *** USINT – Unsigned short integer (1 byte) *** UINT – Unsigned integer (2 byte) *** UDINT – Unsigned double integer (4 byte) *** ULINT – Unsigned long integer (8 byte) ** REAL – floating point IEC 60559 (same as
IEEE 754-2008 The Institute of Electrical and Electronics Engineers (IEEE) is an American 501(c)(3) public charity professional organization for electrical engineering, electronics engineering, and other related disciplines. The IEEE has a corporate office ...
) *** REAL – (4 byte) *** LREAL – (8 byte) **Duration *** TIME – (implementer specific). Literals in the form of T#5m90s15ms *** LTIME – (8 byte). Literals extend to nanoseconds in the form of T#5m90s15ms542us15ns ** Date *** DATE – calendar date (implementer specific) *** LDATE – calendar date (8 byte, nanoseconds since 1970-01-01, restricted to multiple of one day) ** Time of day *** TIME_OF_DAY / TOD – clock time (implementer specific) *** LTIME_OF_DAY / LTOD – clock time (8 byte) ** Date and time of Day *** DATE_AND_TIME / DT – time and date (implementer specific) *** LDATE_AND_TIME / LDT – time and date (8 byte, nanoseconds since 1970-01-01) ** Character / Character string *** CHAR – Single-byte character (1 byte, limited to characters 0 to 255 of ISO/IEC 10646) *** WCHAR – Double-byte character (2 byte, limited to characters 0 to 65535 of ISO/IEC 10646) *** STRING – Variable-length single-byte character string. Literals specified with single quote, 'This is a STRING Literal' *** WSTRING – Variable-length double-byte character string. Literals specified with a double quote, "This is a WSTRING Literal" *Generic Data Types – Only available for the input / output/ in-out variables of system-defined Program Organization Units (POUs, see below) ** ANY *** ANY_DERIVED *** ANY_ELEMENTARY **** ANY_MAGNITUDE ***** ANY_NUM ****** ANY_REAL: LREAL, REAL ****** ANY_INT ******* ANY_UNSIGNED: ULINT, UDINT, UINT, USINT ******* ANY_SIGNED: LINT, DINT, INT, SINT ***** ANY_DURATION: TIME, LTIME **** ANY_BIT: LWORD, DWORD, WORD, BYTE, BOOL **** ANY_CHARS ***** ANY_STRING: STRING, WSTRING ***** ANY_CHAR: CHAR, WCHAR **** ANY_DATE: DATE_AND_TIME (DT), DATE_AND_TIME(LDT), DATE, TIME_OF_DAY (TOD), LTIME_OF_DAY(LTOD) * User-defined Data Types ** Enumerated data type ** Enumerated data type with named value ** Subrange data type – puts limits on value i.e., INT(4 .. 20) for current ** Array data type – multiple values stored in the same variable. ** Structured data type – composite of several variables and types. ** Directly derived data type – type derived from one of the above types to give new name and initial value as a type. ** References – a kind of strongly typed pointer. Arithmetic operation of the value of this type is prohibited.


Variables

Variable attributes: RETAIN, CONSTANT, AT * Global * Direct (local) * I/O Mapping – Input, Output, I/O * External * Temporary


Configuration

* Resource – Like a
CPU A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, log ...
* Tasks – Can be multiple per
CPU A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, log ...
. * Programs – Can be executed once, on a timer, on an event.


Program organization unit (POU)

* Functions ** Standard: ADD, SQRT, SIN, COS, GT, MIN, MAX, AND, OR, etc. ** Custom * Function Blocks ** Standard: ** Custom – Libraries of functions can be supplied by a vendor or third party. * Programs


Configuration, resources, tasks

* Configuration – processing resources, memory for IO, execution rates, number of tasks.


Object oriented programming (OOP)

* The 3rd revision of the standard describes how to implement OOP within the application programming


References


External links


PLCopen


IEC 61131-3:2025 Programmable controllers – Part 3: Programming languages *
CODESYS Codesys (spelled “CODESYS” by the manufacturer, previously “CoDeSys”) is an integrated development environment for programming controller applications according to the international industrial standard IEC 61131-3. CODESYS is developed ...
– an implementation independent of device manufacturers, includes object oriented programming (OOP) as an option * :de:STEP 7 implementation for Siemens devices, only {{List of IEC standards Electronic design automation IEC 61131