4 Pump Alternation by date

SFCraneTech

Member
Join Date
Oct 2023
Location
San Francisco
Posts
2
My department has been tasked with writing the program for a 4 pump lift station that alternates all four pumps (one lead, one lag, two on standby). The alternation will be set by date of the month. For example, Day 1 through Day 7 will be pumps 1 and 2 as the lead/lag. Day 8 - Day 14 will be Pumps 2 and 3 as lead/lag, etc.

Any tips/hints for us to consider?

Any example ladder diagrams are welcome.

Thanks guys
 
There have been many posts here regarding pump alternation with lag & lead pumps perhaps search the forum, some I believe contain some code, although I don't remember any based on date there is certainly some on time so just subsitute them with date.
 
Any tips/hints for us to consider?
As @parky said, a well-crafted google search will yield plenty of examples. Perhaps even browsing the Downloads section of the forum will yield some results [update: yes there is one under the Allen-Bradley section].

What you will see in almost all of the examples, at least the good ones, is a programming technique called "separation of concerns."

That is, you need to separate the logic that turns the lead and lag pumps one or off, from the logic that knows which pump is lead and which is lag.

1) there will be a PLC-internal memory bit (a.k.a. boolean a.k.a. flag) allocated for running the lead pump, and another allocated for running the lag pump. These two bits' values are dependent on the lift station logic ONLY e.g. RUN_LEAD bit becomes 1 when the sump level is above the HIGH level, and RUN_LAG become 1 when the sump level is above the HIGH-HIGH level, and both bits become 0 when the sump level goes below the LOW level, HOWEVER, those bits, are not dependent on, and have nothing to do with Pumps 1, 2, 3, and 4 or the day of the month.

2. There will be four PLC-internal memory bits, one for each pump, so each pump knows when it is the lead pump, and another four allocated so each pump knows when it is the lag pump. These eight bits' values are dependent on the day of the month ONLY. Their values of independent of the behavior of the level in the sump.

Once that is done, the logic for Pump 1 looks like this:
if (RUN_LEAD and PUMP_1_IS_LEAD) or (RUN_LAG and PUMP_1_IS_LAG) then RUN_PUMP_1 := 1; ELSE RUN_PUMP_1 := 0; END_IF;
or more simply:
RUN_PUMP_1 := (RUN_LEAD and PUMP_1_IS_LEAD) or (RUN_LAG and PUMP_1_IS_LAG);
The other pumps are essentially the same. I wrote this in ST because is reads like it works and should be understandable to anyone who understands boolean operations; converting this logic to ladder is left as an exercise.
 
Last edited:

Similar Topics

I'm sure this question has been asked a lot but i cant seem to find a response I understand. Im fairly new to programming so as much help as...
Replies
5
Views
2,521
Hi guys, I know that "this has been covered lots of times in the past and I should just search it"... But I am struggling to find the correct...
Replies
9
Views
5,505
Hi guys, I'm a automation student here in Norway, and I have just become an apprentice at a fish processing plant. One of my first tasks is to...
Replies
11
Views
6,761
Looking for some advice... The scenario: I have two discrete pumps used to empty a tank. The lead pump is requested to run once a high level...
Replies
10
Views
12,664
Hi, I would like to assemble a simulator/practice booster pump system that uses PID to maintain steady water pressure under various outlet demands...
Replies
0
Views
82
Back
Top Bottom