Pump Control Scheme

dbh6

Lifetime Supporting Member
Join Date
Jan 2013
Location
Central, NJ
Posts
552
Software is RSlogix 5000

Ok I have been trying to get this ladder code working without making it to complicated but keep running into road blocks. Ill explain the scenario so i can get pointers from you folks.
Below i have outlined the spec:

- Their are a total of 4 pumps. lets call them PumpA, PumpB, PumpC and PumpD.

- It is required that 2 pumps have to be on while the other 2 have to be on standby.

- user should be able to select which two pumps out of the four they want on standby.

-Lastly, say for example you have PumpA and PumpB running and PumpC and PumpD on standby, if PumpB fails then the next available standby pump should come on, in this case either PumpC or PumpD is fine, but when that failed PumpB comes out of a failed state, that will be the new standby. This same principal applies to any pump that fails

So please share you thoughts on this, as i have spent too much time on it and got nothing but dead ends.
 
@ Oakley you got to give me a better hint than that, haven't used K-maps since sophmore year in college,

@ Lancie i had went through that before posting but didn't find what i was looking for.

ill keep trying to work this out, guess ill have to refresh my memory on K-maps
 
@ Lancie i had went through that before posting but didn't find what i was looking for.
I saw one for 3 pumps by Ron Beaufort that was explained well and seemed to use the method that you need to use for 4 pumps - same method, different number of pumps. Modify and adapt is the heart of the PLC game. I would adapt one of those old programs for you, but I can't justify RSLogix 5000 for home use.

Post what you have done, and I bet someone will be able to help fix it up for you.
 
Last edited:
@ Lancie, i will post what i have so far with my code tomorrow, to summarize what i have done so far, depending on which set of two pumps are selected to be on standby from the HMI, the other two pumps will run their can be only two pumps running at a time out of the four and the order doesn't matter. Once again the part that matters is say if pumpA and pumpB are on and pumpB fails, either pumpC or pumpD can come, so say it so happens that pumpC comes on then now we have PumpA and PumpC on, with PumpB failed and PumpD on standby. Finally when PumpB comes out of a failed state it will be a standby.


EDIT** ill also look at Ron's code to see if i can massage it to fit my scenario.
 
Here is a RSLogix 500-type program (in the LogixPro Simulator software) from a previous thread by member "NR Locus" for a 3-pump sequencer with 1 standy and two running. It seems that it could be modified to have two on standby. In this program, the Standby pump is selected by two different methods: by manual pushbutton, or when a pump fails it automatically goes into standby mode to be repaired or replaced.

http://www.plctalk.net/qanda/showthread.php?p=559538
 
Last edited:
2 pumps on 2 on standy

@ Lancie i have attached my code of what i have so far. I have documented it well for anyone to follow. I used the RSlogix 5000 emulator to do this, but the same code can be done in logix 500 as well.

I'll highlight below what i currently have working.

Working

Depending on which set of two pumps the user selects on the HMI to be the standby pumps, the non standby pumps will run.

Their is a Health Ok tag for each of the pumps that i'am using to tell me which pump failed. So if the Health Ok tag goes low for the pumps that means that specific pump failed.

Not Working


The part that is giving me a hard time as i have mentioned before is how a failure of a pump is handled. An example is say the user selects PumpC and PumpD as the standby and Pump A and Pump B will be running. Now at that moment if Pump B fails either one of the standby pumps C or D can take its place. The order of which standby pump replaces a failed pump does not matter, what matters is 2 pumps have to be on and two have to be on standby, and at any instance if an ON pump fails the available non failed standby pump will run.

I have tried numerous ways to get this going but it didn't work the way its supposed to, so any help would be appreciated.
 
Sorry, because I do not have RSLogix 5000, I can not open the ACD file. If you printed it to a PDF file, I could open that and make comments.

...at any instance if an ON pump fails, the available non failed standby pump will run.
One way that works is to use alternator or flip-flop logic to switch a running pump from "run enabled" to a "standby failed" pump. I have done this before in NR Locus's program by looking at the RUN Output and the auxiliary feedback from the motor starter (or other indicator such as a pressure or flow switch). If the RUN output is on but the aux contact is not, then pump has failed. Use the failed or alarm bit to trigger the alternator logic one time to switch the status of the pump from run-enabled to failed standby. Then your PLC logic should automaticaly switch to a good pump.

Your project is complicated by having two standby pumps instead of the usual 1. It seems that you actually have 3 pump status "states" for each pump.

Pump A : RUN-ENABLED, STANDBY GOOD, STANDBY FAILED
Pump B : RUN-ENABLED, STANDBY GOOD, STANDBY FAILED
Pump C : RUN-ENABLED, STANDBY GOOD, STANDBY FAILED
Pump D : RUN-ENABLED, STANDBY GOOD, STANDBY FAILED

