PLC Programming Languages

The International Electrotechnical Commission (IEC) defines five standard PLC programming languages under the IEC 1131-3 standard that are used for both discrete and process programmable controllers. The IEC is an international organization that is mandated to prepare and publish international programming standards for all electronic, electrical and related technologies. The IEC developed the five standards in response to the growing complexity of applications, number of automation vendors and changing modes of executing control functions. The five PLC programming languages include ladder diagram, structured text, function block diagram, sequential function charts and instruction list.

When should one language be used over another? Each language is best suited for certain circumstances.

Ladder diagram

Ladder diagram is the main PLC programming language used by PLC programmers because it is easy to understand and use. You can churn out code with a basic input and output signals outline. Moreover, most ladder diagram implementations allow organization of programs into subprograms or folders that can be downloaded to the PLC to ensure easy segmentation. As such, the ladder diagram language is ideal for simple material handling applications.

Function block diagram

Function block diagram is the second most widely used PLC programming language. This is because its blocks are wired together into one sequence that is easy to comprehend and visually understandable to people who are not well versed with the relay logic. You just need to follow the path. This language is ideal for simple programs that are made up of digital inputs and outputs like photoelectric sensors and valve manifolds respectively. Function block diagram can be used in any application that uses ladder diagram because it follows the same instructions as ladder. However, it may not be ideal for large programs that use particular I/O and functions.

Sequential function chart

Sequential function chart is similar to computer flowcharts. It follows a simple concept: an action box (a flowchart’s starting point) with an internal code written in any programming language that remains active until the transition box is activated. The current action box is then turned off to allow for the next action box in sequence. The transition step is governed by code to ensure that the necessary conditions are adhered to before allowing the program to advance to the next level. Sequential function chart is easy to implement among applications with repeatable multi-step processes and a series of repeatable processes.

Instruction list

Instruction list programming is similar to microprocessor programming and assembler language programming. It is made up of many coding lines with each representing a single operation. It is a step-by-step format that makes it easy to enter a series of mathematical functions. Additionally, in scenarios where IEC instructions are adhered to, a program written in instruction list language can be moved between hardware platforms with ease. Instruction list is more compact and takes up less PLC memory space.

Structured text

Structured text resembles high-level computer languages like C and PASCAL. It is a modern PLC programming language that is flexible and ideal for writing control algorithms. It is mainly used by programmers who are trained to use high level text languages.

As demonstrated above, the choice of the best PLC programming language depends on the applications in question. It’s also important to note that PLC programmers do not need to choose only one language. The IEC standard allows the use of multiple languages within the same programmable controller to allow programmers to select languages that are best suited for every task as per its complexity and necessity.

Daron Underwood has more than two decades of experience and expertise in embedded technology and real-time systems – from machine control to Human-Machine Interface development. He headed the embedded product and services group for Ardence, a Citrix Company prior to the formation of IntervalZero in 2008. During his career at VenturCom/Ardence and as a customer before he joined the company, Daron was instrumental in the development and advancement of the company’s market-leading RTX real-time software. He provided technical knowledge and guidance that helped shape the earliest version of the product.