PLC programs are typically written in a particular application on a personal computer, then downloaded to the PLC. This downloaded program is similar to compiled code to keep the program efficient. The program is stored in the PLC in battery-backed-up RAM or non-volatile flash memory.
Five Different PLC Programming Languages
Albert Einstein said, “The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking” PLC programming languages have evolved to adapt and change how we program these units. We will examine all five programming languages the IEC 61131-3 Standard defines.
- Structured Text (ST)
- Function Block Diagram (FBD)
- Sequential Function Chart (SFC)
- Instruction List (IL)
- Ladder Diagram (LD)
Not all of these programmable controller languages are available in every PLC. Ladder logic programming is by far the most significant percentage of use in PLCs today. Fundamental concepts of PLC programming are common to all manufacturers. Differences in I/O addressing, memory organization and instruction sets mean that PLC programs are never interchangeable between different makers. Even within the same product line of a single manufacturer, different models may not be directly compatible. This is true when looking at manufacturers that private label other controllers.
Estimates are as high as 95% of installations use ladder logic programming in the programmable logic controller.
The PLC programming language that is used can be decided when you look at the following:
- Maintenance and troubleshooting
- Knowledge of language
- Acceptance of the country, location, or individual plant
- Application of the PLC
- Ease of changing the PLC program
The actual programming of the PLC is the second last step in developing programs. The five steps to PLC program development are excellent to follow before picking the programming language. As mentioned before, the languages supported by each PLC may differ. Please refer to the programming types available for your model and version of PLC.
Let’s quickly review some of the different programming languages for the PLC.
Structured Text (ST)
Structured Text (ST) is a high-level programming language resembling Pascale programming. Statements are used to define what to execute.
Function Block Diagram (FBD)
A Function Block Diagram (FBD) is a graphical representation of that drawn that are AND, NAND, OR, NOR gates, etc. It will describe the function between input and output variables.
Sequential Function Chart (SFC)
A sequential Function Chart (SFC) is like a flowchart of your program. It defines the steps through which your program moves.
Instruction List (IL)
An instruction List (IL) can also be called a mnemonic code and statement list. It contains simple instructions for looking at your variables.
Ladder Diagram (LD) – Widely Used
Ladder Diagram (LD) is the most popular programming language for PLC. It was written to mimic the mechanical relays in the panel that the programmable logic controller replaced. It has two vertical rails and a series of horizontal rungs between them. Controllers will usually scan from left to right, top to bottom. The output of one rung is available for the next rung.
Note: All pictures from PLCopen IEC 61131 Basics
PLC programming methods are evolving. PLC Open defines new ways to utilize the latest computer innovations. They have specified the IL programming method to XML (Extended Markup Language) for web development. This, in my opinion, keeps moving the ideal process to a standard way to program PLCs.
If you have any questions or need further information, please get in touch with me.
Thank you,
Garry
If you’re like most of my readers, you’re committed to learning about technology. Numbering systems used in PLCs are not challenging to learn and understand. We will walk through the numbering systems used in PLCs. This includes Bits, decimals, Hexadecimal, ASCII, and Floating points.
To get this free article, subscribe to my free email newsletter.
Use the information to inform other people how numbering systems work. Sign up now.
The ‘Robust Data Logging for Free’ eBook is also available as a free download. The link is included when you subscribe to ACC Automation.
I’m glad you mentioned that not all five of the programming languages are available in every PLC, as I was not previously aware of this. Luckily, Ladder logic programming is actually the method that I’m most familiar with. I’m something of a hobby programmer at home, and I’ve been considering stepping up my programming game by taking on some of the more advanced work like PLC’s, and so I may have to take a look at the XML programming you mentioned as well, just to keep up with how things are changing.
HI Rhianna,
Thanks for the comments. If you want here is a post that will get you started with PLC programming without spending any money.
https://accautomation.ca/create-a-plc-with-hmi-training-and-learning-environment-free/
There are also free online PLC simulators that will help you to develop general logic. Here is one for ladder logic.
https://accautomation.ca/plc-fiddle-online-editor-and-simulator-in-your-browser/
Hope this helps you out.
Let me know if I can be of assistance.
Thanks again,
Garry
Hello Gary,
I had a question: do you have a video on the Click PLC and how each of the “move” instructions are utilized? I have watched a couple of your videos on the click PLC and I see the different options of the move instruction used in the example programs. I read the help file in the software and the manual, but it doesn’t seem very intuitive. If you do not have a video covering this instruction in more detail do you plan to make one or could you direct me to a place that would explain this function more clearly?
Hi Ben,
I do not have a specific post on the copy command but here is one that may help you out.
https://accautomation.ca/click-plc-logging-data-with-time-and-date-stamp/
This is part of the entire Click PLC Series found here.
https://accautomation.ca/series/click-plc/
Regards,
Garry
If you have a specific application, let me know if I can help.
Thanks for your information.
Thank you for the comment. I am glad you found it informative.
Garry