Siemens LOGO! Three-Pump Booster Control with Auto Failover Logic

David Krause13 min read
HMI ProgrammingSiemensTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Application Overview

This reference design implements a three-pump booster set using a single Siemens LOGO! 8 controller (6ED1052-xxx08-0BA1 family or later). The control object is a pressure-boosting pump station that maintains downstream line pressure by starting and stopping three identical centrifugal pumps in response to a pressure-sensing switch.

The required behaviour, derived from the field problem statement, is:

  • Two pumps normally operate in lead/lag alternation with the third pump held as a stand-by.
  • If one running pump develops a fault (overcurrent trip, thermal overload, seal failure, or auxiliary contact trip), the stand-by pump must be brought on-line automatically.
  • If two pumps trip simultaneously, the single healthy pump must continue to run continuously (no alternation) until at least one of the tripped units is reset, so the station does not lose pressure altogether.
  • A dry-run input must hard-inhibit all pumps regardless of pressure-switch state.
  • The duty selection input must allow the operator to force any pump into the lead position.

The reported symptom — "two pumps trip, the healthy pump is not working" — is typically caused by an alternator that decrements its duty counter without checking pump availability, or by a failure latch that is wired into the run-enable line instead of only the assignment line. The corrected architecture below separates availability from selection, which resolves the issue.

2. Prerequisites

Item Specification Notes
LOGO! base module LOGO! 8.3 (6ED1052-1MD08-0BA2) or 8.4 (6ED1052-1CC08-0BA0) 12 digital inputs / 8 digital outputs minimum; relay variant preferred for pump contactors
Expansion I/O LOGO! DM16 24R (6ED1055-1NB10-0BA2) if base outputs are insufficient Provides 8 DI / 8 DO relay
Programming software LOGO!Soft Comfort V8.4 (6ED1058-0BA08-0YA1) or later FBD, LAD, UDF support
Operator interface LOGO! TDE text display or integrated Web server Web server available on LOGO! 8 from firmware FS-04 onward
Sensors Pressure switch (SPDT, adjustable cut-in/out), dry-run float or conductivity probe, three pump aux contacts (NC) Use volt-free contacts; debounce in software if mechanical
Protection Thermal overload relay (e.g. Sirius 3RU2116) per pump Aux NC contact feeds the failure input

Verify the LOGO! firmware revision against the latest Siemens release notes on the LOGO! 8 system manual entry page before commissioning; behaviour of the on-delay, off-delay and weekly timer blocks changed between FS-03 and FS-04.

3. I/O Allocation

Use the LOGO! 8 fixed I/O numbering. Inputs I1–I8 and outputs Q1–Q4 are on the base unit. Expansion adds I9–I24 and Q5–Q16.

Address Symbol Signal Source / Load
I1 DRY_RUN Dry-run protection (NC contact from probe/float) Open = trip
I2 DUTY_SEL Duty selector: 0 = auto rotate, 1 = fixed lead Selector switch
I3 PS_HIGH Pressure switch, "system healthy" contact Closed when line pressure ≥ cut-in
I4 FAIL_P1 Pump 1 aux fault (NC thermal / seal monitor) Open = fault
I5 FAIL_P2 Pump 2 aux fault Open = fault
I6 FAIL_P3 Pump 3 aux fault Open = fault
I7 RESET Operator reset / fault clear Momentary NO pushbutton
I8 REMOTE_ON Remote enable from BMS / SCADA Optional, tie high if unused
Q1 RUN_P1 Pump 1 contactor coil Via overload relay
Q2 RUN_P2 Pump 2 contactor coil Via overload relay
Q3 RUN_P3 Pump 3 contactor coil Via overload relay
Q4 ALARM Common fault beacon / SCADA alarm 24 V beacon or DO to RTU
All pump fault inputs must be fail-safe: NC contact that opens on trip, so that a wire break also produces a fault. Do not invert these in software without a documented reason; doing so defeats the safety intent.

4. System State Diagram

The controller can occupy one of three high-level states. Transitions are driven by the pressure switch, dry-run input and fault latches.

