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 |
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.
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.
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):
- B050: count available pumps using three AND blocks and an adder (B051 + B052 + B053).
- B054: threshold detector "count == 1".
- 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!.
11. Commissioning Procedure
- 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.
- 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. - 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.
- Force the pressure switch closed (I3 = 1). The lead pump should start within 2 s. Open I3 — pump should stop within 0.5 s.
- 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.
- 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.
- 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.