Programming Guides14 min read12Β 091 words

Pump Control PLC Programming: Complete Guide to VFD, Lead-Lag, and Multi-Pump Systems

Master pump control PLC programming with this comprehensive guide covering VFD integration, lead-lag control, multi-pump sequencing, and energy-efficient pump automation.

IAE
Senior PLC Programmer
15+ years hands-on experience β€’ 50+ automation projects completed
PLC
Programming Excellence
🚧 COMING DECEMBER 2025

🎯 Master PLC Programming Like a Pro

Preorder our comprehensive 500+ page guide with real-world examples, step-by-step tutorials, and industry best practices. Everything you need to become a PLC programming expert.

  • βœ“ Complete Ladder Logic Programming Guide
  • βœ“ Advanced Function Block Techniques
  • βœ“ Real Industrial Applications & Examples
  • βœ“ Troubleshooting & Debugging Strategies
60% Off Preorder
$47
vs $127 Final Price
Preorder Now

πŸ“‹ Table of Contents

This comprehensive guide covers:

  • Introduction to PLC Programming Fundamentals
  • Understanding Ladder Logic Programming
  • Function Block Diagrams and Structured Text
  • Advanced Programming Techniques
  • Real-World Application Examples
  • Troubleshooting and Best Practices
  • Industry Standards and Compliance
  • Career Development and Certification Paths

Introduction: Master Pump Control PLC Programming

Automated pump control represents one of the most common and critical PLC programming applications across industrial, commercial, and municipal facilities. From water treatment plants and HVAC systems to chemical processing and wastewater management, efficient pump control directly impacts operational costs, system reliability, and energy consumption.

Modern pump control systems have evolved far beyond simple on/off motor starters. Today's applications integrate variable frequency drives (VFDs) for precise speed control, sophisticated lead-lag sequencing for reliability and efficiency, multi-pump staging strategies for demand-based operation, and advanced PID control loops for maintaining precise pressure, flow, or level setpoints.

This comprehensive guide provides everything automation professionals need to design, program, and troubleshoot advanced pump control systems. You'll learn fundamental pump control strategies, hardware selection and wiring requirements, complete ladder logic programming examples for single-pump and multi-pump systems, VFD integration techniques including analog and digital communication protocols, and industry best practices for energy optimization and equipment protection.

Whether you're programming a simple residential water booster system or a complex industrial multi-pump installation with redundancy and load sharing, this guide delivers practical, field-tested techniques that professional automation engineers use to create reliable, efficient pump control solutions. Each section includes complete programming examples, detailed explanations, and troubleshooting guidance based on real-world applications.

Understanding pump control PLC programming is essential for process automation professionals, building automation engineers, water treatment specialists, and anyone responsible for optimizing pump system performance and reliability in industrial environments.

Chapter 1: Pump Control Fundamentals

Understanding Pump Types and Applications

Centrifugal Pumps: Centrifugal pumps represent the most common type in industrial and commercial applications, using rotating impellers to convert mechanical energy into fluid velocity and pressure. These pumps excel at high-flow, moderate-pressure applications and respond well to speed control through VFDs.

Key Characteristics:

  • Flow varies with speed (affinity laws apply)
  • Pressure decreases as flow increases
  • Efficient across wide operating ranges
  • Suitable for water, chemicals, petroleum products
  • Can run continuously without damage
  • Compatible with variable speed control

Positive Displacement Pumps: Positive displacement pumps move fixed volumes per revolution through reciprocating pistons, rotating gears, or progressive cavities. These pumps deliver constant flow regardless of pressure changes and require careful control to prevent overpressure conditions.

Key Characteristics:

  • Flow proportional to speed, independent of pressure
  • High pressure capability at low flow rates
  • Self-priming in most designs
  • Require pressure relief protection
  • Used for viscous fluids, metering applications
  • Limited compatibility with VFD control

Motor Starter Technologies

Direct-On-Line (DOL) Starters: DOL starters apply full voltage directly to the motor, causing immediate acceleration to full speed. This simple, reliable approach works well for smaller pumps where inrush current and mechanical stress are acceptable.

Advantages:

  • Simple, low-cost solution
  • Minimal maintenance requirements
  • Proven reliability
  • Fast response to start commands

Disadvantages:

  • High inrush current (6-8x full load amperage)
  • Mechanical stress on pump and piping
  • Water hammer in piping systems
  • No speed control capability
  • Higher energy consumption

Soft Starters: Soft starters reduce voltage during acceleration, controlling motor torque and current while ramping to full speed over adjustable timeframes. This technology reduces mechanical and electrical stress while maintaining simple on/off control.

Advantages:

  • Reduced inrush current (2-4x FLA)
  • Controlled acceleration reduces mechanical stress
  • Prevents water hammer
  • Lower installation cost than VFDs

Disadvantages:

  • No speed control during operation
  • Limited energy savings
  • Heat dissipation during acceleration
  • No deceleration control

Variable Frequency Drives (VFDs): VFDs provide complete motor speed control by varying frequency and voltage supplied to the motor. This technology enables precise flow and pressure control while delivering substantial energy savings through affinity law relationships.

Advantages:

  • Continuous speed control (0-100%)
  • Significant energy savings (30-50% typical)
  • Soft start and stop capabilities
  • Process control integration
  • Reduced mechanical wear
  • Eliminates throttling valve losses

Disadvantages:

  • Higher initial investment
  • Generates electrical noise (EMI)
  • Requires proper grounding and shielding
  • Additional programming complexity
  • Harmonic distortion concerns

Pump Control Strategies Overview

On/Off Control: Simple binary control maintains level, pressure, or flow within deadband ranges using mechanical or electronic sensors. Pumps start at high setpoint and stop at low setpoint, providing adequate control for applications tolerating variation.

Applications: Sump pumps, tank filling, simple water distribution, sewage lift stations, drainage systems

Speed Control (VFD): Continuous speed adjustment maintains precise setpoints by modulating pump output to match demand. This strategy delivers optimal energy efficiency and process stability for applications requiring consistent pressure or flow.

Applications: Building water pressure boosting, HVAC chilled/hot water systems, process cooling water, chemical dosing

Pressure Control: Maintains constant discharge pressure regardless of flow demand by adjusting pump speed or staging multiple pumps. This common strategy ensures adequate pressure throughout distribution systems while minimizing energy consumption.

Applications: Water distribution networks, fire protection systems, irrigation systems, industrial process water

Flow Control: Regulates volumetric flow rate through speed modulation or valve positioning, essential for applications requiring precise material delivery or chemical feed rates.

Applications: Chemical injection systems, wastewater treatment, batching processes, filtration systems

Level Control: Maintains liquid level in tanks or vessels by controlling pump speed or on/off operation based on level sensor feedback. Both filling and draining applications use this strategy.

Applications: Water storage tanks, process vessels, condensate return, surge tanks, boiler feed

Common Pump Control Applications

Water Distribution and Pressure Boosting: Building water systems require constant pressure across varying demand conditions, typically achieved through VFD-controlled lead pump with fixed-speed lag pumps staging based on pressure deviation from setpoint.

HVAC Hydronic Systems: Chilled water and hot water circulation systems use variable speed control to maintain differential pressure or temperature setpoints while minimizing pump energy consumption across varying building loads.

Industrial Process Applications: Manufacturing processes require reliable, precise flow or pressure control for cooling water systems, chemical circulation, product transfer, and heat exchanger supply applications.

Wastewater and Sewage Handling: Lift stations, treatment processes, and effluent discharge systems use pump control for level management, flow pacing, and treatment process optimization.

Water and Wastewater Treatment: Treatment plants employ sophisticated multi-pump systems for raw water intake, chemical dosing, filtration, backwash, and distribution applications requiring high reliability and efficiency.

Safety Requirements and Interlocks

Critical Safety Interlocks:

Dry Run Protection: Prevent pump operation without adequate liquid supply using float switches, conductivity probes, or pressure sensors. Dry running destroys pump seals and bearings within seconds.

Motor Overload Protection: Monitor motor current through thermal overload relays or VFD electronic overload functions. Automatic shutdown prevents motor damage from locked rotor, single-phasing, or sustained overload conditions.

High/Low Pressure Limits: Implement pressure switches or transmitter-based limits to prevent excessive discharge pressure (pipe/equipment damage) or low suction pressure (cavitation damage).

Emergency Stop Integration: Connect emergency stop circuits to remove power from pump motors, providing immediate shutdown capability independent of PLC control logic.

Vibration Monitoring: Critical pumps benefit from vibration sensors detecting bearing failure, misalignment, or cavitation conditions before catastrophic failure occurs.

Temperature Protection: Monitor motor winding temperature and bearing temperature on critical pumps, providing early warning of lubrication failure or cooling problems.

Minimum Run Time Enforcement: Prevent excessive cycling that damages motor starters and creates mechanical stress by enforcing minimum run periods (typically 3-10 minutes) between start/stop events.

Anti-Cycling Delays: Implement time delays between stop and restart (typically 30-300 seconds) allowing pressure equalization and preventing rapid restart attempts during fault conditions.

Chapter 2: PLC Hardware Requirements for Pump Control

Essential I/O Requirements

Digital Inputs Required:

Pump Status Feedback: Monitor auxiliary contacts from motor starters or VFDs to confirm actual pump running status. This feedback enables fault detection when commanded output doesn't match actual status within reasonable time.

Fault Detection Inputs: Connect motor overload contacts, thermal switches, and safety device contacts to digital inputs for immediate fault recognition and alarm generation.

Selector Switches and Operator Controls: Hand-Off-Auto (HOA) switches, remote start/stop commands, and mode selection switches provide operator control over automatic sequences.

Level, Pressure, and Flow Switches: Float switches, pressure switches, and flow switches provide discrete feedback for simple control strategies and backup protection for transmitter-based systems.

Digital Outputs Required:

Motor Starter Control: Energize motor starter coils or VFD run commands through relay outputs or transistor outputs rated for 24VDC or 120VAC control circuits.

VFD Control Signals: Some VFD control strategies use discrete outputs for run/stop, forward/reverse, speed step selection, or preset frequency selection.

Indicator Lamps and Alarms: Drive status indication, alarm annunciation, and system status lights through digital outputs to panel indicators or remote alarm panels.

Valve Control: Isolation valves, check valves, and flow control valves may require discrete outputs for position control.

Analog Inputs Required:

Pressure Transmitters: 4-20mA or 0-10VDC signals from pressure transmitters provide continuous feedback for PID control loops and monitoring applications. Typical ranges: 0-100 PSI, 0-150 PSI, 0-300 PSI.

Level Transmitters: Ultrasonic, radar, hydrostatic, or float-type analog level transmitters enable precise level control and monitoring. Transmitter selection depends on application requirements and fluid properties.

Flow Meters: Magnetic, vortex, ultrasonic, or differential pressure flow meters provide flow rate measurement for control, totalizing, and efficiency monitoring.

Temperature Sensors: RTD or thermocouple inputs monitor process temperature, motor temperature, or bearing temperature for protection and process control.

Analog Outputs Required:

VFD Speed Reference: 4-20mA or 0-10VDC analog output provides speed command to VFD analog input. This represents the primary control method for variable speed pump applications.

Control Valve Positioning: Analog outputs position control valves, butterfly valves, or throttling devices for applications combining pump control with valve modulation.

PLC Selection for Pump Applications

Recommended PLC Platforms:

Allen-Bradley Micro800 Series: Compact controllers offering adequate I/O, Ethernet connectivity, and easy integration with PowerFlex VFDs through network communication. Excellent for small to medium pump applications (1-4 pumps).

Key Features:

  • Built-in Ethernet/IP
  • Embedded I/O plus expansion
  • Integration with CCW programming
  • PID instruction support
  • Cost-effective for standalone systems