IDLE PS open, no faults 1-PUMP RUN Lead pump alone 2-PUMP RUN Lead + lag (duty 1+2) DEGRADED 1 or 2 pumps failed PS closes Lag requested any FAIL_n opens 2 faults OR DRY_RUN

The DEGRADED state is the one that resolves the user's reported symptom: once a single healthy pump is selected and proven, it is held latched regardless of how many alternation cycles have elapsed.

5. Pressure Switch and Dry-Run Logic

The pressure-switch input (I3) is debounced with a LOGO! On-delay block (B001) of 2 s to suppress water-hammer transients. The dry-run input (I1) is processed by a faster Off-delay of 0.5 s (B002) so that a brief probe splash does not shut the station down.

The global run-enable equation is:

RUN_OK = NOT(DRY_RUN) AND REMOTE_ON AND NOT(FAIL_ANY_LATCHED)

where FAIL_ANY_LATCHED is the OR of the three failure latches (see Section 6). This signal gates every pump output, so a trip anywhere in the system removes the run permission cleanly.

The dry-run protection must be hardware in addition to software. Wire the dry-run contact in series with the contactor coils via a low-power control relay, so that an I1 wire break or a LOGO! fault cannot leave the pumps energised when the well runs dry.

6. Pump Failure Latches and Replacement Logic

Each pump has its own RS-latch (B010, B011, B012). The set input is the FAIL_Pn contact; the reset input is the operator pushbutton on I7. The Q output of each latch is the availability flag:

AVAIL_Pn = NOT(FAIL_Pn) AND NOT(RS_LATCH_n.Q)

This means a pump becomes unavailable either when its auxiliary contact opens (in-flight trip) or when its latch is set (acknowledged trip, awaiting reset). The latches ensure that a momentary trip is not auto-cleared by the thermal relay cooling down.

The selection logic is fully separate from the availability logic. A 3-bit "next duty pointer" selects which pump should be lead, which should be lag, and which should be stand-by. The assignment table is updated only when the pointer changes — it does not run when a pump fails. Therefore, if pump 1 fails while in the lead slot, the assignment of lead to pump 2 is performed explicitly by the failure handler (B020).

7. Alternation and Duty Rotation

The classical LOGO! implementation uses an Up/Down counter (B030) clocked by the falling edge of the pressure switch (i.e. each time the system cycles from "high pressure — pumps off" to "low pressure — pumps on"). The counter value 0, 1, 2 selects the duty pointer:

Counter value Lead Lag Stand-by
0 P1 P2 P3
1 P2 P3 P1
2 P3 P1 P2

Encoded with three comparison blocks (B031, B032, B033) using I1=00, I1=01, I1=10 of the counter output. This is the standard recipe found in the Siemens application example "LOGO! Application Examples for Pump Control" available via the Siemens Industry Online Support portal.

If the DUTY_SEL input (I2) is high, the counter is bypassed and the pointer is forced to 0; if the corresponding lead pump is unavailable, the pointer is incremented automatically until an available pump is found (B040).

8. Two-Pump-to-One-Pump Reconfiguration (the Reported Fault)

The bug described — "when two pumps trip, the healthy pump is not working" — arises when the lag-pump request signal is gated by both the availability of the lag pump AND the lag-pump slot. With two pumps tripped, the lag slot is empty and the lag request drops, taking the healthy pump offline as well, because the alternation block re-evaluates the duty pointer and finds no assignment for the available pump.

The corrected logic uses a "promotion" rule:

if (count_of_available_pumps == 1): promote remaining pump to lead, force RUN = continuous

Implementation (B050–B055):

  1. B050: count available pumps using three AND blocks and an adder (B051 + B052 + B053).
  2. B054: threshold detector "count == 1".
  3. B055: when true, latch the remaining available pump output through a separate SET-dominant RS-latch whose reset is only the operator RESET button (I7). This latch bypasses the alternation pointer and the lag request.

With this rule, the healthy pump is held ON continuously while two pumps are out of service, exactly as the field requirement specifies.

9. Output Equations

The final per-pump run equations are:

