This subject has come up many times on this forum. Try a search to see what others have said.
If your PLC has a 1 second pulse, use it, anded with a "pump running" logic signal to increment a counter to "36" seconds. When the 36 pulse counter comes true, reset it and add "1" to a regular old data register. That "1" will represent 1/100 of an hour. (If you wish to display it as "hours", divide by 100, that is if you have floating point math.) Every 36 seconds you will add another "1" to your data register. That register will hold the "run time" for that pump in 1/100ths hours. Three Pumps? Three counters and three data registers. Data registers are rententave.
When you go to start a pump, perform a comparison on each "run time" data register to determine which contains the lowest number, and start the associated pump.
If your pumps tend to run all the time, use a "clock". Some PLCs have realtime clocks built in, some you can ADD them, or you can build your own with cascading counters. Every night at midnight (for example), or everytime your self built clock reaches the appropriate number of hours, do the comparison routine again, on all of the "run time" data registers described above, and start the pump(s) with the lowest number in it's "run time" data register.
That way all your pumps can wear out at relatively the same time, so when you send the first one that fails to the repair shop, the other two will be on their last legs also.
:8|
Stationmaster