Alternated pumps usage every weak

hidroela

Member
Join Date
Sep 2003
Location
Across from nasa
Posts
74
I have 3 pumps I would like to run each one for a weak at a time
In other words pump 1 this weak pump 2 next weak and pump 3
the next weak and start the cycle all over again I am using plc 5
and rslogix 5 any small ladder example would be appreciated :) :)
 
168 hours does a week make?

Is it important which day you start and stop on? If you only want to put 168 hours of run time on a pump and then change to another, the program is fairly simple. Timers won't time far enough for one to do the job, but you can cascade them to get enough time for a day and then count up to 7 days. Or, there are other alternatives. Time for 12 hours and count up to 14, time for 8 hours and count up to 21, etc. etc, etc. Now if you need to change on specific days, then there is a calendar in the plc5 so you might try using that. But beware, when you stop the processor for any reason, the calendar may have to be reset, but certainly the internal clock will have to be. Lots of options, pick one, show us some code and we can help you with any bumps you may hit.
 
Couldnt YOU?

PLC5 offers a Real Time Clock S:18 - S:23. You could count days or hours and use that to start the next pump. To determine which pump is next can be done several ways using internal bits to show WAS...ie Start pump AND pump1_WAS AND pump2_WAS THEN start pump3, naturally starting pump3 will UNLATCH the pump1_WAS placing it next.

You could also use a sequencer or bit shift.

THE ML1200/1500 has a RTC module that offers DAY of WEEK which would really make this easy...ie 7 days in a week, every 7 days make the change.
 
there you randylud or......

There you go randylud or whoever can lead me in to the right direction
This is what I came in up to so far



Any help would be appreciated


~hidroela\test.GIF
 
Hidroela, your program still needs a little work.
When the PLC starts scanning, it scans file 2. All your JSR's will need to be done from file 2.

If any pump is running, the start pump bit, B3:0/1 or B3:0/2 or B3:0/3 will hold C5:0 RES picked up, which will prevent C5:0 from counting.

You have used the FLL File Fill command. It is used to fills the words of a file with a source value. If you are only moving 1 value into N7:1 you can use the MOV instruction.

The example I gave was for a SLC5/04. Here it is for a PLC5.



Kim

test.gif
 
Got a good start goin here!

As Kim points out, there are a few bugs in your program. Not the least of which is the amount of seconds in a week.
60sec. X 60min=3600sec./hour, not per week. But you are on the right track and if you want to update a counter every 3600 seconds that will work. You just have to calculate the proper number of days for the rotation portion of your program and then figure out how you want to reset the tracking. I will take a closer look at your program and see what else need attention. I think you are going to well at PLC programming, it is after all, not that difficult.
 
A recipe for failure?

hidroela:

One more thing to consider:

What happens if one of the pumps breaks? Or was taken out for PM, and was down for longer than a week or two.

You are going to need some code like this:

PUMP No.1 Aux No.1 +-- TON ---+
-----| |---------|/|-----+----| T4:11 |
| | 1 Sec |
| +----------+
|
| T4:11.DN PUMP_1_FAIL
+------| |----------( )



That detects the failure. You would have one rung for each pump.

To use the alert, you might have something like this:


START PUMP 2 PUMP 1 PUMP 3 PUMP_2_FAIL PUMP 2
---+-----| |------------------------------------+---|/|------|/|--------|/|---------( )
| |
| START PUMP 1 PUMP_1_FAIL |
+-----| |------------| |---------------------+
| |
| START PUMP 3 PUMP_1_FAIL PUMP_3_FAIL |
+-----| |------------| |------------| |------+



This is just an idea. There are lots of other bells and whistles that you can add to this.
 
Last edited:
Apology first!

Not the least of which is the amount of seconds in a week.
I need to wake up better and also take a closer look at things sometimes before the intent comes through. As was the case with this comment from my earlier post. I realized after taking a closer look at your program what you were doing. As Allen said though, you need to consider things beyond the point of achieving the immediate goal. His recommendations are worth taking a hard look at. Also, my two cents, never make a simple program hard just because you can do it. I see no real reason for the subroutines in your first version no matter if they are in the correct files or not. The goal of a subroutine is to eliminate cumbersome code redundancy not make the program harder to understand and to troubleshoot. REMEMBER! You will always be the hardest person to follow after when looking at some program you wrote way back when. So, make the job easy on yourself if not the others who have to try and figure out what is goin on in your program. Just some advice from following myself all these years.
 
We assign a register for lead, lag, and standby equipment. When we want to change by perator input, failure, or alternate, we move the setpoint up one - the lag moves to lead, etc. Here is an example of a alternator. Ad as many tests as you want for daily, weekly, monthly, etc.
 
Allen Nelson on the example that you provided in post 8 I got confused on the denominations
For example

PUMP No.1 is a contact associated with the output for pump No1
Aux No.1 is an input from the magnetic contactor

Is so, them

START PUMP 2 is a contact associated with the output for pump No2 to or what and
PUMP 1 I could not figure it out. same thing START PUMP 1, START PUMP 3

i got this so far

Regards

12345.jpg
 
I think your logic is incorrect. To start are you trying to determine if the water level is changing the entire time the pump is running or just when the pump first starts? Either way the problem with the logic is that one second after the pump starts you move the water level to N7:130, then a second later you move the water level to N7:130 again since you are resetting the timer, this happens again and again. I don’t think this is what you are looking to do.

Try getting rid of the T4:22 timer and in your second rung do a statement like -
If T4:21 accumulated value equals 1 then move N7:196 to N7:130

Then you need to determine if you want to compare the water level the entire time the pump is running or just once when the pump starts up. If you want to compare the level the entire time the pump is running you need to reset T4:21 someplace, if you want to compare the level only once you need to have some type of one-shot.

To be honest you really need only one timer for all three pumps. You could set up your logic like –
If any pump on then run timer.
If timer accumulated value equals 1 then move N7:196 to N7:130.
If timer done and water level has not changed then set Pump Fail bit.
If Pump 1 Running and Pump Fail bit, then set Pump 1 Fail.
If Pump 2 Running and Pump Fail bit, then set Pump 2 Fail.
If Pump 3 Running and Pump Fail bit, then set Pump 3 Fail.
 
Last edited:
What I am trying to do is to see if the pump is doing its job (pumping)
So I am trying to compare tank level right after start(level1) and 20 seconds after (level2) the pump started if level1>level2 then it is doing the job
 

Similar Topics

dear all.. i am designing the Sea Water Intake pump which the 4 pumps will be operated parallel, and 1 pump will be as stand by pump The pump data...
Replies
3
Views
157
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...
Replies
1
Views
200
I have been reading everything I can find on the P_LLS the last 2 days but I am still having trouble understanding how the P_LLS swaps beyond 2...
Replies
9
Views
580
Hi, I started off my career in PLC programming doing water/wastewater on AB around 20 years ago, but then moved overseas a few years later and...
Replies
57
Views
12,067
Good morning everybody, I hope you are very well. I share with you the information of the PLC LOGO! Siemens and expansions that we have...
Replies
4
Views
1,088
Back
Top Bottom