RUN_P1 = RUN_OK AND ( (LEAD_SLOT_P1 AND AVAIL_P1) OR (LAG_SLOT_P1 AND AVAIL_P1) OR EMERGENCY_LATCH_P1 ) RUN_P2 = RUN_OK AND ( (LEAD_SLOT_P2 AND AVAIL_P2) OR (LAG_SLOT_P2 AND AVAIL_P2) OR EMERGENCY_LATCH_P2 ) RUN_P3 = RUN_OK AND ( (LEAD_SLOT_P3 AND AVAIL_P3) OR (LAG_SLOT_P3 AND AVAIL_P3) OR EMERGENCY_LATCH_P3 )

The common alarm output (Q4) is:

ALARM = RS_LATCH_1.Q OR RS_LATCH_2.Q OR RS_LATCH_3.Q OR DRY_RUN

with a 30 s on-delay to suppress nuisance alarms during commissioning.

10. Wiring and Electrical Sizing

The LOGO! relay outputs are rated 8 A at 250 V AC resistive, 3 A inductive (AC-15). For pump contactors above 4 A coil inrush, interpose an intermediate relay (e.g. 3RH2911-1HA11) sized as follows:

Single-phase apparent power per pump control circuit:
kVA = V × I / 1000

If 24 V DC at 0.5 A for a 24 V contactor coil:
kVA = 24 × 0.5 / 1000 = 0.012 kVA = 12 VA

If 230 V AC at 0.06 A:
kVA = 230 × 0.06 / 1000 = 0.0138 kVA ≈ 14 VA

Either is well inside the LOGO! 8 contact rating (8 A × 230 V = 1840 VA), so direct drive is acceptable for typical pump contactors, but a snubber (RC network, e.g. 100 Ω + 100 nF) across each coil is recommended to extend relay contact life. Three-phase apparent power for the pump motors themselves follows kVA = sqrt(3) × V_LL × I_line / 1000; this is sized at the feeder level, not in the LOGO!.

Do not share a common neutral between the LOGO! 230 V variant and any pump supply. Use a dedicated circuit breaker (C-curve, 6 A typical) for the LOGO! supply only.

11. Commissioning Procedure

  1. Download the program with LOGO!Soft Comfort V8.4 in simulation mode first. Force every input and verify the Q outputs against the state diagram in Section 4.
  2. Connect the LOGO! to the live sensors with the contactors disconnected. Use the LOGO! Web server (Tools → Ethernet → Web Server Access) to monitor live values on a laptop at http://<LOGO_IP>; default credentials are in the LOGO! 8 manual.
  3. With each pump's overload relay hand-reset, click RESET on I7 and confirm the three fault latches clear. Verify Q1, Q2, Q3 all OFF.
  4. Force the pressure switch closed (I3 = 1). The lead pump should start within 2 s. Open I3 — pump should stop within 0.5 s.
  5. Trip the lead pump by hand-opening its auxiliary contact (FAIL_Pn). The stand-by pump should start within 3 s and the tripped pump should stop. The alarm output should energise.
  6. Reset the first fault with I7, then trip the second pump. The remaining healthy pump should now be held on continuously — this is the critical test for the reported bug.
  7. Restore all faults and confirm normal alternation resumes on the next pressure cycle.

12. Verification Checklist

Test Expected result Pass criterion
Power-on with no faults Q1–Q3 OFF, Q4 OFF Idle state, no alarm
Pressure switch closes Lead pump starts after 2 s on-delay Correct pump per duty pointer
Pressure switch opens All running pumps stop after 0.5 s No pump coasting indefinitely
One pump tripped Stand-by replaces it within 3 s Alarm energised, alternation pointer not advanced
Two pumps tripped Healthy pump held on continuously Healthy pump output stays HIGH until RESET
Dry-run active All pumps stop within 0.5 s Alarm energised, latched
Remote enable removed Pumps stop within 1 s No restart until remote re-enabled
Power dip 50 ms LOGO! retains logic state, fault latches preserved No spurious pump starts

13. Troubleshooting Matrix

