Almost overnight, the 1990’s saw traditional relay logic systems become relics of the past. In their place, Programmable Logic Controllers (PLCs) rose to near universal adoption across modern industrial plants. While the use of PLCs may have become ubiquitous, the specifics of the technology differed greatly between manufacturers. 30 years later, the divisions between PLC manufacturers is more apparent than ever, as industrial protocols like Ethernet IP, Profinet, Ethercat, CC-Link, etc. are completely incompatible with each other. This has led to a splintering in the industry between various families of products centered around these proprietary PLC protocols, hampering innovation and inhibiting natural competition. However, we take for granted the healthy and prospering market for PLC programming talent. Why are the controls engineers that run PLCs and keep every industrial plant in the world running able to freely transfer their skills from say, a Rockwell Micrologix 1400 to a Siemens S7-1200? It is all thanks to one manufacturing standard.

The unceremoniously named IEC 61131-3 at first glance appears to be just another obscure manufacturing standard. In many ways it was when it was first written in 1993 by the International Electrotechnical Commission in London. IEC 61131 is the standard for programmable logic controllers (PLCs) and part 3 is simply titled “Programming Languages”. Despite its modest name, this is the strongest and most enduring standard of what would become a multi-billion dollar industry.

IEC 61131-3 describes the 5 types of programming languages that are used by all major PLC manufacturers, 3 graphical languages and 2 text based languages.

The three graphical languages are:

  1. Ladder Diagram (LD)
  2. Function Diagram (FD)
  3. Sequential Function Chart (SFC)

The two text based languages are:

  1. Structured Text (ST)
  2. Instruction List (IL)

Understanding these 5 languages is not only helpful for controls engineers, but also for the maintenance workers, component suppliers, distributors, machine builders, and anyone else who needs to communicate with controls engineers for their business.

The 3 Graphical Languages


Ladder Diagram:

Ladder Diagram, frequently called “Ladder Logic” was made to resemble the old electrical diagrams of traditional relay logic systems. Therefore, it received widespread immediate adoption and combined with its less daunting graphical, nature has remained popular. It is very well suited for less complex situations that would be solved by relays. Simple applications that receive an input and then send an output. For example, a water bottle on a conveyor passes by an optical sensor, this input is sent to the PLC, which sends an output to a dispenser to fill it with water. This is a great application for Ladder Diagrams. When applications get more complex, as they increasingly are in the age of advanced controls and SCADA systems, Ladder Diagrams are sometimes insufficient. Here is an example of some Ladder Logic:

ladder_logic Ladder logic looks similar to old relay circuits

Function Block Diagram:

Probably the second most popular, Function Block shares the user-friendly graphical interface of Ladder Logic, but geared towards controls engineers who aren’t coming from the world of relay circuits, an increasingly large cohort. Inputs and Outputs are described as small blocks that are wired together in a more intuitive way than Ladder Logic, with the individual blocks sometimes offering increased functionality over their ladder counterparts. However, much like Ladder Diagrams, Function Blocks suffer with complexity when high number of inputs and outputs are used. Here is a typical Function Block Diagram:

function block Function blocks have similar user-friendly graphical interface

Sequential Function Charts:

Sequential Function Charts or SFCs are the third graphical language and probably the least used of the five languages. SFCs resemble a flowchart and can be very intuitive to engineers who are comfortable with them, although that may be a very small group. SFCs also are the least compatible with the other four programming languages. One of the benefits of the IEC standard is that in most situations, other languages can be easily converted from one to the other. SFCs on the other hand, usually cannot. SFCs is also typically the slowest and therefore unlikely to be adopted in large scale applications. It would likely only be adopted to increase the ease of programming for someone who may not have a lot of experience with PLCs. Here is a Sequential Function Chart:

sfc Sequential Function Charts are rare nowadays

The 2 Text Based Languages


Structured Text:

Structured text is the language that most resembles a traditional coding language. It utilizes logical statements to control data like IF, THEN, ELSE. Because of that, it is lightweight and scales to complex applications well. It is not constrained by the graphical interface and therefore is the most robust and versatile of the languages. With the constantly increasing complexity of modern controls engineering, I would not be surprised to see Structured Text gain popularity in the coming years, at least in large scale applications. The downside of this is that it can be daunting to someone unfamiliar with Structured Text or text based programming. Unlike the others, it likely requires prerequisite knowledge of programming to learn this language. It could be intimidating for a new programmer to see this on their HMI:

Structured Text Structured text is the most powerful and robust language

Instruction List:

Instruction Lists are another text based language. The user types a list of instructions that will be executed in order. When PLCs were less powerful, IL enjoyed some popularity because of its quick processing capabilities. Nowadays, PLCs are so powerful that this is not a concern and typing out individual instructions does not scale well for complex applications. Since it is not graphical, it also suffers from a lack of user-friendliness and is therefore is competing with Sequential Function Charts for the least adopted language. This isn’t that surprising considering it look like this:

Instruction List Instruction Lists are neither user-friendly, nor as robust as Structured Text

To conclude, there are five standard languages. Familiarizing yourself with three, Ladder Diagram, Function Blocks, and Structured Text will allow you to show fluency in controls engineering and also help you quickly understand the type of application and controls engineer that you are working with. With industrial plants rapidly increasing their dependency on controls and data, this will be a vital skill moving forward.