IEC-61131-3
   HOME

TheInfoList



OR:

IEC 61131-3 is the third part (of 10) of the international standard IEC 61131 for programmable logic controllers. It was first published in December 1993 by the International Electrotechnical Commission, IEC; the current (fourth) edition was published in May 2025. Part 3 of ''IEC 61131'' deals with basic software architecture and programming languages of the control program within Programmable logic controller, PLC. It defines three graphical and two textual programming language standards: * Ladder logic, Ladder diagram (LD), graphical * Function block diagram (FBD), graphical * Structured text (ST), textual * Instruction list (IL), textual Deprecation, deprecated. 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 computing, parallel control processing, graphical.


Data types

* Elementary Data Type ** Bit Strings – groups of on/off values *** BOOL - 1 bit (0,1) *** Byte, BYTE – 8 bit (1 byte) *** Word (data type), WORD – 16 bit (2 byte) *** DWORD – 32 bit (4 byte) *** LWORD – 64 bit (8 byte) ** Integer (computer science), INTEGER – 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 number, REAL – floating point IEC 60559 (same as IEEE 754-2008) *** 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 (programming), 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 * Tasks – Can be multiple per CPU. * Computer program, 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 – 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 IEC 61131-3, Electronic design automation IEC 61131