Three pumps system control

Shahbaaz

Member
Join Date
Jun 2020
Location
port louis
Posts
1
Hello Guys,

I have tried the programming but can't twist my mind to make it work correctly. I'm using S71200 and TIA Portal.

My system has three(3) pumps and here's how it should operate:

- I want to run the pumps alternatively, one after the other. Start By Pump1, then after some time switch Pump2 ON and Pump1 OFF. Then switch Pump3 ON and Pump2 OFF. Then the cycles continues - provided they all in Auto and not faulty or emergency.
- If any of the pumps is faulty/emergency, the other two pumps should be able to run and swap between them.
- The pumps are running PID to maintain pressure.

Having difficulties doing the swapping.


Your thoughts!

Thanks.
 
You want to use a programming principle generally called "separation of concerns."

Isolate
  • (A) the logic of whether a (or any) pump should be running without selecting a particular pump,
  • from (B) the logic for which specific pump(s) (Pump1 or Pump2 or Pump3) should be running when the other logic determines that one or more pumps should be running.
For example, the latter logic (B) above could assign a priority value of 0 or 1 or 2 to each specific pump; any pump that is locked out (maintenance, faulty, emergency, etc.) automatically gets assigned a 3.

Then, when the former logic (A) above states that "any 2 pumps," by assigning a 2 to global tag PumpsToRun should run, each specific numbered pump could compare its PriorityPumpN tag value to the global PumpsToRun tag value to choose whether to run or not.

When it is time to rotate the pumps,
  • for all priority values less than 3 (not disabled), increment the value by 1 (or 2) , and then reduce that incremented value modulo 3 (so an incremented value of 3 or 4 becomes 0 or 1)
That will rotate all of the priorities by one position, assuming none are disabled, But if any are disabled, then the enabled pumps' priorities may not start at 0 and and increment by 1, so
  • Find the minimum priority value that is not 3, which should normally be 0, and if that minimum value is 1 or 2 then subtract that minimum value from all non-disabled priorities.
    • This will ensure exactly one enabled pump is at priority 0
  • Find the second minimum priority value that is not 0 and not 3
    • If that second minimum priority value is 2, then subtract 1 from the priority value that is 2.
That second set of logic can be executed on every scan cycle, not just when rotating the pumps, because it will not change anything once the priorities are correct (starting at 0 and incrementing by 1), and it will also adjust on any scan cycle when a pump is enabled or disabled.
 

Similar Topics

Dear Friends , h I have an application three pumps running with respect to maximum run hours . I want to creat a ladder in any...
Replies
4
Views
2,334
Kindly, we connected electrical power, 3x380 vac, between a supply station and an electric cabinet, away 180 meters. The calculation software...
Replies
11
Views
847
im new at Allen bradley rslogix programming; i have something to ask you guys , and i will be happy to get answers so thank you in advance. when...
Replies
1
Views
590
Hi all, We had three drives fail upon power up. The two had F081 fault code. The maintenance personnel attempted to copy VFD parameters using a...
Replies
4
Views
1,538
Monday, we had a VFD that controls the spped of a conveyor belt fail on us. Took the replacement out of the box, installed it and bam, it failed...
Replies
37
Views
16,832
Back
Top Bottom