Allen-Bradley CompactLogix: Scalable platform supporting complex multi-pump systems with advanced communication requirements. Ideal for applications requiring integration with plant-wide networks and SCADA systems.

Key Features:

  • Modular I/O expansion
  • Multiple communication protocols
  • High-speed process control
  • Redundancy options available
  • Studio 5000 programming environment

Siemens S7-1200: Versatile controller with integrated I/O, communication options, and TIA Portal programming environment. Excellent price/performance for pump control applications.

Key Features:

  • PROFINET communication
  • Integrated web server
  • PID control support
  • Signal boards for expansion
  • Compact footprint

Siemens S7-1500: Advanced controller for large multi-pump installations requiring high performance, redundancy, and extensive communication capabilities.

Key Features:

  • High processing speed
  • Extensive I/O capacity
  • Safety integration
  • Motion control capability
  • OPC UA server

Schneider Electric Modicon M241/M251: Cost-effective controllers supporting IEC 61131-3 programming with strong VFD integration through Modbus and CANopen communication.

Key Features:

  • Multiple programming languages
  • Built-in Modbus TCP/RTU
  • Altivar VFD integration
  • Web-based visualization
  • Compact design

Transmitter and Sensor Selection

Pressure Transmitters:

Selection Criteria:

  • Range: Select range 1.5-2x maximum expected pressure
  • Accuracy: Β±0.25% to Β±0.5% typical for control applications
  • Output: 4-20mA preferred for noise immunity
  • Process Connection: NPT threaded or flanged mounting
  • Environmental Rating: IP65/NEMA 4X minimum for wet locations

Recommended Technologies:

  • Ceramic capacitive for general water service
  • Stainless steel diaphragm for corrosive media
  • Digital/HART capable for diagnostics

Level Transmitters:

Ultrasonic Level Sensors: Non-contact measurement ideal for water, wastewater, and chemical storage tanks. Requires clear path between sensor and liquid surface.

Pros: No process contact, easy installation, versatile Cons: Affected by foam, vapor, temperature changes

Submersible Pressure Transmitters: Hydrostatic pressure measurement for clean water applications including wells, tanks, and sumps.

Pros: Simple, reliable, accurate Cons: Requires submersion, cable length limitations

Radar Level Transmitters: Non-contact measurement unaffected by temperature, pressure, or vapor. Excellent for difficult applications.

Pros: Reliable in harsh conditions, no calibration required Cons: Higher cost, requires proper installation

Float Switches vs. Continuous Level:

Float Switches: Discrete level detection for simple on/off control and backup protection. Low cost, proven reliability.

Continuous Level: Analog transmitters enable precise control, trending, and advanced strategies. Higher cost justified for complex systems.

Control Panel Design Considerations

Electrical Design Standards:

UL 508A Industrial Control Panel Standard: Design and construct control panels to UL 508A requirements ensuring proper component ratings, wire sizing, overcurrent protection, and grounding practices.

NFPA 70 (NEC) Compliance: Follow National Electrical Code requirements for wiring methods, conductor sizing, overcurrent protection, and grounding/bonding.

Component Layout:

Heat Management: Mount heat-generating components (VFDs, power supplies, contactors) at bottom of enclosure with adequate spacing. Provide forced ventilation or air conditioning for panels exceeding thermal ratings.

Accessibility: Position operator interface devices, disconnect switches, and frequently accessed components for easy access. Group related components logically.

Wire Management: Use wire duct, cable ties, and organized routing for professional appearance and easy troubleshooting. Label all wires, terminals, and components.

Wiring Best Practices:

Separation of Power and Control: Maintain physical separation between power wiring (motor circuits) and control wiring (PLC I/O, communication cables) to minimize electrical noise.

Shielded Cable for Analog Signals: Use shielded twisted-pair cable for 4-20mA and 0-10VDC signals, grounding shield at one end only (typically at PLC).

VFD Installation Requirements: Install VFDs per manufacturer guidelines including line reactors or DC bus chokes, proper grounding, and shielded motor cable to minimize EMI.

Grounding and Bonding: Create low-impedance ground path by bonding all metal components to panel enclosure, connecting to building ground system through properly sized ground conductor.

Chapter 3: Basic Pump Control Programming

Single Pump On/Off Control with Level

This fundamental pump control application maintains water level in a tank or sump using discrete level switches and simple start/stop logic.

Application: Sump Pump Control

System Requirements:

  • Start pump when level reaches high setpoint
  • Stop pump when level reaches low setpoint
  • Prevent dry running if level drops to critically low point
  • Include hand-off-auto switch for maintenance
  • Monitor pump running status and generate fault alarm

I/O Assignment:

Inputs:
I:0/0 - High Level Float Switch (NO)
I:0/1 - Low Level Float Switch (NO)
I:0/2 - Critical Low Level Switch (NO)
I:0/3 - HOA Switch Auto Position
I:0/4 - HOA Switch Hand Position
I:0/5 - Pump Run Status (Auxiliary Contact)
I:0/6 - Motor Overload Contact (NC)

Outputs:
O:0/0 - Pump Motor Starter
O:0/1 - Pump Running Indicator
O:0/2 - Fault Alarm

Internal Bits:
B3:0/0 - Pump Run Command
B3:0/1 - Pump Fault
T4:0 - Run Status Delay Timer

Ladder Logic Implementation:

Rung 0: Auto Mode Start Logic
|--] [------------------] [-------------( L )--|
| I:0/3              I:0/0             B3:0/0 |
| Auto               High               Pump  |
| Position           Level              Run   |
|                                       Cmd   |

Rung 1: Auto Mode Stop Logic
|--]/[------------------]/[--------------( U )--|
| I:0/1              I:0/2              B3:0/0 |
| Low                Critical Low       Pump   |
| Level              Level              Run    |
|                                       Cmd    |

Rung 2: Hand Mode Control
|--] [--------------------------------------( )--|
| I:0/4                                  B3:0/0 |
| Hand Position                          Pump   |
|                                        Run    |
|                                        Cmd    |

Rung 3: Fault Detection - Overload
|--]/[----------------------------------( S )--|
| I:0/6                                 B3:0/1 |
| Motor Overload                        Pump   |
|                                       Fault  |

Rung 4: Fault Detection - Run Status Mismatch
|--] [--------]/[-------TON-----------( S )--|
| B3:0/0      I:0/5      T4:0         B3:0/1 |
| Pump Run    Run        Timer        Fault  |
| Command     Status     5.0s                |

Rung 5: Clear Fault on Auto Return
|--]/[----------------------------------( U )--|
| I:0/3                                 B3:0/1 |
| Auto Position                         Pump   |
|                                       Fault  |

Rung 6: Motor Starter Output
|--] [--------]/[---------------------( )--|
| B3:0/0      B3:0/1                  O:0/0 |
| Pump Run    Pump Fault              Motor  |
| Command                             Starter|

Rung 7: Running Indicator
|--] [-------------------------------( )--|
| O:0/0                               O:0/1 |
| Motor Starter                       Run    |
|                                     Lamp   |

Rung 8: Fault Alarm Output
|--] [-------------------------------( )--|
| B3:0/1                              O:0/2 |
| Pump Fault                          Fault  |
|                                     Alarm  |

Programming Explanation:

Rung 0: When selector switch is in AUTO position and high level float switch activates, the pump run command bit latches ON, starting pump operation.

Rung 1: Pump run command unlatches when low level float drops out OR critical low level activates (dry run protection), stopping the pump.

Rung 2: HAND position on selector switch directly energizes pump run command, bypassing automatic level control for manual operation.

Rung 3: Normally closed motor overload contact opens during fault condition, setting pump fault bit immediately.

Rung 4: If pump run command is true but run status feedback is false for 5 seconds, a fault condition sets indicating starter failure, broken wire, or motor problem.

Rung 5: Returning selector to AUTO position clears latched fault, allowing restart after fault condition resolution.

Rung 6: Motor starter energizes when run command is true AND no fault exists, providing safety interlock.

Rung 7 & 8: Indicator lamps show pump running status and fault conditions.

Timer-Based Pump Alternation

Extend the basic control to alternate between two pumps for even wear distribution using runtime tracking and automatic lead pump rotation.

Enhanced System with Runtime Equalization:

Rung 9: Calculate Total Runtime Pump A
|--] [--------TON-----------------------( )--|
| O:0/0       T4:1                      N7:0 |
| Pump A      1 Second                  Total|
| Running     Timer                     Time |
|             [ADD N7:0 1 N7:0]         Pump |
|                                       A    |

Rung 10: Calculate Total Runtime Pump B
|--] [--------TON-----------------------( )--|
| O:0/1       T4:2                      N7:1 |
| Pump B      1 Second                  Total|
| Running     Timer                     Time |
|             [ADD N7:1 1 N7:1]         Pump |
|                                       B    |

Rung 11: Determine Lead Pump (A if less runtime)
|--] [--------[LES N7:0 N7:1]---------( )--|
| I:0/3       Pump A     Pump B       B3:0/2|
| Auto        Runtime    Runtime      Lead   |
|                                     Pump A |

Rung 12: Start Lead Pump A
|--] [--------] [---------] [---------( L )--|
| B3:0/2      I:0/3       I:0/0       B3:0/0|
| Lead        Auto        High        Pump A |
| Pump A      Position    Level       Run    |

Rung 13: Start Lead Pump B
|--]/[-------] [---------] [---------( L )--|
| B3:0/2      I:0/3       I:0/0       B3:0/3|
| Lead        Auto        High        Pump B |
| Pump A      Position    Level       Run    |

This alternating logic ensures equal wear by selecting the pump with lowest runtime as lead pump for next cycle.

Chapter 4: Lead-Lag Pump Control Systems

Lead-Lag Control Strategy Explained

Lead-lag pump control provides reliable operation and improved efficiency by operating multiple pumps in a coordinated sequence. This fundamental strategy forms the foundation for most multi-pump applications in commercial and industrial facilities.

Core Concepts:

Lead Pump: The primary pump handling normal demand, running most frequently and typically equipped with VFD for variable speed control. The lead pump starts first when demand appears and runs continuously during normal operation.

Lag Pump(s): Backup pumps starting when lead pump reaches maximum capacity or when demand exceeds lead pump capability. Lag pumps typically run at fixed speed, staging on/off based on process variable deviation from setpoint.

Runtime Equalization: Automatic lead pump rotation based on accumulated runtime ensures even wear across all pumps, maximizing equipment life and preventing single pump from accumulating disproportionate operating hours.

Benefits of Lead-Lag Control:

Reliability through Redundancy: System continues operating if lead pump fails, with lag pump(s) maintaining service until repairs complete.

Energy Efficiency: VFD-controlled lead pump operates at optimal efficiency point for current demand, avoiding energy waste from throttling valves or continuous full-speed operation.

Capacity Flexibility: Multiple smaller pumps can meet varying demand more efficiently than single large pump, and provide better turndown ratio.

Maintenance Advantages: Individual pumps can be serviced while system remains operational, and runtime equalization extends overall pump life.

Dual Pump Lead-Lag Programming

Complete implementation of two-pump lead-lag system with runtime equalization, automatic lead rotation, and lag pump staging based on pressure deviation.

System Specifications:

  • Pump A: Variable speed (VFD controlled)
  • Pump B: Fixed speed (DOL starter)
  • Pressure setpoint: 60 PSI
  • Lag pump enable: >65 PSI for >30 seconds
  • Lag pump disable: <55 PSI

I/O Assignment:

Inputs:
I:1/0 - Pressure Transmitter 4-20mA (0-100 PSI)
I:1/1 - Pump A Run Status
I:1/2 - Pump B Run Status
I:1/3 - Pump A Overload (NC)
I:1/4 - Pump B Overload (NC)
I:1/5 - Auto Mode Enable
I:1/6 - Reset Button

Outputs:
O:1/0 - Pump A VFD Run Command
O:1/1 - Pump B Motor Starter
O:1/2 - VFD Speed Reference 4-20mA

Analog Inputs:
N7:10 - Pressure PV (scaled 0-100 PSI)

Internal Memory:
N7:20 - Pressure Setpoint (60 PSI)
N7:21 - Lag Enable Setpoint (65 PSI)
N7:22 - Lag Disable Setpoint (55 PSI)
N7:30 - Pump A Runtime Hours
N7:31 - Pump B Runtime Hours
B3:1/0 - Lead Pump Selection (0=A, 1=B)
T4:10 - Lag Enable Delay Timer
T4:11 - Lag Disable Delay Timer

Complete Ladder Logic:

Rung 0: Scale Pressure Transmitter Input
|----[SCL]------------------------------------( )--|
|     Source: I:1/0 (4-20mA raw value)        N7:10|
|     Input Min: 6242 (4mA)                   Press|
|     Input Max: 31208 (20mA)                 PV   |
|     Scaled Min: 0                                |
|     Scaled Max: 100                              |

Rung 1: Accumulate Pump A Runtime
|--] [--------TON-----------------------ADD---( )--|
| O:1/0       T4:20                     Src A N7:30|
| Pump A      3600s                     Src B 1    |
| Running     (1 hour)                  Dest  N7:30|
|             .DN                                  |

Rung 2: Accumulate Pump B Runtime
|--] [--------TON-----------------------ADD---( )--|
| O:1/1       T4:21                     Src A N7:31|
| Pump B      3600s                     Src B 1    |
| Running     (1 hour)                  Dest  N7:31|
|             .DN                                  |

Rung 3: Determine Lead Pump (A=less runtime)
|----[LES]----------------------------------( )--|
|     Source A: N7:30 (Pump A Hours)       B3:1/0|
|     Source B: N7:31 (Pump B Hours)       Lead  |
|                                          Pump A|

Rung 4: PID Control - Pump A as Lead
|--] [--------] [--------[PID]--------------( )--|
| I:1/5       B3:1/0      PD10:0           O:1/2|
| Auto        Lead A      Process Var: N7:10    |
|                         Setpoint: N7:20       |
|                         Output: N7:40         |
|                         Kp: 2.0               |
|                         Ki: 0.5               |
|                         Kd: 0.1               |
|             [SCL Output N7:40 to 4-20mA]      |

Rung 5: PID Control - Pump B as Lead
|--] [--------]/[-------[PID]--------------( )--|
| I:1/5       B3:1/0      PD10:1           O:1/2|
| Auto        Lead A      Process Var: N7:10    |
|                         Setpoint: N7:20       |
|                         Output: N7:41         |
|             [SCL Output N7:41 to 4-20mA]      |

Rung 6: Start Lead Pump A
|--] [--------] [-----[GRT N7:10 45]------( )--|
| I:1/5       B3:1/0   Pressure > 45      O:1/0|
| Auto        Lead A                      Pump A|
|                                         Run   |

Rung 7: Start Lead Pump B
|--] [--------]/[----[GRT N7:10 45]-------( )--|
| I:1/5       B3:1/0   Pressure > 45      O:1/1|
| Auto        Lead A                      Pump B|
|                                         Run   |

Rung 8: Lag Pump Enable Delay (High Pressure)
|--] [-----[GRT]-------TON------------------|
| I:1/5    N7:10       T4:10                |
| Auto     N7:21       Preset: 30s          |
|          (65 PSI)    Enable lag on        |
|                      sustained high       |

Rung 9: Lag Pump B Enable (When A is Lead)
|--] [--------] [--------] [---------------( )--|
| I:1/5       B3:1/0      T4:10.DN         O:1/1|
| Auto        Lead A      Lag Enable       Pump B|
|                         Timer Done       Run   |

Rung 10: Lag Pump A Enable (When B is Lead)
|--] [--------]/[-------] [---------------( )--|
| I:1/5       B3:1/0      T4:10.DN         O:1/0|
| Auto        Lead A      Lag Enable       Pump A|
|                         Timer Done       Run   |

Rung 11: Lag Pump Disable Delay (Low Pressure)
|--] [-----[LES]-------TON------------------|
| I:1/5    N7:10       T4:11                |
| Auto     N7:22       Preset: 60s          |
|          (55 PSI)    Disable lag after    |
|                      sustained low        |

Rung 12: Disable Lag Pump B (When A is Lead)
|--] [------------------------( U )--|
| T4:11.DN                    O:1/1 |
| Lag Disable                 Pump B|
| Timer Done                  Run   |

Rung 13: Disable Lag Pump A (When B is Lead)
|--] [------------------------( U )--|
| T4:11.DN                    O:1/0 |
| Lag Disable                 Pump A|
| Timer Done                  Run   |

Rung 14: Fault - Pump A Overload
|--]/[----------------------( S )--|
| I:1/3                      B3:1/2|
| Pump A                     Fault |
| Overload                   Pump A|

Rung 15: Fault - Pump B Overload
|--]/[----------------------( S )--|
| I:1/4                      B3:1/3|
| Pump B                     Fault |
| Overload                   Pump B|

Rung 16: Force Lag Pump on Lead Fault
|--] [--------] [----------( S )--|
| B3:1/2      B3:1/0       O:1/1 |
| Pump A      Lead A       Force |
| Fault                    Pump B|
|                          Run   |

Rung 17: Reset Faults
|--] [------------------------( U )--|
| I:1/6                      B3:1/2|
| Reset                      Clear |
| Button                     Faults|
|             [U B3:1/3]           |

Programming Explanation:

Rungs 0-2: Scale 4-20mA pressure transmitter to engineering units and accumulate runtime in hours for each pump, incrementing counters every 3600 seconds (1 hour).

Rung 3: Compare runtime values and select pump with fewer operating hours as lead pump. This bit controls all subsequent lead/lag selection logic.

Rungs 4-5: PID control loops maintain pressure setpoint by modulating VFD speed for whichever pump is currently designated as lead. Only one PID loop executes based on lead pump selection.

Rungs 6-7: Start designated lead pump when pressure drops below minimum threshold (45 PSI), ensuring pump runs before PID loop takes control.

Rung 8: Enable lag pump staging when pressure exceeds 65 PSI for sustained 30-second period, preventing nuisance starts from brief pressure spikes.

Rungs 9-10: Start lag pump (fixed speed) when enable timer completes, selecting opposite pump from current lead designation.

Rungs 11-13: Disable lag pump after pressure remains below 55 PSI for 60 seconds, providing hysteresis to prevent cycling.

Rungs 14-17: Detect overload faults and automatically start lag pump to maintain service when lead pump fails. Manual reset required after fault correction.

Triple Pump System with Standby

Expand lead-lag concept to three pumps providing N+1 redundancy with two duty pumps and one standby pump rotating positions based on runtime.

System Architecture:

  • Pump 1: VFD controlled lead/lag
  • Pump 2: Fixed speed lag
  • Pump 3: Fixed speed standby
  • Automatic rotation based on runtime
  • Staged operation based on demand

Staging Logic:

Stage 1: Pump with lowest runtime runs as variable speed lead
Stage 2: Pump with second lowest runtime starts at fixed speed
Stage 3: Pump with highest runtime remains on standby
         (starts only if one duty pump fails)

Key Programming Elements:

Rung 0: Sort Pumps by Runtime (Bubble Sort)
|----[BSL]-------------------------------------|
|     Sort N7:30, N7:31, N7:32 ascending       |
|     Store indices in N7:35, N7:36, N7:37     |
|     N7:35 = Lead pump (lowest runtime)       |
|     N7:36 = First lag (medium runtime)       |
|     N7:37 = Standby (highest runtime)        |

Rung 1: Start Lead Pump
|--] [-----[EQU]----------------( )--|
| I:2/0    N7:35                O:2/0|
| Auto     Value: 1             Pump1|
|                               Run  |
|          [EQU N7:35 2] --> [O:2/1] |
|          [EQU N7:35 3] --> [O:2/2] |

Rung 2: Enable First Lag
|--] [-----] [-----[EQU]--------( )--|
| I:2/0    T4:30   N7:36        O:2/X|
| Auto     Stage2  Value: X     Lag  |
|          Enable                Run  |

This architecture ensures maximum reliability through automatic failover while distributing wear evenly across all three pumps.

Chapter 5: VFD Integration and Speed Control

VFD Communication Methods

Variable frequency drives accept control commands and provide status feedback through multiple communication interfaces. Selecting the appropriate method depends on performance requirements, distance limitations, and system architecture.

Analog Control (4-20mA / 0-10VDC):

Speed Reference Output from PLC: Most common implementation uses PLC analog output providing 4-20mA or 0-10VDC signal to VFD analog input terminal. This signal represents speed command from 0-100% motor speed.

Advantages:

  • Simple implementation and wiring
  • Fast response time (<50ms typical)
  • No programming complexity
  • Universal compatibility
  • Inherent noise immunity (4-20mA)

Disadvantages:

  • Limited to speed reference only
  • Separate digital I/O required for status
  • No advanced diagnostic information
  • Analog signal drift over time
  • Distance limitations (300-500 feet)

Typical Wiring:

PLC Analog Output β†’ VFD Analog Input
AO+ (4-20mA) β†’ AIN+ (Terminal 1)
AO- β†’ AIN- (Terminal 2)
COM β†’ Shield ground at VFD end only

Scaling Configuration:

PLC Output: 4-20mA or 0-10VDC
VFD Input Range: 0-100% speed
Minimum Speed: 20% (4mA or 0V)
Maximum Speed: 100% (20mA or 10V)

Digital Communication Protocols:

Modbus RTU (RS-485): Serial communication protocol providing speed reference, start/stop commands, parameter access, and comprehensive status monitoring through single two-wire interface.

Advantages:

  • Bidirectional data transfer
  • Multiple VFDs on single network (up to 247)
  • Access to all drive parameters
  • Detailed fault information
  • Lower installation cost than Ethernet

Disadvantages:

  • Slower update rate (50-500ms)
  • Distance limited to 4,000 feet
  • Requires termination resistors
  • More complex programming

Typical Wiring:

RS-485 Network
PLC β†’ VFD1 β†’ VFD2 β†’ VFD3
A+   A+     A+     A+
B-   B-     B-     B-
120Ξ© termination at each end

EtherNet/IP (Allen-Bradley): Industrial Ethernet protocol providing high-speed communication between Allen-Bradley PLCs and PowerFlex VFDs with minimal programming effort.

Advantages:

  • Fast update rates (2-100ms)
  • Integrated with Studio 5000
  • Extensive diagnostic data
  • No special wiring required
  • Built-in device profiles (Add-On Instructions)

Disadvantages:

  • Higher hardware cost
  • Requires managed Ethernet switches
  • More complex network design
  • Vendor-specific implementation

PROFINET (Siemens): Industrial Ethernet standard for Siemens PLCs and drives providing real-time communication and integrated diagnostics through TIA Portal.

Advantages:

  • Deterministic real-time performance
  • Integrated device configuration
  • Comprehensive diagnostics
  • Wide vendor support

Disadvantages:

  • Requires PROFINET-capable devices
  • More complex initial setup
  • Higher equipment cost

PID Control for Pressure/Flow Regulation

Implementing closed-loop PID control maintains constant pressure or flow by continuously adjusting pump speed based on process variable feedback.

PID Control Fundamentals:

Process Variable (PV): Measured value from pressure transmitter or flow meter (current condition)

Setpoint (SP): Desired target value for pressure or flow (what you want)

Error: Difference between setpoint and process variable (SP - PV)

Output: Control signal sent to VFD speed reference (0-100%)

PID Equation:

Output = Kp Γ— Error + Ki Γ— ∫Error dt + Kd Γ— dError/dt

Where:
Kp = Proportional Gain
Ki = Integral Gain
Kd = Derivative Gain

Tuning Parameters:

Proportional Gain (Kp): Determines immediate response to error. Higher values create faster response but can cause oscillation.

Typical Range: 1.0 to 5.0 for pressure control Starting Point: 2.0

Integral Gain (Ki): Eliminates steady-state error by accumulating error over time. Too high causes overshoot and oscillation.

Typical Range: 0.1 to 1.0 for pressure control Starting Point: 0.3

Derivative Gain (Kd): Anticipates future error based on rate of change, providing damping. Often set to zero for pump applications due to noise sensitivity.

Typical Range: 0.0 to 0.5 Starting Point: 0.0 (disable derivative)

PID Implementation Example - Allen-Bradley:

Rung 0: Configure PID Instruction
|----[PID]--------------------------------|
|     PID Structure: PID_01              |
|     Process Variable: N7:10 (Pressure) |
|     Setpoint: N7:20 (60.0 PSI)         |
|     Control Variable: N7:40 (Output)   |
|     PID Gains:                         |
|       Kp (Proportional): 2.5           |
|       Ki (Integral): 0.4               |
|       Kd (Derivative): 0.0             |
|     Tieback: N7:40                     |
|     Control Mode: Auto                 |
|     Output Limits: 20.0 to 100.0       |
|     Deadband: 1.0 PSI                  |

Rung 1: Scale PID Output to VFD
|----[SCL]-------------------------( )--|
|     Source: N7:40 (0-100%)       O:3/0|
|     Input Min: 0                 VFD  |
|     Input Max: 100               Speed|
|     Output Min: 6242 (4mA=20%)   Ref  |
|     Output Max: 31208 (20mA=100%)|    |

PID Tuning Procedure:

Step 1: Set Conservative Gains

Kp = 1.0
Ki = 0.1
Kd = 0.0

Step 2: Increase Proportional Gain Gradually increase Kp until system responds quickly but oscillates slightly around setpoint. Then reduce Kp by 25%.

Step 3: Add Integral Action Increase Ki slowly until steady-state error eliminates without excessive overshoot. Monitor for hunting behavior.

Step 4: Fine Tune Response Make small adjustments to optimize settling time and minimize overshoot for your specific application.

Step 5: Set Output Limits Configure minimum speed (20-30%) to prevent stall and maximum speed (90-100%) to protect pump.

Energy Optimization Strategies

Affinity Laws for Pump Energy:

The relationship between pump speed, flow, pressure, and power consumption follows cubic law:

Flow ∝ Speed
Pressure ∝ Speed²
Power ∝ Speed³

Energy Savings Example: Reducing pump speed from 100% to 80% provides:

  • Flow reduces to 80% of original
  • Pressure reduces to 64% of original
  • Power consumption reduces to 51% of original

This delivers 49% energy savings at 80% speed!

Optimization Strategies:

Eliminate Throttling Valves: Replace control valves with VFD speed control to avoid energy waste from pressure drop across throttling devices.

Optimize Setpoint Selection: Set pressure or flow setpoint to minimum value meeting system requirements. Every PSI reduction saves energy through lower speed operation.

Implement Night Setback: Reduce setpoints during low-demand periods (nights, weekends) when full system capacity isn't required.

Trim Impellers: For systems consistently operating at reduced speeds, consider impeller trimming to improve efficiency at actual operating point.

Lead Pump Sizing: Select VFD-controlled lead pump for typical demand, with fixed-speed lag pumps handling peak loads. This maximizes time operating at efficient variable speed.

Complete VFD Pressure Control Example

Application: Building Water Booster System

System Requirements:

  • Maintain 55 PSI at building entry point
  • Variable demand from 5-150 GPM
  • Single VFD pump with fixed-speed backup
  • Energy-efficient operation
  • Automatic fault recovery

Hardware Configuration:

  • CompactLogix L32E PLC
  • PowerFlex 525 VFD (EtherNet/IP)
  • Pressure transmitter 0-100 PSI (4-20mA)
  • Flow meter 0-200 GPM (4-20mA)
  • Two 15HP centrifugal pumps

Complete Program - Allen-Bradley Studio 5000:

Rung 0: Read Pressure Transmitter
|----[SCP]-----------------------------( )--|
|     Input: Local:2:I.Ch0Data (4-20mA)  PT1|
|     Input Min: 3277 (4mA)              PSI|
|     Input Max: 16384 (20mA)               |
|     Scaled Min: 0.0                       |
|     Scaled Max: 100.0                     |
|     Output: PT1_PSI                       |

Rung 0: Read Flow Meter
|----[SCP]-----------------------------( )--|
|     Input: Local:2:I.Ch1Data (4-20mA)  FM1|
|     Input Min: 3277 (4mA)              GPM|
|     Input Max: 16384 (20mA)               |
|     Scaled Min: 0.0                       |
|     Scaled Max: 200.0                     |
|     Output: FM1_GPM                       |

Rung 2: PID Pressure Control
|--] [--------[PIDE]-----------------------|
| Auto_Mode   Enhanced PID                 |
|             PV: PT1_PSI                  |
|             SP: 55.0                     |
|             CV: VFD_Speed                |
|             PGain: 3.0                   |
|             IGain: 0.5                   |
|             DGain: 0.0                   |
|             CVInitValue: 30.0            |
|             CVMin: 25.0                  |
|             CVMax: 100.0                 |

Rung 3: Send Speed Command to VFD
|----[MOV]-----------------------------( )--|
|     Source: VFD_Speed                VFD1 |
|     Dest: VFD_1:O.SpeedReference     Speed|

Rung 4: Send Run Command to VFD
|--] [-----------------------------( )--|
| Auto_Mode                         VFD1  |
|                                   :O    |
|                                   Run   |

Rung 5: Enable Backup Pump on High Pressure
|--] [-----[GRT PT1_PSI 65.0]--TON--( )--|
| Auto    Pressure > 65        T1   Backup|
|                              30s  Pump  |
|                              .DN  Start |

Rung 6: Monitor VFD Fault Status
|--] [-----------------------------( )--|
| VFD_1:I.Fault                     Alarm |
|                                   VFD   |
|                                   Fault |

Rung 7: Start Backup on VFD Fault
|--] [-----------------------------( )--|
| VFD_Fault                         Backup|
|                                   Run   |

Rung 8: Calculate Energy Savings
|----[CPT]-----------------------------( )--|
|     Dest: Energy_Saved_kWh            Calc|
|     Expression:                          |
|     (100^3 - VFD_Speed^3)/100^3 * 15 *   |
|     0.746 * Runtime_Hours                |

HMI Display Elements:

Main Screen:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Building Water Booster Control        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Pressure:    55.2 PSI   SP: 55.0 PSI  β”‚
β”‚ Flow:        78.5 GPM                  β”‚
β”‚ VFD Speed:   67%        [Running]      β”‚
β”‚ Backup Pump: [Off]                     β”‚
β”‚                                        β”‚
β”‚ Runtime Today:    8.5 Hours            β”‚
β”‚ Energy Saved:     45.2 kWh             β”‚
β”‚                                        β”‚
β”‚ [Start] [Stop] [Setpoint Adjust]      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

This complete example demonstrates professional VFD integration with energy monitoring and automatic backup functionality.

Chapter 6: Multi-Pump Sequencing and Load Sharing

Advanced Pump Staging Strategies

Multi-pump systems require sophisticated sequencing logic to optimize efficiency, reliability, and equipment life while meeting variable demand conditions.

Demand-Based Staging:

Pressure Deviation Method: Stage additional pumps based on measured pressure deviation from setpoint rather than fixed pressure thresholds.

Stage 2 Enable: Pressure < (Setpoint - 5 PSI) for > 30 seconds Stage 3 Enable: Pressure < (Setpoint - 8 PSI) for > 30 seconds Stage Disable: Pressure > (Setpoint + 2 PSI) for > 60 seconds

Advantages: Prevents nuisance starts from brief demand spikes, optimizes number of pumps for current load.

VFD Output Method: Stage additional pumps when lead pump VFD output reaches threshold percentage (typically 85-95%) indicating maximum capacity reached.

Stage Logic:

If VFD_Output > 90% for 60 seconds β†’ Start next lag pump
If VFD_Output < 50% for 120 seconds β†’ Stop last lag pump

Advantages: Directly measures pump capacity utilization, prevents pressure droop during transitions.

Flow-Based Staging: Use flow meter measurement to stage pumps based on actual system demand relative to pump capacity.

Example: Three 100 GPM Pumps:

0-80 GPM: Single pump variable speed
80-180 GPM: Two pumps (one variable, one fixed)
180-280 GPM: Three pumps

Advantages: Precise capacity matching, excellent for applications with measured flow requirements.

Load Sharing Implementation

Distribute load equally across multiple running pumps rather than running one pump at maximum capacity before starting additional pumps.

Equal Speed Control: Run multiple VFD-controlled pumps at identical speeds, staging pumps on/off while maintaining equal loading on running units.

Benefits:

  • Extended equipment life through equal wear
  • Improved efficiency (multiple pumps at optimal point)
  • Reduced mechanical stress
  • Lower operating temperatures

Programming Approach:

Rung 0: Calculate Required Speed for Active Pumps
|----[CPT]--------------------------------|
|     Dest: Shared_Speed                 |
|     Expression:                        |
|     PID_Output / Number_Pumps_Running  |

Rung 1: Send Speed to All Running Pumps
|--] [----[MOV Shared_Speed]---------( )--|
| Pump1     Dest: VFD1:O.Speed       VFD1|
| Running                            Ref |
|                                         |
|--] [----[MOV Shared_Speed]---------( )--|
| Pump2     Dest: VFD2:O.Speed       VFD2|
| Running                            Ref |

Soft Loading and Unloading:

Prevent pressure transients when staging pumps by gradually ramping speed rather than immediate full-speed starts.

Soft Start Sequence:

1. Start new pump at minimum speed (30%)
2. Ramp to shared speed over 30 seconds
3. Reduce other pump speeds proportionally
4. Final state: All pumps at equal shared speed

Soft Stop Sequence:

1. Begin reducing pump speed to minimum
2. Increase remaining pump speeds proportionally
3. Stop pump when speed reaches 20%
4. Final state: Remaining pumps share load equally

Implementation:

Rung 0: Soft Start Ramp
|--] [----[RMPT]------------------------------|
| Pump2    Ramp Timer                         |
| Start    Input: 30.0 (minimum speed)        |
|          Output: Pump2_Speed                |
|          Target: Shared_Speed               |
|          Ramp Time: 30.0 seconds            |

Rung 1: Adjust Other Pump Speeds During Ramp
|--] [----[CPT]---------------------------( )--|
| Ramp     Dest: Pump1_Speed              Calc|
| Active   Expression:                        |
|          (PID_Output - Pump2_Speed)         |

Runtime Tracking and Maintenance Scheduling

Accurate Runtime Accumulation:

Track actual pump operating hours for maintenance scheduling, warranty documentation, and runtime equalization algorithms.

Rung 0: Accumulate Runtime Hours
|--] [----[TON]----[ADD]---------------( )--|
| Pump1   Timer1   Add                 Runtime|
| Run     PT:3600s Src A: Runtime1_Hrs Hours |
|         .DN      Src B: 1                  |
|                  Dest: Runtime1_Hrs        |
|         [Reset Timer1 on .DN]              |

Rung 1: Store Runtime to Retentive Memory
|--[OSR]--[COP]--------------------------------|
| Every   Copy Runtime to Retentive           |
| 60 sec  Source: Runtime1_Hrs                |
|         Dest: Retentive:0                   |
|         Length: 10 (all pump runtimes)      |

Maintenance Due Indicators:

Rung 0: Calculate Hours Until Maintenance
|----[SUB]-----------------------------( )--|
|     Src A: Maintenance_Interval (2000)Hours|
|     Src B: Runtime1_Hrs               Until|
|     Dest: Hours_Until_PM1             PM   |

Rung 1: Maintenance Due Warning
|--[LES Hours_Until_PM1 100]-----------( )--|
|                                       Maint|
|                                       Warn |

Rung 2: Maintenance Overdue Alarm
|--[LES Hours_Until_PM1 0]-------------( )--|
|                                       Maint|
|                                       Alarm|

HMI Maintenance Screen:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Pump Maintenance Status                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Pump 1:  8,450 hrs   Next PM: 1,550 hrs   β”‚
β”‚ Pump 2:  7,890 hrs   Next PM: 2,110 hrs   β”‚
β”‚ Pump 3:  8,920 hrs   Next PM: 1,080 hrs βš β”‚
β”‚                                            β”‚
β”‚ Last PM Dates:                             β”‚
β”‚ Pump 1: 2025-08-15                         β”‚
β”‚ Pump 2: 2025-09-22                         β”‚
β”‚ Pump 3: 2025-07-10                         β”‚
β”‚                                            β”‚
β”‚ [Reset PM Counter] [View Service History]  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Integration with CMMS:

Export runtime data to computerized maintenance management systems via OPC, database connections, or file transfer for comprehensive asset management.

Chapter 7: Complete Application Example - Building Booster System

System Architecture and Design

Project Scope: Office Building Water Booster

Requirements:

  • 12-story office building, 200 occupants
  • Required pressure: 55 PSI minimum at highest fixtures
  • Peak demand: 150 GPM
  • Average demand: 40 GPM
  • System must provide redundancy (N+1)
  • Energy efficiency priority
  • Remote monitoring capability

Equipment Selection:

Three Centrifugal Pumps:

  • Pump 1: 100 GPM @ 75 PSI, 15 HP with VFD
  • Pump 2: 100 GPM @ 75 PSI, 15 HP with VFD
  • Pump 3: 100 GPM @ 75 PSI, 15 HP fixed speed (standby)

Control System:

  • Allen-Bradley CompactLogix L32E PLC
  • Two PowerFlex 525 VFDs (15HP) with EtherNet/IP
  • PanelView Plus 7 HMI (10-inch touchscreen)
  • Pressure transmitter 0-100 PSI (4-20mA)
  • Flow meter 0-200 GPM (Modbus RTU)
  • Cellular modem for remote access

Complete I/O List and Wiring

Digital Inputs (24VDC):

Input Address | Description                  | Device
──────────────|──────────────────────────────|────────────
Local:1:I.0   | Pump 1 Run Status           | Aux Contact
Local:1:I.1   | Pump 2 Run Status           | Aux Contact
Local:1:I.2   | Pump 3 Run Status           | Aux Contact
Local:1:I.3   | Pump 1 Fault                | OL Contact
Local:1:I.4   | Pump 2 Fault                | OL Contact
Local:1:I.5   | Pump 3 Fault                | OL Contact
Local:1:I.6   | Low Suction Pressure        | Pressure SW
Local:1:I.7   | Tank Low Level              | Float Switch
Local:1:I.8   | Emergency Stop              | E-Stop Button
Local:1:I.9   | Control Power OK            | Relay Contact
Local:1:I.10  | Auto Mode Select            | Selector SW
Local:1:I.11  | Manual Mode Select          | Selector SW

Digital Outputs (24VDC Relay):

Output Address| Description                  | Load Device
──────────────|──────────────────────────────|────────────
Local:2:O.0   | Pump 3 Motor Starter        | Starter Coil
Local:2:O.1   | System Running Indicator    | Green Light
Local:2:O.2   | System Fault Indicator      | Red Light
Local:2:O.3   | Maintenance Due Indicator   | Amber Light
Local:2:O.4   | High Pressure Alarm         | Horn/Light
Local:2:O.5   | Low Pressure Alarm          | Horn/Light
Local:2:O.6   | Communication Fault         | Amber Light

Analog Inputs (4-20mA):

Input Address | Description            | Range      | Device
──────────────|────────────────────────|────────────|─────────
Local:3:I.Ch0 | Discharge Pressure     | 0-100 PSI  | PT-101
Local:3:I.Ch1 | Suction Pressure       | 0-50 PSI   | PT-102
Local:3:I.Ch2 | Tank Level             | 0-10 Feet  | LT-101

Network Communication:

Device        | Protocol    | IP Address     | Node/Slave
──────────────|─────────────|────────────────|───────
VFD Pump 1    | EtherNet/IP | 192.168.1.10   | -
VFD Pump 2    | EtherNet/IP | 192.168.1.11   | -
Flow Meter    | Modbus RTU  | RS-485         | Slave 1
HMI           | EtherNet/IP | 192.168.1.20   | -
Cellular Gateway | Ethernet | 192.168.1.100  | -

Wiring Diagram Notes:

Power Distribution:
- 480VAC 3-Phase to VFD1, VFD2
- 480VAC 3-Phase to Pump 3 Starter
- 120VAC control power transformer
- 24VDC power supply for I/O

Analog Signal Wiring:
- Shielded twisted pair cable
- Shield grounded at PLC end only
- Separate conduit from power cables
- Maximum run: 500 feet

VFD Motor Cables:
- Shielded VFD-rated cable
- 360Β° shield termination at VFD
- Separate from control wiring
- Ferrite cores on motor end

Complete Ladder Logic Program

Main Control Program - Allen-Bradley RSLogix 5000:

PROGRAM: Building_Booster_Control
───────────────────────────────────────────────

ROUTINE: MainRoutine

Rung 0: System Enable Conditions
|--] [--------] [--------]/[-------( )--|
| Auto        Control     E_Stop     System |
| Mode        Power_OK                Enable |

Rung 1: Read Discharge Pressure
|----[SCP]-----------------------------( )--|
|     Input: Local:3:I.Ch0Data         Disch |
|     InputMin: 3277 (4mA)             Press |
|     InputMax: 16384 (20mA)           PSI   |
|     ScaledMin: 0.0                        |
|     ScaledMax: 100.0                      |
|     Output: Discharge_Pressure_PSI        |

Rung 2: Read Suction Pressure
|----[SCP]-----------------------------( )--|
|     Input: Local:3:I.Ch1Data         Suct |
|     InputMin: 3277                   Press |
|     InputMax: 16384                  PSI  |
|     ScaledMin: 0.0                        |
|     ScaledMax: 50.0                       |
|     Output: Suction_Pressure_PSI          |

Rung 3: Read Flow Rate (Modbus)
|----[MSG]-----------------------------( )--|
|     Message Control: MSG_ReadFlow    Flow |
|     Message Type: CIP Generic        Rate |
|     Service Type: Modbus Read        GPM  |
|     Service Code: 03 (Read Holding)       |
|     Address: 40001                        |
|     Length: 2 Words                       |
|     Destination: Flow_Raw                 |
|----[SCP Flow_Raw to Flow_GPM]-------|     |

Rung 4: Calculate Pump Runtime Hours
|----[JSR]--------------------------------|
|     Jump to Subroutine                  |
|     Routine Name: Runtime_Tracking      |

Rung 5: Determine Lead Pump (Lowest Runtime)
|----[JSR]--------------------------------|
|     Jump to Subroutine                  |
|     Routine Name: Lead_Pump_Selection   |

Rung 6: PID Pressure Control - Pump 1 Lead
|--] [--------] [--------[PIDE]-----------|
| System      Lead_Pump                   |
| Enable      = 1                         |
|             ProcessVariable: Discharge_Pressure_PSI |
|             SetPoint: 55.0              |
|             ControlVariable: VFD1_Speed |
|             PGain: 2.8                  |
|             IGain: 0.45                 |
|             DGain: 0.0                  |
|             CVMin: 25.0                 |
|             CVMax: 100.0                |

Rung 7: PID Pressure Control - Pump 2 Lead
|--] [--------] [--------[PIDE]-----------|
| System      Lead_Pump                   |
| Enable      = 2                         |
|             ProcessVariable: Discharge_Pressure_PSI |
|             SetPoint: 55.0              |
|             ControlVariable: VFD2_Speed |
|             [Same PID parameters]       |

Rung 8: Send Speed Command to VFD1
|--] [-------------------------------------|
| System                                  |
| Enable                                  |
|----[MSG Write VFD1_Speed]---------------|
|     Destination: VFD_1:O.SpeedReference|

Rung 9: Send Speed Command to VFD2
|--] [-------------------------------------|
| System                                  |
| Enable                                  |
|----[MSG Write VFD2_Speed]---------------|
|     Destination: VFD_2:O.SpeedReference|

Rung 10: Start Lead Pump 1
|--] [--------] [--------] [----------( )--|
| System      Lead_Pump   Discharge    VFD1|
| Enable      = 1         > 45 PSI     Run |

Rung 11: Start Lead Pump 2
|--] [--------] [--------] [----------( )--|
| System      Lead_Pump   Discharge    VFD2|
| Enable      = 2         > 45 PSI     Run |

Rung 12: Stage Second Pump - Method 1 (Pressure)
|--] [-----[LES Discharge_Pressure 50.0]---|
| System    Pressure below setpoint        |
| Enable                                   |
|----[TON]-----------------------------( )--|
|     Timer: Stage2_Delay              Stage2|
|     Preset: 30.0 seconds             Enable|
|     .DN                                   |

Rung 13: Stage Second Pump - Method 2 (VFD Output)
|--] [-----[GRT Lead_VFD_Output 90.0]--( )--|
| System    Lead pump at capacity      Stage2|
| Enable                               Enable|

Rung 14: Start Lag Pump (Opposite of Lead)
|--] [--------] [--------] [----------( )--|
| System      Stage2      Lead_Pump    Start|
| Enable      Enable      = 1          VFD2 |
|                                      Run  |
|--] [--------] [--------] [----------( )--|
| System      Stage2      Lead_Pump    Start|
| Enable      Enable      = 2          VFD1 |
|                                      Run  |

Rung 15: Stage Third Pump (Fixed Speed Standby)
|--] [-----[LES Discharge_Pressure 48.0]---|
| System    Critical low pressure          |
| Enable                                   |
|----[TON]-----------------------------( )--|
|     Timer: Stage3_Delay              Start|
|     Preset: 15.0 seconds             Pump3|
|     .DN                                   |

Rung 16: Unstage Lag Pumps - High Pressure
|--[GRT Discharge_Pressure 60.0]-------( )--|
|   Pressure above setpoint             Stop |
|----[TON Timer: Unstage_Delay]----    Lag  |
|     Preset: 120 seconds                   |

Rung 17: Unstage Lag Pumps - Low VFD Output
|--[LES Lead_VFD_Output 40.0]----------( )--|
|   Lead pump low output                Stop |
|----[TON Timer: Unstage_Delay2]----   Lag  |
|     Preset: 180 seconds                   |

Rung 18: Safety Interlock - Low Suction Pressure
|--]/[-----------------------------( U )--|
| Local:1:I.6                       VFD1  |
| Low Suction                       Run   |
|                                          |
|----[U VFD2_Run]--[U Pump3_Run]----------|

Rung 19: Safety Interlock - Tank Low Level
|--]/[-----------------------------( U )--|
| Local:1:I.7                       VFD1  |
| Tank Low                          Run   |
|                                          |
|----[U VFD2_Run]--[U Pump3_Run]----------|

Rung 20: Fault Detection - Pump 1
|--] [--------]/[-------TON--------( S )--|
| VFD1_Run    Pump1_Status T_Fault1  Fault1|
|             Feedback     5.0s            |

Rung 21: Fault Detection - Pump 2
|--] [--------]/[-------TON--------( S )--|
| VFD2_Run    Pump2_Status T_Fault2  Fault2|
|             Feedback     5.0s            |

Rung 22: Fault Detection - Pump 3
|--] [--------]/[-------TON--------( S )--|
| Pump3_Run   Pump3_Status T_Fault3  Fault3|
|             Feedback     5.0s            |

Rung 23: Emergency Lag Start on Lead Fault
|--] [--------] [--------] [-------( )--|
| System      Fault1      Lead_Pump   Force|
| Enable                  = 1         VFD2 |
|                                     Run  |

Rung 24: Emergency Standby on Multiple Faults
|--] [--------] [--------] [-------( )--|
| Fault1      Fault2      System      Force|
| OR          OR          Enable      Pump3|
| Fault2      Fault3                  Run  |

Rung 25: Alarms - High Pressure
|--[GRT Discharge_Pressure 75.0]---( )--|
|                                   High |
|                                   Press|
|                                   Alarm|

Rung 26: Alarms - Low Pressure
|--] [-----[LES Discharge_Pressure 45.0]--|
| System    Low pressure                 |
| Enable                                 |
|----[TON]-------------------------( )--|
|     Timer: Low_Press_Delay       Low  |
|     Preset: 60.0 seconds         Press|
|     .DN                          Alarm|

Rung 27: Calculate Energy Consumption
|----[JSR]--------------------------------|
|     Jump to Subroutine                  |
|     Routine Name: Energy_Calc           |

Rung 28: Update HMI Tags
|----[JSR]--------------------------------|
|     Jump to Subroutine                  |
|     Routine Name: HMI_Update            |

Rung 29: Modbus Communication to SCADA
|----[JSR]--------------------------------|
|     Jump to Subroutine                  |
|     Routine Name: SCADA_Comms           |

───────────────────────────────────────────────

SUBROUTINE: Runtime_Tracking

Rung 0: Pump 1 Runtime Accumulation
|--] [--------[TON]----[ADD]-----------( )--|
| VFD1_Run    T_Run1   Add             Runtime|
|             3600s    Src A: RT1_Hours Hours|
|             .DN      Src B: 1        Pump1 |
|                      Dest: RT1_Hours       |

Rung 1: Pump 2 Runtime Accumulation
|--] [--------[TON]----[ADD]-----------( )--|
| VFD2_Run    T_Run2   [Same logic]    Runtime|
|                                      Pump2 |

Rung 2: Pump 3 Runtime Accumulation
|--] [--------[TON]----[ADD]-----------( )--|
| Pump3_Run   T_Run3   [Same logic]    Runtime|
|                                      Pump3 |

Rung 3: Store to Retentive Memory
|--[OSR Every 300s]--[COP]------------------|
|     Copy runtime data to retentive        |
|     Source: Runtime_Array                 |
|     Dest: Retentive:Runtime              |
|     Length: 10                            |

───────────────────────────────────────────────

SUBROUTINE: Lead_Pump_Selection

Rung 0: Compare Runtimes
|--[LES RT1_Hours RT2_Hours]-------( )--|
|   Pump 1 < Pump 2                 Lead |
|                                   = 1  |
|                                        |
|--[GRT RT1_Hours RT2_Hours]-------( )--|
|   Pump 1 > Pump 2                 Lead |
|                                   = 2  |

───────────────────────────────────────────────

SUBROUTINE: Energy_Calc

Rung 0: Calculate Instantaneous Power - Pump 1
|--] [----[CPT]------------------------( )--|
| VFD1    Dest: Power1_kW              Calc|
| Run     Expression:                      |
|         15 * 0.746 * (VFD1_Speed/100)^3  |

Rung 1: Calculate Instantaneous Power - Pump 2
|--] [----[CPT]------------------------( )--|
| VFD2    [Same calculation]           Power|
| Run                                  Pump2|

Rung 2: Calculate Fixed Speed Power - Pump 3
|--] [----[MOV 11.19]------------------( )--|
| Pump3   15HP * 0.746 = 11.19kW       Power|
| Run     Dest: Power3_kW              Pump3|

Rung 3: Accumulate Energy Consumption Daily
|----[ADD]-----------------------------( )--|
|     Src A: Energy_Total_kWh          Total|
|     Src B: (Power1+Power2+Power3)/3600   |
|     Dest: Energy_Total_kWh           Energy|

───────────────────────────────────────────────

HMI Screen Designs

Main Operating Screen:

╔════════════════════════════════════════════════════╗
β•‘  BUILDING WATER BOOSTER SYSTEM    [Status: AUTO]   β•‘
╠════════════════════════════════════════════════════╣
β•‘                                                    β•‘
β•‘  Discharge Pressure: 55.8 PSI  [Setpoint: 55.0]   β•‘
β•‘  System Flow Rate:   68.5 GPM                      β•‘
β•‘  Suction Pressure:   22.3 PSI                      β•‘
β•‘                                                    β•‘
β•‘  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β•‘
β•‘  β”‚  PUMP 1  β”‚  β”‚  PUMP 2  β”‚  β”‚  PUMP 3  β”‚        β•‘
β•‘  β”‚  ●LEAD   β”‚  β”‚  β—‹STBY   β”‚  β”‚  β—‹STBY   β”‚        β•‘
β•‘  β”‚  72% SPD β”‚  β”‚   OFF    β”‚  β”‚   OFF    β”‚        β•‘
β•‘  β”‚ 8,245hrs β”‚  β”‚ 7,890hrs β”‚  β”‚ 8,920hrs β”‚        β•‘
β•‘  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β•‘
β•‘                                                    β•‘
β•‘  Active Alarms: NONE                               β•‘
β•‘  Last Rotation: 2025-12-08 14:35                   β•‘
β•‘  Energy Today:  156.8 kWh                          β•‘
β•‘                                                    β•‘
β•‘ [Trends] [Alarms] [Setpoints] [Maintenance]       β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Trend Screen:

╔════════════════════════════════════════════════════╗
β•‘  PRESSURE & FLOW TRENDS          [Last 24 Hours]   β•‘
╠════════════════════════════════════════════════════╣
β•‘                                                    β•‘
β•‘  Discharge Pressure (PSI)                          β•‘
β•‘  80β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€      β•‘
β•‘    β”‚         β•±β€Ύβ€Ύβ•²                  β•±β€Ύβ•²            β•‘
β•‘  60β”œβ”€β”€β”€β”€β”€β”€β”€β”€/────\────────────────/───\────      β•‘
β•‘    β”‚  β•±β€Ύβ€Ύβ•² /      β•²    β•±β€Ύβ€Ύβ•²     /     β•²          β•‘
β•‘  40β”œβ”€/────╲/──────╲──/────╲───/───────╲─        β•‘
β•‘    β”‚                β•²/      β•² /         β•²        β•‘
β•‘  20β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β•²/───────────╲──    β•‘
β•‘    └──────────────────────────────────────        β•‘
β•‘     0AM    6AM    12PM    6PM   12AM               β•‘
β•‘                                                    β•‘
β•‘  Flow Rate (GPM)                                   β•‘
β•‘  150β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€      β•‘
β•‘     β”‚      β•±β•²         β•±β•²       β•±β•²                 β•‘
β•‘  100β”œβ”€β”€β”€β”€β”€/──\───────/──\─────/──\───────        β•‘
β•‘     β”‚    /    \     /    \   /    \               β•‘
β•‘   50β”œβ”€β”€β”€/──────\───/──────\_/──────\─────        β•‘
β•‘     β”‚  /        \_/                 \             β•‘
β•‘    0β”œβ”€/──────────────────────────────\───        β•‘
β•‘     └──────────────────────────────────────       β•‘
β•‘     0AM    6AM    12PM    6PM   12AM              β•‘
β•‘                                                    β•‘
β•‘  [Export Data] [Print Report] [Back]              β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Alarm History Screen:

╔════════════════════════════════════════════════════╗
β•‘  ALARM HISTORY                    [Active: 0]      β•‘
╠════════════════════════════════════════════════════╣
β•‘                                                    β•‘
β•‘  Date/Time          | Alarm                  | Ackβ•‘
β•‘  ─────────────────────────────────────────────────║
β•‘  2025-12-10 08:45   | LOW PRESSURE          | √  β•‘
β•‘  2025-12-10 08:47   | LOW PRESSURE CLEAR    | √  β•‘
β•‘  2025-12-09 15:22   | PUMP 1 FAULT          | √  β•‘
β•‘  2025-12-09 15:25   | PUMP 1 FAULT CLEAR    | √  β•‘
β•‘  2025-12-08 11:10   | HIGH PRESSURE         | √  β•‘
β•‘  2025-12-08 11:11   | HIGH PRESSURE CLEAR   | √  β•‘
β•‘  2025-12-07 09:33   | MAINTENANCE DUE P3    | √  β•‘
β•‘  2025-12-06 14:55   | LOW SUCTION PRESS     | √  β•‘
β•‘  2025-12-06 14:56   | LOW SUCTION CLEAR     | √  β•‘
β•‘  2025-12-05 16:20   | COMM FAULT FLOW MTR   | √  β•‘
β•‘                                                    β•‘
β•‘  Total Alarms This Week: 12                        β•‘
β•‘  Most Frequent: LOW PRESSURE (4 occurrences)       β•‘
β•‘                                                    β•‘
β•‘  [Acknowledge All] [Export] [Print] [Back]         β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

This complete application example provides production-ready code for a professional building booster system implementation.

Chapter 8: Best Practices for Pump Control

Comprehensive Pump Protection Strategies

Dry Run Protection:

Dry running destroys pump seals, bearings, and impellers within seconds. Implement multiple layers of protection.

Primary Protection - Level Switches: Install float switches in source tank or sump at minimum safe level. Wire as permissive contact preventing pump start when level insufficient.

Secondary Protection - Pressure Monitoring: Monitor suction pressure continuously. If pressure drops below minimum threshold (typically 5-10 PSI for water), shut down pumps immediately.

Tertiary Protection - Current Monitoring: Dry running pumps draw less current than normal loaded operation. Monitor motor current and shutdown if current drops below 70% of normal operating current.

Programming Implementation:

Rung 0: Dry Run Protection - Multi-Layer
|--] [--------] [--------[GRT]-------( )--|
| Level_OK    Suction    Motor_Amps   Pump |
|             Pressure   > 70% Normal  Enable|
|             > 5 PSI                       |

Rung 1: Dry Run Fault Detection
|--] [--------]/[-------------------( S )--|
| Pump_Run    Level_OK              Dry_Run|
| Command                           Fault  |
|            [OR Suction_Press < 5]        |
|            [OR Motor_Amps < 70%]         |

Rung 2: Shutdown on Dry Run Detection
|--] [-------------------------( U )--|
| Dry_Run                      Pump  |
| Fault                        Run   |
|                              Cmd   |

Overload and Over-Current Protection:

Electronic Overload Relays: Configure thermal overload relays to motor full load amperage per nameplate. Set trip class appropriate for application (Class 10 typical for pumps).

VFD Electronic Overload: VFDs include integrated electronic overload protection. Configure overload threshold to 105-110% of motor FLA with appropriate time delay.

Programming Integration:

Rung 0: Monitor Overload Status
|--]/[-------------------------( S )--|
| Overload_NC                  Motor |
| Contact                      Fault |

Rung 1: VFD Overload Detection
|--] [-------------------------( S )--|
| VFD_Fault                    Motor |
| Word.Bit5                    Fault |
| (Overload)                         |

Cavitation Prevention:

Cavitation occurs when suction pressure drops below vapor pressure, forming bubbles that collapse violently when entering higher pressure regions. This destroys impellers and generates noise/vibration.

Prevention Methods:

Maintain Adequate NPSH (Net Positive Suction Head): Ensure available NPSH exceeds required NPSH by safety margin (typically 1.5x minimum).

Monitor Suction Pressure: Install pressure transmitter on suction side. Alarm if pressure approaches cavitation threshold.

Vibration Monitoring: Accelerometers detect characteristic high-frequency vibration signature of cavitation.

Acoustic Monitoring: Listen for distinctive "gravel pump" sound indicating cavitation occurrence.

Minimum Run Time and Anti-Cycling Logic

Why Enforce Minimum Run Time:

Frequent starts damage motor windings through thermal cycling, wear starter contacts, create mechanical stress on pump components, and increase energy consumption (high inrush current on each start).

Industry Guidelines:

  • Minimum 3 minutes run time for small pumps (<5 HP)
  • Minimum 5-10 minutes for medium pumps (5-50 HP)
  • Minimum 10-15 minutes for large pumps (>50 HP)
  • Maximum 6 starts per hour typical

Implementation:

Rung 0: Minimum Run Timer
|--] [--------[TON]------------------------|
| Pump_Run    MinRun_Timer                |
|             Preset: 300s (5 minutes)    |

Rung 1: Allow Stop Only After Minimum Run
|--] /[-------] [--------]/[-------( )--|
| Stop_Req    MinRun     Auto_Mode   Pump|
|             .DN                     Stop|
|             (Timer                      |
|             Complete)                   |

Rung 2: Track Start Count Per Hour
|--] [---[OSR]---[ADD]----------------( )--|
| Pump_Run       Src A: Start_Count   Track|
|                Src B: 1             Starts|
|                Dest: Start_Count         |

Rung 3: Reset Start Counter Hourly
|--[TON 3600s]--[RES Start_Count]--------|
|   Hour timer   Reset counter           |

Rung 4: Excessive Cycling Alarm
|--[GRT Start_Count 6]---------------( )--|
|   More than 6 starts/hour          Cycle|
|                                    Alarm|

Anti-Cycling Delays:

Prevent rapid restart attempts during fault conditions or pressure fluctuations near setpoint.

Rung 0: Restart Delay After Stop
|--]/[-------[TON]------------------------|
| Pump_Run    Restart_Delay              |
|             Preset: 60s                |

Rung 1: Enable Start Only After Delay
|--] [--------] [------------------( )--|
| Start_Req   Restart_    Pump      Pump|
|             Delay.DN    Stopped   Start|

Emergency Manual Override Implementation

Hand-Off-Auto (HOA) Switch Integration:

Provide operators manual control capability for maintenance, testing, and emergency situations.

Operating Modes:

HAND (Manual On): Pump runs continuously, bypassing all automatic control logic. Maintains safety interlocks (overload, E-stop).

OFF: Pump cannot run regardless of automatic demand or manual commands.

AUTO (Automatic): PLC controls pump operation based on programmed control strategy.

Programming:

Rung 0: Manual Mode (HAND Position)
|--] [-------------------------( )--|
| HOA_Hand                     Pump |
|                              Run  |

Rung 1: Automatic Mode with Safety
|--] [--------] [--------]/[--( )--|
| HOA_Auto    Auto_Run    Fault Pump|
|             Command           Run |

Rung 2: Off Mode Blocks All Control
|--] [-------------------------( U )--|
| HOA_Off                      Pump |
|                              Run  |

Rung 3: Safety Interlocks Apply to All Modes
|--]/[------------------------( U )--|
| E_Stop                       Pump |
|                              Run  |
|--]/[------------------------( U )--|
| Overload                     Pump |
|                              Run  |

Emergency Stop Integration:

Emergency stop circuits must remove power from pump motors independently of PLC control, meeting safety requirements.

Wiring Architecture:

E-Stop β†’ Safety Relay β†’ Contactor Coil Power
            ↓
         PLC Input (monitoring only)

PLC monitors E-stop status but does NOT control safety circuit directly.

Data Logging for Predictive Maintenance

Critical Parameters to Log:

Operating Parameters:

  • Runtime hours (actual operating time)
  • Start count (number of starts)
  • Speed/output percentage (for VFDs)
  • Power consumption (kW)

Process Variables:

  • Discharge pressure (min/max/avg)
  • Suction pressure (min/max/avg)
  • Flow rate (min/max/avg)
  • Differential pressure

Equipment Health:

  • Motor current (all three phases)
  • Vibration levels
  • Bearing temperature
  • Motor winding temperature

Performance Metrics:

  • Efficiency calculations
  • Specific energy (kWh/gallon)
  • Pressure deviation from setpoint
  • Cycling frequency

Data Storage Implementation:

Rung 0: Log Data Every 15 Minutes
|--[TON 900s]--[JSR]-------------------|
|   15 min      Log_Data_Routine       |
|   Timer.DN                            |

Rung 1: Store to Data Array
|----[COP]------------------------------|
|     Source: Current_Data_Array        |
|     Dest: Historical_Data[Index]      |
|     Length: 20 words                  |
|     [Increment Index]                 |

Rung 2: Transfer to HMI/SCADA
|----[MSG]------------------------------|
|     Message Type: Write               |
|     Target: SCADA_Server             |
|     Data: Historical_Data             |

Trend Analysis for Maintenance:

Monitor parameters over time to identify degrading performance before failure:

Increasing Vibration: Bearing wear, misalignment, imbalance Decreasing Efficiency: Impeller wear, internal recirculation Increasing Current: Mechanical binding, bearing failure Pressure Instability: Check valve failure, cavitation

Energy Efficiency Optimization

Affinity Laws Application:

Leverage cubic relationship between speed and power for substantial energy savings.

Calculate Optimal Operating Point:

Rung 0: Calculate Specific Energy
|----[DIV]-----------------------------( )--|
|     Src A: Power_kW                   Spec|
|     Src B: Flow_GPM                   Energy|
|     Dest: kWh_per_1000_Gallons        Calc|
|     [Multiply by 1000]                    |

Rung 1: Efficiency Monitoring
|--[LES Specific_Energy Target]----( )--|
|   Below efficiency target         Good |
|                                   Eff  |
|                                        |
|--[GRT Specific_Energy Target]----( )--|
|   Above efficiency target         Poor |
|                                   Eff  |

Variable Speed Benefits:

Running single VFD pump at 70% speed uses less energy than running two fixed-speed pumps at 50% capacity each.

Energy Optimization Strategies:

Setpoint Optimization: Reduce setpoint to minimum acceptable value. Each 1 PSI reduction saves approximately 1-2% energy.

Staging Optimization: Delay lag pump starts until lead pump reaches 90-95% capacity to maximize VFD operating range.

Night Setback: Reduce pressure setpoint during low-demand periods (nights, weekends) when building partially occupied.

Schedule-Based Control: Implement time-of-day scheduling to reduce capacity during predictable low-demand periods.

Implementation:

Rung 0: Time-of-Day Setpoint Adjustment
|--[GEQ Hour 22]--[LEQ Hour 6]-----( )--|
|   Between 10PM and 6AM            Night|
|                                   Mode |

Rung 1: Reduce Setpoint at Night
|--] [----[MOV 50.0]---------------( )--|
| Night    Reduced setpoint         Press|
| Mode     50 PSI vs 55 PSI day     SP   |

Rung 2: Normal Setpoint During Day
|--]/[---[MOV 55.0]----------------( )--|
| Night   Normal setpoint           Press|
| Mode    55 PSI                    SP   |

Energy Monitoring Dashboard:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ENERGY EFFICIENCY DASHBOARD                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Today's Energy Use:    156.8 kWh           β”‚
β”‚ Yesterday:             168.2 kWh (-6.8%)   β”‚
β”‚ This Month:            4,245 kWh           β”‚
β”‚ Last Month:            4,580 kWh (-7.3%)   β”‚
β”‚                                            β”‚
β”‚ Specific Energy:       0.42 kWh/1000 gal   β”‚
β”‚ Target:                0.45 kWh/1000 gal   β”‚
β”‚ Status: βœ“ EFFICIENT                        β”‚
β”‚                                            β”‚
β”‚ Cost Savings vs Fixed Speed: $127/month    β”‚
β”‚ COβ‚‚ Reduction: 285 kg/month                β”‚
β”‚                                            β”‚
β”‚ [View Trends] [Optimization Report]        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Frequently Asked Questions

How do I program lead-lag pump control?

Lead-lag pump control requires runtime tracking, lead pump selection logic, and lag pump staging based on demand. Start by accumulating runtime hours for each pump using timer instructions. Compare runtime values to select the pump with fewest hours as lead pump. Implement PID or on/off control for lead pump based on process variable (pressure, level, flow). Stage lag pump when process variable deviates beyond threshold or lead pump reaches maximum capacity. Include time delays (30-60 seconds) before staging to prevent nuisance starts. Unstage lag pumps when demand decreases with longer delays (60-120 seconds) to prevent cycling. Rotate lead pump designation when runtime difference becomes minimal or on scheduled basis. See Chapter 4 for complete lead-lag programming examples with ladder logic.

What is the best way to control a VFD with a PLC?

The optimal VFD control method depends on application requirements and system architecture. For simple applications requiring only speed control, use 4-20mA or 0-10VDC analog output from PLC to VFD speed reference input, providing fast response (<50ms) with simple wiring and programming. For applications requiring comprehensive monitoring, fault diagnostics, and parameter access, implement digital communication using Modbus RTU (serial) or EtherNet/IP (for Allen-Bradley) or PROFINET (for Siemens). Modbus RTU works well for multiple VFDs on single RS-485 network up to 4,000 feet. EtherNet/IP and PROFINET provide faster update rates (2-100ms), extensive diagnostics, and integrated device profiles simplifying programming. Configure PID control loop in PLC using pressure, flow, or level feedback, sending calculated speed reference to VFD. Always include minimum speed limit (20-30%) and maximum speed limit (90-100%) to protect pump and motor. Chapter 5 provides complete VFD integration examples with analog and digital communication.

How do I prevent pump short cycling?

Prevent short cycling by implementing minimum run time enforcement, anti-cycling delays, and proper setpoint deadbands. Program minimum run timer (typically 3-10 minutes depending on pump size) that must complete before allowing pump stop command. Add restart delay timer (30-300 seconds) preventing immediate restart after pump stops, allowing system pressure to stabilize. Use adequate deadband between start and stop setpoints - for pressure control, typical deadband is 5-10 PSI between pump start pressure and pump stop pressure. Implement time delays before staging or unstaging pumps based on sustained demand changes rather than momentary spikes (30-60 seconds for staging, 60-120 seconds for unstaging). For level control applications, ensure sufficient distance between high level (start) and low level (stop) float switches accounting for flow rates and tank volume. Monitor start count per hour and generate alarm if exceeding maximum starts (typically 6 starts/hour). See Chapter 8 for complete anti-cycling programming examples.

What sensors are needed for pump control?

Sensor requirements depend on control strategy and application complexity. For basic on/off level control, install discrete float switches at high level (pump start) and low level (pump stop) positions, plus low-low level switch for dry run protection. For pressure control applications, use 4-20mA pressure transmitter with range 1.5-2x maximum expected pressure, installed on discharge line with proper isolation valve and snubber for pulsation dampening. Flow measurement applications require magnetic flow meter, ultrasonic flow meter, or differential pressure-based flow meter providing 4-20mA output scaled to expected flow range. Variable speed applications benefit from analog transmitters rather than discrete switches, enabling continuous PID control and better efficiency. Install pressure transmitter on suction side for cavitation detection and dry run protection. For critical pumps, add vibration sensors and temperature sensors (bearing and motor winding) for predictive maintenance monitoring. All analog sensors should provide 4-20mA output for superior noise immunity compared to 0-10VDC signals. Chapter 2 provides detailed sensor selection criteria and wiring requirements.

How do I implement runtime equalization?

Runtime equalization distributes operating hours evenly across multiple pumps, maximizing equipment life and preventing single pump from accumulating disproportionate wear. Accumulate runtime hours for each pump using TON timer instruction with preset of 3600 seconds (1 hour) that increments integer counter when timer completes. Store runtime values in retentive memory or battery-backed registers to preserve values during power loss. Compare runtime values using comparison instructions to identify pump with lowest runtime hours. Designate lowest-runtime pump as lead pump for next operating cycle. Alternative approach rotates lead pump on fixed schedule (daily, weekly) regardless of runtime, simpler but less precise. For systems with different pump capacities or VFD vs fixed-speed pumps, weight runtime values proportionally (VFD pump counts 1.5x runtime vs fixed-speed) to account for different wear rates. Display accumulated runtime on HMI for operator visibility and maintenance scheduling. Reset runtime counters after major maintenance to restart equalization calculation. Chapter 4 provides complete runtime tracking and equalization programming with ladder logic examples for dual and triple pump systems.

What is the difference between pressure and flow control?

Pressure control maintains constant pressure setpoint regardless of flow demand by modulating pump speed or staging multiple pumps, ideal for distribution systems where pressure must remain adequate throughout system at varying demand points. Pressure control uses single pressure transmitter on discharge line, PID loop adjusting speed to maintain setpoint (typically 50-70 PSI for building water systems), and responds quickly to demand changes. Flow control maintains constant volumetric flow rate regardless of pressure variations by adjusting pump speed based on flow meter feedback, essential for applications requiring precise material delivery (chemical injection, batching processes, filtration). Flow control requires flow meter measurement, PID loop maintaining flow setpoint, and typically includes pressure limits preventing excessive discharge pressure. Many applications use pressure control because pressure transmitters cost less than flow meters, pressure correlates with demand in distribution systems, and pressure control prevents excessive pressure reducing pipe stress. However, flow control delivers better accuracy for processes requiring precise volumes (custody transfer, chemical dosing, wastewater pacing) and prevents flow recirculation that wastes energy. Some sophisticated systems implement cascade control with flow as primary variable and pressure as secondary constraint.

How do I protect pumps from dry running?

Dry run protection prevents catastrophic damage from pumps operating without adequate liquid supply. Implement multiple protection layers for reliability. Primary protection uses float switches or level transmitters in source tank/sump preventing pump start when level insufficient (install switch at minimum safe level accounting for drawdown during operation). Secondary protection monitors suction pressure continuously, shutting down pumps immediately if pressure drops below minimum threshold (typically 5-10 PSI for water applications). Tertiary protection monitors motor current - dry running pumps draw less current than normal loaded operation, generate alarm and shutdown if current drops below 70% of normal operating value. For critical applications, add flow monitoring to confirm flow establishment within reasonable time after pump start (typically 5-10 seconds). Programming implementation combines all permissive conditions using AND logic - pump enable requires level OK AND suction pressure adequate AND motor current normal. Include time delay (3-5 seconds) for suction pressure monitoring to prevent nuisance trips during initial pump start transient. Generate distinct "dry run fault" alarm requiring manual reset after condition correction. Chapter 3 provides complete dry run protection programming examples, and Chapter 8 covers comprehensive pump protection strategies including wiring diagrams and sensor placement.

Can I control multiple VFDs with one PLC?

Yes, PLCs easily control multiple VFDs using analog outputs or digital communication networks. For analog control approach, each VFD requires dedicated 4-20mA or 0-10VDC analog output channel from PLC for speed reference, plus discrete outputs for run/stop commands and discrete inputs for status feedback. This method works well for small systems (2-4 VFDs) but becomes costly and wiring-intensive for larger installations. More efficient approach uses industrial communication networks - Modbus RTU connects up to 247 VFDs on single RS-485 network using two-wire twisted pair cable, providing speed control, start/stop, parameter access, and comprehensive status monitoring through serial communication. EtherNet/IP (Allen-Bradley), PROFINET (Siemens), or other industrial Ethernet protocols connect unlimited VFDs on Ethernet network with faster update rates and more extensive diagnostics than serial. Digital communication reduces wiring cost, installation time, and panel space while providing better monitoring capabilities. Select communication method based on performance requirements (Ethernet for fast loops <100ms, Modbus RTU adequate for slower control), distance requirements (Modbus RTU to 4,000 feet, Ethernet requires switches every 100 meters), and existing infrastructure. Chapter 5 provides complete examples for both analog and digital communication methods including wiring diagrams, scaling calculations, and ladder logic programs.

How do I program PID control for pumps?

PID control maintains constant process variable (pressure, flow, level) by continuously adjusting pump speed based on error between setpoint and measured value. Configure PID instruction parameters: Process Variable (PV) receives scaled transmitter value (0-100 PSI for pressure), Setpoint (SP) defines target value (55 PSI typical), Control Variable (CV) outputs speed command to VFD (0-100%). Set PID gains starting with conservative values: Proportional gain (Kp) around 2.0, Integral gain (Ki) around 0.3, Derivative gain (Kd) at 0.0 (disable derivative for pump applications due to noise sensitivity). Configure output limits: Minimum typically 20-30% to prevent pump stall, Maximum typically 90-100% to protect equipment. Enable PID instruction continuously in automatic mode - it calculates new output every scan based on current error. Scale PID output (0-100%) to VFD speed reference signal (4-20mA or 0-10VDC) using SCL or CPT instruction. Tune PID gains by gradually increasing Kp until system responds quickly with slight oscillation, then reduce Kp by 25%, next increase Ki slowly until steady-state error eliminates without excessive overshoot, fine-tune for optimal settling time. Add deadband (1-2 PSI) to prevent hunting around setpoint. Chapter 5 provides complete PID implementation examples with Allen-Bradley and Siemens platforms including tuning procedures and troubleshooting guidance.

What communication protocol should I use for VFDs?

Communication protocol selection depends on manufacturer ecosystem, performance requirements, installation distance, and existing infrastructure. For Allen-Bradley systems, EtherNet/IP provides best integration with CompactLogix/ControlLogix PLCs and PowerFlex VFDs, offering pre-built Add-On Instructions, fast update rates (2-100ms), extensive diagnostics, and simplified programming through Studio 5000. For Siemens systems, PROFINET delivers equivalent benefits with TIA Portal integration, real-time deterministic communication, and comprehensive device profiles. For multi-vendor installations or retrofit applications, Modbus RTU (RS-485 serial) provides universal compatibility - virtually all VFD manufacturers support Modbus RTU, making it ideal for systems mixing different brands. Modbus RTU handles 247 devices on single network, reaches 4,000 feet without repeaters, uses simple two-wire twisted pair cable, and requires minimal programming complexity. Modbus TCP/IP (Ethernet Modbus) suits applications with existing Ethernet infrastructure, supporting unlimited devices and providing better performance than serial Modbus. Analog control (4-20mA, 0-10VDC) remains viable for simple applications requiring only speed control without advanced diagnostics - fastest response time, simplest implementation, proven reliability, but lacks comprehensive monitoring. Consider total cost of ownership including hardware, installation labor, and lifecycle maintenance when selecting protocol. Chapter 5 provides detailed comparison tables and implementation examples for all major protocols.

What are common causes of pump control problems?

Most pump control issues stem from sensor problems, programming errors, mechanical failures, or electrical faults. Sensor-related problems include failed pressure transmitters (check 4-20mA signal with multimeter, verify power supply, inspect for moisture), incorrect transmitter calibration (verify zero and span match actual pressure), and noisy analog signals (check shielded cable grounding, separate from power cables, verify shield grounded at one end only). Programming issues include improper PID tuning causing oscillation or sluggish response (retune gains methodically), missing safety interlocks allowing dangerous conditions (verify comprehensive fault logic), and incorrect setpoints or scaling (check engineering unit conversions). Mechanical problems include cavitation from inadequate suction pressure (verify NPSH available exceeds required, check suction piping for restrictions), worn impellers reducing performance (monitor efficiency trends, inspect during maintenance), and check valve failures causing backflow (listen for water hammer, measure pressure decay after pump stops). Electrical faults include VFD nuisance trips from electrical noise (improve grounding, add line reactors, separate motor cable from signal wiring), motor overload from mechanical binding or single-phasing (measure all three phase currents, check for balance), and communication errors disrupting control (verify termination resistors, check cable shielding, monitor message timeouts). Establish baseline performance parameters during commissioning for troubleshooting comparison. Chapter 2 covers proper sensor installation and wiring, Chapter 5 addresses PID tuning and VFD integration, and Chapter 8 provides comprehensive troubleshooting procedures for common pump control issues.

Conclusion

Pump control PLC programming encompasses fundamental automation concepts applicable across industrial, commercial, and municipal applications. Mastering these techniques - from basic on/off control through advanced multi-pump sequencing with VFD integration - equips automation professionals to design, implement, and troubleshoot reliable, efficient pumping systems that optimize energy consumption while ensuring continuous operation.

The programming examples and best practices presented throughout this guide provide proven, field-tested approaches developed through decades of collective industry experience. Whether implementing simple sump pump control or sophisticated building booster systems with redundant capacity and energy optimization, the fundamental principles remain consistent: protect equipment through comprehensive safety interlocks, implement proper sequencing to distribute wear evenly, leverage variable speed control for efficiency, and include adequate monitoring for predictive maintenance.

Remember that successful pump control extends beyond programming alone. Proper sensor selection and installation, correct VFD configuration and wiring, appropriate setpoint selection, and regular maintenance all contribute to system performance and longevity. Take time during design to understand application requirements, select appropriate hardware, and implement comprehensive protection strategies that prevent equipment damage while maintaining operational reliability.

For automation professionals seeking to expand their expertise, explore related topics including PLC programming best practices, Modbus communication protocols, SCADA system integration, and process automation fundamentals. Continue developing your skills through hands-on practice, industry training programs, and engagement with the automation community to stay current with evolving technologies and techniques.

The investment in understanding pump control PLC programming pays substantial dividends through reduced energy costs, extended equipment life, improved system reliability, and enhanced operational flexibility. Apply these techniques with confidence, knowing they represent industry-standard approaches refined through millions of operating hours across diverse applications worldwide.

πŸ’‘ Pro Tip: Download Our Complete PLC Programming Resource

This comprehensive 12Β 091-word guide provides deep technical knowledge, but our complete 500+ page guide (coming December 2025) includes additional practical exercises, code templates, and industry-specific applications.Preorder the complete guide here (60% off) β†’

🚧 COMING DECEMBER 2025 - PREORDER NOW

πŸš€ Ready to Become a PLC Programming Expert?

You've just read 12Β 091 words of expert PLC programming content. Preorder our complete 500+ page guide with even more detailed examples, templates, and industry applications.

500+ Pages
Expert Content
50+ Examples
Real Applications
60% Off
Preorder Price
Preorder Complete Guide - $47

βœ“ December 2025 release βœ“ Full refund guarantee

#pumpcontrol#vfd#lead-lagcontrol#motorcontrol#processautomation#pidcontrol
Share this article:

Frequently Asked Questions

How long does it take to learn PLC programming?

With dedicated study and practice, most people can learn basic PLC programming in 3-6 months. However, becoming proficient in advanced techniques and industry-specific applications typically takes 1-2 years of hands-on experience.

What's the average salary for PLC programmers?

PLC programmers earn competitive salaries ranging from $55,000-$85,000 for entry-level positions to $90,000-$130,000+ for senior roles. Specialized expertise in specific industries or advanced automation systems can command even higher compensation.

Which PLC brands should I focus on learning?

Allen-Bradley (Rockwell) and Siemens dominate the market, making them excellent starting points. Schneider Electric, Mitsubishi, and Omron are also valuable to learn depending on your target industry and geographic region.

Related Articles

🚧 COMING DECEMBER 2025 - PREORDER NOW

Ready to Master PLC Programming?

Be among the first to get our comprehensive PLC programming guide. Preorder now and save 60% off the final price!

500+
Pages of Expert Content
50+
Real-World Examples
60% Off
Preorder Discount
Preorder PLC Programming Guide - $47

βœ“ December 2025 Release βœ“ Full Refund Guarantee βœ“ Exclusive Preorder Benefits