The functional block diagram is a language in PLC programming which is very easy to use and best for troubleshooting, due to its wide graphical representation scope. Even a new programmer will find it easy to understand.
We will learn one sample program in this language in this post. The system we will use for reference is an automatic car wash function. For this system, we will write the logic in a functional block diagram, so that the programmers find it easy to understand and interpret.
Car Wash Program
First, let us understand the case scenario. There are three PLC digital inputs – the start push button, the stop push button, and the car sensor. There are two PLC digital outputs – sprinkler and soap bubbler.
The system has four sequences – first, it will wash, then it will soap, then it will rinse and at last, it will soak. After soaking, the system will stop automatically and wait for a new car.
The sequence starts by pressing the start button and only when a car is sensed. In between the sequence, if the stop button is pressed or if the car is not sensed, then the whole cycle will reset and wait for a new start once again.
Functional Block Diagram (PLC)
Now that we are clear with the scenario of the program required, let us write the logic in a functional block diagram. Refer to the below image. We will see the whole sequence step by step now.
We set a bit named – logic started on pressing the start button. The same bit is reset on three conditions – when the stop button is pressed, or when the car is not sensed, or when soaking time is over. Refer to the first top two parts in the image.
The first output of the sprinkler will turn on only during wash time and rinse time. So, for the sprinkler, we have used two AND blocks and one common OR block. Both the AND blocks will have two common interlocks – logic running and car sensor.
In the first AND block, we used the wash timer done bit as negate. It means it will run only till the wash timer is running and stop once the timer is done.
In the second AND block, we used the rinse delay timer done bit and rinse timer done bit as negate. It means it will run only when the rinse delay timer is complete and till the rinse timer is running. Once the rinse timer is done, it will stop.
The second output of the soap bubbler will turn on only when the soap delay timer is complete and till the soap timer is running. Once the soap timer is done, it will stop. For this, we used the soap delay timer done bit and soap timer done bit as negate. It will also have both the common interlocks- logic running and car sensor.
Now, let us see the timer logic. As we see, when the logic is started, the wash time starts for 30 seconds. After it is over, it starts the soap delay timer for 15 seconds. After it is over, it starts the soap timer for 30 seconds.
After it is over, it starts the rinse delay timer for 15 seconds. After it is over, it starts the rinse timer for 30 seconds. After it is over, it starts the soak timer for 15 seconds.
After this timer, the logic is reset as seen in the first condition written. We just linked the timer done of a preceding one to the input of the next one.
In this way, we saw how to write an automatic car washer system using a functional block diagram.
Read Next:
- Structured Text PLC Logic for Motor Interlock
- How Modbus is used in Industrial Networks?
- Conveyor Speed Logic using Structured Text
- Burglar Alarm Security System PLC FBD Logic
- PLC Structured Text Program for Outputs