Real problem Not a Student

gas

Member
Join Date
Nov 2005
Location
Erie, Pa
Posts
531
I have a customer that has 10 pumps all pumping the same product. I need a program that counts the run time and starts the pump with the least time. As more product is needed more pumps are started (again starting the pump with least hours). When the set point is reached stop the pump with most hours then continue to stop pumps with the highest (decending) hours. Somewhere the process will call for produce and pumps will be called all over again.
I also need to flag pumps that are down for maintenance and not call those.
 
So what is your question?

By the way, operating the way you described the pumps will become identical eventually, unless the source empties before.
But you said nothing about such scenario and when to reset the time.
 
Last edited:
PO Please

gas said:
I have a customer that has 10 pumps all pumping the same product. I need a program that counts the run time and starts the pump with the least time. As more product is needed more pumps are started (again starting the pump with least hours). When the set point is reached stop the pump with most hours then continue to stop pumps with the highest (decending) hours. Somewhere the process will call for produce and pumps will be called all over again.
I also need to flag pumps that are down for maintenance and not call those.

And you are willing for one of the members here to write this program for free?
 
gas, This is not an unusual application, however a lot depends on a lot.

A few questions for you:

1. What PLC are you using?

2. What is the greatest amount of accumulated time expected for each pump?

3. What's the resolution in time? Min, Sec, or hours? IOW how close do you need to maintain the individual run times?

Generally you would accumulate time for each pump, then compair pump A with pump B, mark the high time, then compare the result with the next pump and so on. Eventually, after so many itirations this will put the pumps in the proper sequence for the next starting cycle.
 
Damn it...

A Logical problem can't be solved unless the particular PLC is known???

Bull$hit!

There are plenty of historical threads that have discussed this issue.

And yes... a lot of the solutions are PLC-specific.

But some of the solutions... mine in particular... are conceptual solutions!
 
Terry Woods said:
Damn it...

A Logical problem can't be solved unless the particular PLC is known???

Bull$hit!

There are plenty of historical threads that have discussed this issue.

And yes... a lot of the solutions are PLC-specific.

But some of the solutions... mine in particular... are conceptual solutions!

Terry, If you've noticed, I did give a conceptual solution. However specifics depend on specifics.. Not knowing the instruction set, I'm not going to waste gas's or my time providing examples that gas may not be able to use.
 
Resolution is not a problem, use relative time.

elevmike said:
2. What is the greatest amount of accumulated time expected for each pump?
You don't need to keep track of the accumulated time, only relative time. The relative time may be in minutes and seconds whereas a total run time may be in hours and days.

As Mike noted one can do compares to find the pump with the minimum time. This minimum can then be subtracted from all the pumps. If one needs to keep track of total run time then this same minimum run time can be added to a total run time. Now the total run time for each pump is the relative time plus the common run time.

Note, the relative run times should be relatively small. If one pump gets far ahead then one may just turn it off and turn on another to replace it to keep the relative times within a certain range.
 
I did NOT expect anyone to program for free. If I count hours the pump run times should be pretty close to each other. This program will allow rebuilt pumps to "catch up" for time spent off line.

My only thought was to write the timer acc to N files. When pumps were called for I would do a compare sequence and start pumps accordingly like elevmike suggested.
I have found that by asking around I often find easier solutions. I saw a similar application that wrote out the N files to Excel, sorted the data then wrote it back to the PLC. Slick, but I have no screen running excel.
gas
 
Gas,

Yes, just do like you said: store the accumulated time to an N file, then do 9 Less Than or Equal compares, comparing P1 with P2 -->Result to T1, T1 with P3, result to T2, and so on, with the lowest pump finally being turned on next.
 
gas,

You need to establish a min run time for each pump. This will establish the resoulution in time you need to track. If it's possable that a pump might only run for 20-45 seconds, then you need to track the accumulated time in seconds. If any given pump will run for a min of 60 seconds then you can track in minutes.

