Drawer

project

Here is a complete, portfolio-ready PLC Project: an Automatic Water Tank Filling System with Dry-Run Protection.

This project uses Delta DVP-14SS2 (or similar) and DiaStudio (ISPSoft). It demonstrates Timers, Counters, Interlocks, and Fail-Safe logic.

---

Project Overview

Objective: Control a pump to fill an overhead tank from a borewell. The system stops when full, prevents the pump from running dry, and alerts the operator if the pump runs empty for too long.

I/O Assignment:

Tag Address Type Description
Start X0 NO Pushbutton Momentary start command
Stop X1 NC Pushbutton Emergency/Manual stop
Low_Level X2 NO Float Switch Borewell water available (Dry-run protection)
High_Level X3 NO Float Switch Tank is FULL (Top sensor)
Pump_Out Y0 Relay Contactor for the pump motor
Alarm Y1 Indicator Flashing warning light for "Dry Well"

---

The Ladder Logic (Text-Based Representation)

Open DiaStudio, create a new project, and build this network by network.

Network 1: Seal-in / Latching Circuit
(Maintains the pump state even after releasing the Start button)

```
|---[X0]----[/X1]----[X2]----[/X3]----[  ]--(Y0)---|
|                              |          |
|                              |--[Y0]----|
```

Logic: Pump runs if:

1. Start pressed AND Stop NOT pressed.
2. Water is available (X2 is ON).
3. Tank is NOT full (X3 is OFF).
4. The circuit latches itself via Y0.

---

Network 2: Dry-Run Detection Timer
(If the pump runs but X2 turns OFF, start a 10-second countdown)

```
|--[Y0]----[/X2]----[TON T0 K100]----|
```

Logic: Timer T0 starts counting only when the pump is running (Y0) but the low-level sensor (X2) is dry. If this lasts 10 seconds, T0 will turn ON.

---

Network 3: Alarm & Shutdown Latch
(Traps the fault and flashes the alarm)

```
|---[T0]----[  ]--(Y1)---|  (Alarm Light)
|---[T0]----[  ]--(SET M0)---|  (Fault Latch)
```

Logic: When T0 times out, the alarm flashes and an internal relay M0 latches the fault state.

---

Network 4: Fault Interlock
(Prevents restart until manually cleared)

```
|--[M0]----[  ]---------------[/Y0]---|  (Forces Y0 OFF)
|--[M0]----[X1]----[RST M0]---|  (Reset fault by pressing Stop)
```

Logic:

· M0 keeps the pump turned OFF even if Start is pressed.
· Pressing the Stop button (X1) resets the fault latch.

---

How It Works (Step-by-Step)

1. Normal Fill Cycle:
   · Operator presses Start (X0).
   · Pump Y0 turns ON.
   · Water fills the tank.
2. Stop at Full:
   · When water reaches the top, High_Level (X3) turns ON.
   · The normally closed contact [/X3] breaks the circuit.
   · Pump Y0 turns OFF automatically.
3. Dry-Run Protection (Safety):
   · If the borewell runs dry, Low_Level (X2) turns OFF.
   · Timer T0 starts (10-second grace period).
   · If water doesn't return in 10 seconds, the system shuts down and triggers the Alarm (Y1).
4. Restarting after Fault:
   · The pump will NOT restart automatically.
   · Operator must press Stop (X1) to clear the fault, then press Start (X0) again.

---

Screenshots to Take (Portfolio Images)

Image 1: Main Ladder Logic
Take a screenshot of Networks 1 & 2 in DiaStudio.

Image 2: Alarm & Latch Logic
Take a screenshot of Networks 3 & 4.

---

Wiring Guide (For your documentation)

· X0 (Start): Connect to 24VDC (+) via a NO pushbutton.
· X1 (Stop): Connect to 24VDC (+) via a NC pushbutton.
· X2 (Low Level): Connect to PLC 24V Supply and terminal X2.
· X3 (High Level): Connect to PLC 24V Supply and terminal X3.
· Y0: Connect to the coil of a 24VDC relay (which drives the motor contactor).
· COM: Connect to 0VDC (Ground).

---

Why This Project Works for Your Portfolio

· ✅ Practical Application: Water level control is used in 80% of industries.
· ✅ Safety Focus: Includes "Dry-Run" protection (demonstrates risk assessment).
· ✅ Complexity: Uses Timers, Latching relays (SET/RST), and Interlocks—not just simple ON/OFF.
· ✅ Troubleshooting: Requires a manual reset after a fault (shows robust design).

Pro Tip: In DiaStudio, use the "Simulation" mode to test the logic. You can force X2 OFF while Y0 is running to see the 10-second countdown in Timer T0.