Skip to content
Ladder logic (PLC) templates

Ladder - Duplex Pump Duty Alternation

Eight rungs of a duplex sump station with the duty selector on pump B: the same lead/lag branch pair drives both pumps from one alternation bit, so B runs and A stays standby on this scan, the duty counter has reached its 2,000-hour service preset, and the both-pumps-running alarm stays unlatched.

Template previewLadder logic (PLC)
Duplex sump - lead/lag pumps on a duty alternation bitDECLARED INPUT STATEHand_Auto = 1LSH_Lead = 1LSHH_Lag = 0Duty_B = 1Pump_A_Fault = 0Pump_B_Fault = 0Reset_PB = 0L1N1Lead call on the high floatTRUEHand_Auto1LSH_Lead1Lead_Call12Lag call on the high-high floatFALSEHand_Auto1LSHH_Lag0Lag_Call03Pump B runs as duty lead, or as lag while A leadsTRUELead_Call1Duty_B1Lag_Call0Duty_B1Pump_B_Fault0Pump_B14Pump A runs as duty lead, or as lag while B leadsFALSELead_Call1Duty_B1Lag_Call0Duty_B1Pump_A_Fault0Pump_A05Run-hours on the duty pump, service at 2000 hTRUEPump_B1CTUC_Pump_BPRE 2000 hrsCV 2000 hrsDN6Service-due lamp on the counter done bitTRUEC_Pump_B.DN1Service_Lamp17Both pumps running together latches the high-level alarmFALSEPump_A0Pump_B1SHigh_Level_Alarm08Panel reset is the only way out of the alarm latchFALSEReset_PB0RHigh_Level_Alarm08 rungs solved in one scan: 4 true, 4 false. 16 tags, 7 declared as inputs.3 outputs are never energised in this state: 'Lag_Call', 'Pump_A', 'High_Level_Alarm'.

Make it your own.

title "Duplex sump - lead/lag pumps on a duty alternation bit"
state: Hand_Auto, LSH_Lead, LSHH_Lag=0, Duty_B, Pump_A_Fault=0, Pump_B_Fault=0, Reset_PB=0

rung "Lead call on the high float"
  xic Hand_Auto
  xic LSH_Lead
  ote Lead_Call

rung "Lag call on the high-high float"
  xic Hand_Auto
  xic LSHH_Lag
  ote Lag_Call

rung "Pump B runs as duty lead, or as lag while A leads"
  branch
    --] [--Lead_Call----] [--Duty_B
    --] [--Lag_Call----]/[--Duty_B
  --]/[--Pump_B_Fault
  --( )--Pump_B

rung "Pump A runs as duty lead, or as lag while B leads"
  branch
    --] [--Lead_Call----]/[--Duty_B
    --] [--Lag_Call----] [--Duty_B
  --]/[--Pump_A_Fault
  --( )--Pump_A

rung "Run-hours on the duty pump, service at 2000 h"
  xic Pump_B
  ctu C_Pump_B preset: 2000 accum: 2000 unit: hrs

rung "Service-due lamp on the counter done bit"
  xic C_Pump_B.DN
  ote Service_Lamp

rung "Both pumps running together latches the high-level alarm"
  xic Pump_A
  xic Pump_B
  otl High_Level_Alarm

rung "Panel reset is the only way out of the alarm latch"
  xic Reset_PB
  otu High_Level_Alarm