Symptom Likely cause Remediation
Pumps never start even though PS is closed DRY_RUN input inverted or wire break Check I1 LED; force DRY_RUN=0 in simulation
Healthy pump not running when two fail Failure handler (B050–B055) not implemented or EMERGENCY_LATCH missing Verify B054 output goes HIGH when only one AVAIL_n is HIGH
Pumps start but stop after a few seconds RS latch not reset because overload relay is in trip state, latching as permanent fault Hand-reset the thermal overload; press RESET on I7
Pumps alternate every cycle but stand-by never runs Stand-by enable not implemented; only lead/lag slots wired Add B041–B043 explicit stand-by enable path on aux contact trip
LOGO! Web server unreachable Default IP 192.168.0.10 not on PC subnet or firewall blocked Set PC to 192.168.0.1/24; allow port 80
LOGO! Soft Comfort cannot connect over Ethernet LOGO! in client mode but no server IP configured Switch to server mode in Tools → Ethernet → Connections
Relay contacts welding Contactor coil without snubber, inrush beyond 8 A Install RC snubber or interpose an auxiliary relay

14. Program Storage and Documentation

Save the project as a .lsc file and export the cross-reference list (Tools → Cross-reference) for the site documentation folder. Include the password for the program protection in the site commissioning report; LOGO!Soft Comfort V8.4 stores program passwords as 16-character hashes and will not retrieve a forgotten one.

For remote monitoring, expose the LOGO! variables through the integrated web server by enabling Web Server Access in the project properties and checking Allow access via HTTPS for any installation accessible from a corporate network. Production deployments should bind the LOGO! to a static IP outside the DHCP range of the site router.

15. Operational Notes

  • Always fit a hand-off-auto selector on the panel door so that mechanics can locally run a pump for maintenance. The selector must break the LOGO! output, not just the contactor coil.
  • For installations above 4 kW per pump, a soft-starter (e.g. Sirius 3RW40) is recommended to limit starting current; the LOGO! RUN output drives the soft-starter ON input, and the soft-starter's own aux contact feeds the FAIL_Pn input so that a soft-starter trip also produces a fault.
  • When retrofitting an existing relay-based panel, retain the original overload relays; do not replace them with the LOGO!, because the LOGO! cannot guarantee SIL-rated motor protection.
  • Set the LOGO! clock (Tools → Clock) so that the alternation counter survives a power-cycle via the retentive flag (Retentive ON on the counter block). The default is non-retentive, which would reset the duty pointer on every power dip and put pump 1 in the lead slot every time.

How do I prevent the healthy pump from being held off when two pumps have tripped?

Implement an explicit "promotion latch" that detects count_of_available_pumps == 1 and SET-dominantly latches the remaining available pump's output. The latch reset is the operator RESET button only; it must not be gated by the alternation pointer or the lag-request signal, because both of those will be inactive when two pumps are out of service.

Which LOGO! function blocks implement the failure latches?

Use three RS-latches (B010, B011, B012) — set by the respective FAIL_Pn input, reset by I7 (RESET pushbutton). Their Q outputs feed the AVAIL_n calculation as NOT(Q). Do not use simple AND gates; an RS-latch prevents the system from auto-clearing a tripped thermal overload when it cools down.

How do I size the LOGO! for a 230 V three-pump panel?

Each pump contactor coil is typically 6–10 VA inrush, 4–6 VA sealed. Three coils driven directly by the LOGO! 8 relay outputs total under 30 VA, well below the 8 A / 1840 VA per contact rating. Always fit an RC snubber (100 Ω + 100 nF) across each coil and an 8 A fast-blow fuse on each output to extend relay life.

Why does the alternation pointer not advance when a pump trips?

By design: the duty pointer should only change on a pressure cycle (PS falling edge), not on a fault event. The fault handler promotes the stand-by pump directly into the failed pump's slot. Letting the counter advance on every fault would desynchronise the lead/lag rotation from the actual run-hours of the pumps.

Can I monitor the LOGO! from a phone?

Yes. The LOGO! 8 integrated web server exposes a built-in variable dashboard on the LOGO!'s IP address. For full custom dashboards, use the LOGO! CMR2020 or LOGO! CSM unmanaged switch combined with a Modbus TCP poll from any SCADA. Enable HTTPS and change the default credentials before exposing the LOGO! to a network with internet access.

Back to blog