PLC Programming Course (P2): Ladder Logic PLC Programming of a Water Pumping System
In this article (Part 2), you’ll learn the correct steps to a neat and clean Ladder Logic PLC Programming of a simple process.
Ladder Logic PLC Programming is the most popular and easy to learn methods of automating our process using the PLCs. Ladder Logic or LD for short is developed under the open international standard IEC61131 for Programmable Logic Controllers.
In this part of the course, you are going to learn how to interpret the logic of the process and write a Ladder Logic program according to that.
In Part 1 of this series, we configured our PLC hardware in TIA Portal Version 15.1, and in this article (Part 2), we are going to write a PLC program in Ladder Logic (LAD) for this simple Water Pumping System and in Part 3 of this example, we’ll test it using the PLC simulator.
Logic Oriented Documents
First of all, we have to know what the logic behind our process is.
In the actual projects, there are some documents for this purpose, such as Philosophy of operation, I/O lists, Piping and Instrumentation Diagrams, Internal wiring diagrams and so on.
You’ll learn about the Control and Instrumentation documents, and drawings and how to design and draw them in software such as EPLAN or AutoCAD electrical in future articles.
Understand the Logic, Before PLC Programming!
In this process, the pump should transfer the water from a “Pool” to a “Tank”, automatically.
For being automatic, there should be a “Low-Level Switch” on the bottom and a “High-Level Switch” on Top of the tank as well as a “Low-Level Switch” in the pool.
1. What does Tank’s Low-Level Switch do?
As soon as the Low-Level Switch on the tank does not sense the water, PLC should send a start command to the pump and the pump will start working until the High-Level Switch senses the water.
2. What does Tank’s High-Level Switch do?
When the High-Level Switch senses the water, the PLC will send a stop command to the pump and the pump will shut down and will remain shut down until the Low-Level Switch of the tank does not sense the water again.
This procedure will be repeated again and again.
3. What does Pool’s Low-Level Switch do?
There is also one other situation that PLC will shut down the pump.
This would be when there is no water in the pool and its Low-Level Switch does not sense any water.
How Many Signals? How Many PLC Cards?
So, in this example, we have:
– Three inputs (which come from the level switches)
– One output (which turns ON and OFF a three-phase electric motor that drives the pump)
Therefore one Digital Input module and one Digital Output module is required.
Important NOTE: How to Command an Electric Motor with a PLC
We have connected the PLC output directly to the electric motor for the sake of simplicity, but as you may know, in reality, there is a contactor in between.
Since it will not affect our PLC program, let’s keep it as it is. However, we will explain the real-world PLC Control Panel devices and its wiring diagram in a future article.
Let’s Open Up the PLC Programming Environment
In Part 1 of this article, we have explained how to create a new project and configure the PLC hardware. Therefore, I just open that project and skip the hardware configuration step.
In the “PLC Programming” tab, there is an Organization Block by default (OB1).
Depending on the PLC program you are writing, you may need to create other new blocks or functions that you can do that from the “Add new block” submenu.
I double-click over the “Main OB” or OB1 to open it.
OB1 is the Main Organization Block or primary environment for PLC programming.
How to and Why We Should Add Tags to the PLC Inputs and Outputs
Before writing anything within the OB1 environment, we should add the Inputs and Outputs of the project and their addresses in a “Tag Table”.
You can create a Tag Table, in “Project tree”, on the left side of the window, and under the “PLC Tags” Folder.
As you’ll see, Tags are some kind of names that we assign to each input and output signal and they will help us to know the corresponding equipment (i. e. instrument switches, contactors, relays, etc.) of each input and output of the PLC cards. As a result, the PLC programming will be more easy.
Furthermore, we’ll have a neat and clean program afterwards so that the automation maintenance engineers can follow the PLC program and troubleshoot the process easily.
I’ll create a new tag table and name it as “Water Pumping System”. I then open it up by double-clicking on it.
The first input is the “Pool Low-Level Switch”.
After entering the name, the software automatically assigns the I0.0 address to this input which is the first channel of our only DI Card.
The next one is the “Tank Low-Level Switch” with the address of I0.1.
And the last input signal is “Tank High-Level Switch” with the address of I0.2.
Finally, as you may guess, there is our only output which I’ll name it “Motor-Pump”. And assign the address of Q0.0 to that.
Again by defining these tags in the tag table, we’ll prevent confusion when we’re writing the PLC program or during the maintenance and troubleshooting. Particularly when our process includes thousands of Inputs and Outputs.
I close the tag table to start programming.
Ladder Logic PLC Programming!
On the right-hand side of the PLC programming window (OB1), under the “Basic instructions” tab, I’ll expand the “Bit Logic Operations” folder and add an SR Flip-Flop from there by dragging and dropping it to the Network 1.
I then assign the “Motor-Pump” or Q0.0 to that.
Q: Why do I chose SR Flip Flop over the RS Flip-Flop?
A: Choosing between the SR and RS Flip Flops is the matter of priority between Setting and Resetting the Flip-Flop. Meaning that, if you want your “Set” input has priority over the “Reset” input, then you should choose the RS Flip-Flop and vice versa.
I’m sure that you will understand it better after we simulate this program in Part 3 of this series.
Again, for keeping the logic as simple as possible, I assume that all of the level switches are Normally Open switches and will send a True signal (24-volt DC signal) when they sense the water and they send a False (zero signal) when they do not.
To learn more about the Normally Open sensors and Normally Closed sensors and the real cases in the industry, you may want to read this article.
As we have learned previously, the only condition required for starting the pump is losing the Tank’s Low-Level Switch or I0.1.
So, I connect a closed contact to the “Set” input of the SR Flip-Flop and will assign the I0.1 to that.
This way, when the I0.1 is False,then the Set input of the Flip-Flop would be one or True and consequently, the pump will turn on.
As the next step, I click the “Reset” input of the Flip-Flop and connect an open contact to that, for the I0.2.
To continue, I use an“Open Branch” and add a closed contact for I0.0.
Therefore, The electric motor will be shut down, whenever the water level reaches the low level in the Pool OR the high level in the tank.
That’s it for this part. I save the project and in Part 3, You’ll learn how to test this PLC program using the PLCSIM software and see how it works.
Thanks for reading another article. Please spread the word by sharing this article:
Good article..help for increase the knowledge of PLC.
Hi Rahul, Thank you! Of course, stay tuned for more.
I like the video because it more detailed, and well explained. Please i will like you to create a full course on these videos. Thanks
Hi Robert! Thanks for the input. We’ll definitely create more videos on PLC programming. Please stay tuned.
Any chance to expand this article to include HMI/SCADA just like we can see in video?
It would be nice to share with us your way to create such nice animation.
Thanks in advance.
Hi Almir! Thank you!
That’s for sure! In the next videos, we can continue with the HMI creation.
Thank you for your suggestion.
Interesting and well explained, Thank you
Thank you! Happy you liked it! Please share this article and video with your friends and colleagues on social media.
Excellent material, do you have a topic on control diagram design?
Thank you, Canuto! If you mean wiring diagrams, then you might want to check these two articles and videos:
ustamızın ellerine sağlık ben türkyeden takip ediyorum. yapıtıklar işin hakın veriyorlar.
Hi, Which software you used to design circuits between PLC, Tank, Pump…etc ??
Thank you sir for this tutorial.