I suggest that you set up 12 flag bits that indicate these 12 states. Then use those bits from each pump to allow the user to select two "run-enabled" pumps. Then the PLC can easily allocate the other two to either both standby good, one standby good and one standby failed, or two standby failed.
 
Last edited:
I'm thinking like this.

Create four variables, one for each pump.

Start any two pumps you like, say you start PumpA and C

Now when you select your first standby pump, PumpB, assign value 1 to PumpB variable.

Select PumpD and assign value 2 to PumpD variable.

Now you have:
PumpA=Running, PumpB=StandBy1, PumpC=Running, PumpD=StandBy2

If PumpA or C is failing, in this case we can say PumpA is failing, stop that pump. Then start the pump with the lowest assigned variable and then clear that variable. In this case PumpB=1, so start that pump and clear the varible.
At the same time you subtract 1 from the other standby pump, in this case PumpD. Making it the next pump to start if another pump is failing.

Now you have:
PumpA=Failed, PumpB=Running, PumpC=Running, PumpD=StandBy (variable assigned=1)

If the failed pump comes back online, assign a value to it. You need to check if any pump has the value 1. If no one has value 1 then assign value 1. If a pump has the value 1 then assign value 2.

Now you have:
PumpA=StandBy2, PumpB=Running, PumpC=Running, PumpD=StandBy (variable assigned=1)

The goal is to constantly have nonfailed standby pumps assigned to either value 1 or 2.
Then you simply start the pump with value 1 then a pump fails.
 
@ Lancie since you don't have Logix 5000 i have attached the PDF and for others that don't have it as well
 
@ rOx your method i think may actually work once i write it up. The only thing is as you mentioned to start any two pumps that of my liking and then pick the standby pumps. Per customers request you can only select which set of 2 pumps you want on standby, and this is not a selection that is made individually per pump but in pairs. So as an example their are 6 pushbuttons available to select which pairs you want on standby.

So when a pair of pumps are selected on standby, that other two pumps left must be none standby. So for example if we selected Pumps A and Pumps B to be on standby we can at that point assign a value of 1 into PumpA's variable and 2 in PumpB's variable, then Pumps C and Pumps D are running, from that point on the rest of the program you highlighted should be the same. The only other thing is if a pump has failed and it becomes ok since we are only allowed 2 pumps on at a time the way i see we can achieve that is if a pump has variables 1 or 2 assigned to it it won't run. I think that is what you meant so i just want to verify
 
Thanks. I am looking at the program.

It seems that you are tying your PLC's "hands" by relying on the HMI operator to select the standby pairs from the possible group of 6. If a pump failed (or one already has failed and another fails), your logic is locked in so that it cannot select two good pumps to run. For example, if A & B are running, and C & D are standby, then rungs 9 and 10 are TRUE and the sun is shining and the flowers are blooming. But if Pump B fails suddenly, there is no way to switch to Pump C and D because they are locked out by the PumpCD Interlocks on Rungs 11 & 12.

2. On a pump failure, you need another step where the PLC automatically selects a new run-enabled pump from the remaining possibilities. Alternator logic can be made to auto-switch a failed pump to the next good standby. For the attached 3-pump example, on rung 9, Pump 1 is in standby, so when Pump 2 fails, the alternator will be triggered one time and it will switch from Pump 2 to Pump 3. In your case you could use pairs of pumps, but your system will have better options if you treat the standby pumps individually. Instead of 3 selection rungs, you would need 4.

In the example, this system also has a manual mode, so on rung 12, you see the 3 bits that can cause Pump 1 to run.

Auto Pump Switching.jpg
 
Last edited:
The way you select to name the pumps to standby 1 and 2 is your choice the program should be the same after that as you said. If a pump failes you will have two running, and one standby. When the failed pump becomes ok again it will assign a standby number to itself. Either 1 or 2 depending on what number the other standby pump has. If two pumps failed. It will assing 1 when it becomes OK. If 1 is standby it will assign 2. I'm not sure I understood you correctly but I think that's what you asked :)
 

Similar Topics

Hi everyone, I am a newbie and I have trouble in the control sequence. I have a system with 4 pumps. The required: Ex: Push a button to start in...
Replies
21
Views
2,756
Hi there, We have a system at a water treatment plant where large raw water tanks feed into the plant that's all on the same level. At high tank...
Replies
18
Views
3,757
I am at a loss... I have a pasteurizing system that i need to control product temperature with the speed of the product pump. I currently have a...
Replies
11
Views
2,582
I am controlling a very tight window in a 8 foot sump. My low level to keep from cavitating the pump is 44” and my high level is 55”. The problem...
Replies
9
Views
2,064
Hey everyone, I was on a customer's site on friday where they have a large bioreactor that they bought secondhand from a previous user. System is...
Replies
22
Views
4,438
Back
Top Bottom