Problem Description
In many
industries and plants, water storage systems are still operated manually. These
manual systems, although simple, present several disadvantages:
Lack of accuracy in maintaining water levels
Time delays due to human intervention
Loss of liquids from overfilling or underfilling
Time-consuming operations that reduce efficiency
Dependence on operators, requiring dedicated personnel for machine operation
Water wastage, which is common in manual systems
Because of
these limitations, manual water filling systems are inefficient and unsuitable
for modern industrial requirements. Automation using PLCs provides a reliable
solution that improves accuracy, reduces wastage, and eliminates the need for
constant human supervision.
Problem Diagram:
-
Problem Solution:
-
To overcome the limitations of manual water filling
systems, we implement an automated control system using the Siemens S7‑1200 PLC
programmed in TIA Portal. The PLC continuously monitors the tank level through
sensors and controls solenoid valves to manage filling and discharging cycles.
System Components
Sensors:
High-Level
Sensor (TLB2) – Detects when the tank is full.
Low-Level
Sensor (TLB1) – Detects when the tank is nearly empty.
Valves:
SOV1 (Feeding
Valve) – Controls the water inflow during the filling cycle.
SOV2
(Discharge Valve) – Controls the water outflow during the discharge cycle.
Additional Devices:
Mixer Motor
(M) – Operates during discharge to ensure proper mixing.
Buzzer (Q0.4)
– Provides an alarm when the tank reaches high level.
START/STOP
Push Buttons – Allow manual control of the cycle.
Filling Cycle
When the Low-Level
Sensor (TLB1) detects that the water level has dropped below the minimum
threshold, the PLC activates SOV1 (Feeding Valve).
Water begins
to fill the tank automatically.
Once the High-Level
Sensor (TLB2) is triggered, the PLC deactivates SOV1, stopping the filling
process.
Discharging Cycle
When the High-Level
Sensor (TLB2) detects that the tank is full, the PLC activates SOV2 (Discharge
Valve).
Simultaneously,
the Mixer Motor (M) is turned ON to mix the water during discharge.
The Buzzer
(Q0.4) also activates to alert the operator that the tank has reached high
level.
When the Low-Level
Sensor (TLB1) is triggered again, the PLC deactivates SOV2 and the mixer,
stopping the discharge cycle.
Manual Control
The operator
can start the cycle by pressing the START button (I0.0).
The cycle can
be stopped at any time by pressing the STOP button (I0.1), which resets all
outputs and halts the process.
Program: -
Here is PLC program for Water filling and discharging process using
S7-1200 PLC.
List of
inputs/outputs
|
Type |
Address |
Tag/Name |
Description |
|
Digital Input |
I0.0 |
START PB |
Start push button to
initiate cycle |
|
Digital Input |
I0.1 |
STOP PB |
Stop push button to
halt cycle |
|
Digital Input |
I0.2 |
Level Low |
Sensor detects low
water level |
|
Digital Input |
I0.3 |
Level High |
Sensor detects high
water level |
|
Digital Output |
Q0.0 |
Cycle ON |
Indicator showing
cycle is active |
|
Digital Output |
Q0.1 |
SOV1 (Feed) |
Solenoid valve for
filling cycle |
|
Digital Output |
Q0.2 |
SOV2 (Discharge) |
Solenoid valve for
discharge cycle |
|
Digital Output |
Q0.3 |
Mixer (M) |
Mixer motor ON
during discharge |
|
Digital Output |
Q0.4 |
Buzzer |
Alarm buzzer ON at
high level |
Ladder
diagram for Water filling and discharging process using S7-1200 PLC.
// Cycle
control logic
IF NOT
"STOPPB" AND ("STARTPB" OR "Cycle ON") THEN
"Cycle ON" := TRUE;
ELSE
"Cycle ON" := FALSE;
END_IF;
// SOV 1
Control / Feeding Process ON
IF
"Cycle ON" AND NOT "Level High" AND ("Level Low"
OR "SOV1 (Feed)") THEN
"SOV1 (Feed)" := TRUE;
ELSE
"SOV1 (Feed)" := FALSE;
END_IF;
// SOV 2
Control / Discharge Process ON
IF
"Cycle ON" AND NOT "Level Low" AND ("Level High"
OR "SOV2 (Discharge)") THEN
"SOV2 (Discharge)" := TRUE;
ELSE
"SOV2 (Discharge)" := FALSE;
END_IF;
// Motor
COntrol
IF
"SOV2 (Discharge)" THEN
"MOTOR" := TRUE;
ELSE
"MOTOR" := FALSE;
END_IF;
// Buzzer
Control
IF
"Level High" THEN
"Buzzer" := TRUE;
ELSE
"Buzzer" := FALSE;
END_IF;
Program
Description
For this application, we used the Siemens S7‑1200 PLC
and TIA Portal software for programming.
Cycle ON Latching A latching circuit is implemented
for the Cycle ON (Q0.0) output. The cycle can be started by pressing the START
push button (I0.0) and stopped by pressing the STOP push button (I0.1).
System Operation Once the cycle is ON, the PLC
continuously monitors the tank level.
If the tank level is low, the feeding process begins
automatically.
If the tank level is high, the discharge process
starts automatically.
Sensor Logic For simplicity, NO (Normally Open)
contacts are used for both sensors in the program. In practice, this can be
implemented using relay logic in the field or by selecting appropriate sensor
types.
When the tank detects low level, TLB1 (Low Level,
I0.3) is activated, and the feeding cycle (SOV1, Q0.1) turns ON.
Here, an NC (Normally Closed) contact of TLB2 (High
Level, I0.2) is used so that when the PLC detects high level, it automatically
stops the feeding cycle.
When the tank detects high level, TLB2 (High Level,
I0.2) is activated, and the discharging cycle (SOV2, Q0.2) turns ON.
During discharge, the Mixer (Q0.3) also runs for
mixing purposes.
An NC contact of TLB1 (Low Level, I0.3) ensures that
when the PLC detects low level, the discharge cycle stops.
Alarm Function When the tank reaches high level (TLB2,
I0.2), the Buzzer (Q0.4) is activated to alert the operator.
Throughout all operations, the Cycle ON (Q0.0) signal
must remain active. If the STOP button is pressed, the cycle halts and all
outputs reset.
Runtime Test Cases
|
Inputs |
Outputs |
Physical Elements |
|
I0.0 = 1 |
Q0.0 = 1 |
Cycle ON |
|
I0.2 = 1 |
Q0.1 = 1 |
Feeding Cycle ON
(SOV1 active) |
|
I0.3 = 1 |
Q0.2 = 1, Q0.3 = 1,
Q0.4 = 1 |
Discharge Cycle ON
(SOV2 active), Mixer ON, Buzzer ON |
|
I0.1 = 1 |
Q0.0 = 0, Q0.1 = 0,
Q0.2 = 0, Q0.3 = 0, Q0.4 = 0 |
Cycle STOP – all
outputs reset |