The issue here is that if you dont track using the approperate resolution, the actual run time vs. the accumulated tracked time will eventually become so far off, it will be usless.

Additionally there is a basic maintence problem with the theroy of rotating load so all the equipment wears at the same rate, and to play catch up on the wear rate from one to the others. The problem is that the eqipment will eventally get to the point where all the pumps will fail, or require servicing all at/or near the same time, possably taking the entire process down, and leaving no or inadaquate backup to continue with min. production requirements.

In a critical operation it's usually the best practice to intentionally cause a group of pumps to wear at a greater rate then others. When group A is down for servicing, Group B will take the predomonent load, etc.. Spreading out the service factors over time, thus limiting the risk of a total shutdown.

Simply put, some types of production equipment should not be assumulated with rotating the tires on your car. If the equipment was installed with 10 pumps, but designed to run full production with 8 pumps in service, you dont want three or more pumps to require servicing at the same time, thus interupting production capabilities.

So depending on the applicatiion, you might want to sequence your pumps so you always start with Pump 1, then Pump 2 etc.. as the demand calls for. Pump 1 should require serviceing first, so then the sequence would start with Pump 2, then 3...then after pump 1 is back on line it would be the last pump in the sequence. When pump 2 would fail, be serviced and placed back on line, then it would be the last.. and so on. This would spread out the service intrevals between pumps so they wont all fail at or near the same time.
 
Last edited:
The whole scheme needs to take into account scheduled maintenance of pumps. Once you have overhauled a pump it now sits at 0 run hours. According to some of the above described ideas you would than run this overhauled pump excessively. Normally in situation like this lead/lag pumps, generators etc. are controlled on round robin basis and you run each for a fixed amount of time. An operator interface or a set of selector switches should be provided to facilitate a manual run and to disable or enable individual pumps to run in the automatic round robin scheme. HMI would also display the amount of accumulated run time for each pump.
 
I agree with elevmike. One other thing that I've run into is that seldom do all parts (pumps, motors, valves) behave the same. Two identical pumps sitting adjacent to each other pumping the same fluid, will fail at different rates. They should not, but they will. This is due to alignment, piping, temperature or even subtle manufacturing differences.

I'd first decide how many pumps had to be on-line at max load. Then decide how many pumps I'd be comfortable having out of service. Use that number to decide how many pumps per group, and then cycle in groups, allowing time for maintenance at whatever rate is needed. A group may prove to have too many pumps due to load variance. If that is the case, then the only choice is to reduce the size of the group, but keep the maintenance schedule in tact.



One other option is to keep a newly rebuilt pump off line until another is taken out of service, or fails. Then replace it with another "standby" pump. If pumps 1 and 2 were on standby, and pump 6 failed, start up pump 1. Rebuild pump 6 test it and then place it in standby. This worked well for a large hydraulic system with a single reservoir, and twelve pumps. We always kept two rebuilt/tested pumps on standby. This ensured that we could afford to loose two pumps at any given second. I don't remember loosing two pumps at the same time.



Just remember that if a coupling fails, the PLC won't know that anything is wrong with that particular pump.
 

Similar Topics

I have been tasked with reverse engineering a large oven control system. The controller is a DC Omron controller. My first two very high level...
Replies
14
Views
4,127
Happy new year everyone. Well, not so happy for me though, because of a problem that I am really confuse with. Last friday, one of my client...
Replies
48
Views
16,388
I am try to do this task: write FC1 that would read from analog input (analog input = tw). The output of the FC1 will be downloaded/read/recorded...
Replies
5
Views
2,771
I've got Siemens S7300 PLC connected to Citect PC via Ethrnet. INT and Bool values are written and red without problems but as for Real values...
Replies
7
Views
3,236
i will do the best i can guys. i have a panelview plus 700 talking to a micro logix 1400. using a standard momentary pushbutton with typical bit...
Replies
3
Views
3,398
Back
Top Bottom