I need a sump control program

C

Thread Starter

Clayton Cox

I'm a rookie at this and need help.

I have 3 level floats as inputs and 3 sump pumps as outputs, an AB PLC5 and RSlogix500 software. The control scheme must be lead, lag, lag2 configuration and the pumps should alternate so the same pump does not run every cycle

I have the original relay control diagrams but can't seem to make the transition to PLC ladder logic.

many thanks in advance
coolclay
 
Hi

Please send me the Existing Relay Logic and will be in a position to help you to generate Ladder logig for PLC.

Best Regards

PP Muthu
Rezayat Trading Company Ltd
Kuwait
E-mail: [email protected]
 
N
> I'm a rookie at this and need help.

I'm a computer programmer with an interest in manufacturing, hopefully that's the angle that you're missing.

> I have 3 level floats as inputs and 3 sump pumps as outputs, an AB PLC5 and RSlogix500 software. The control scheme must be lead, lag, lag2 configuration and the pumps should alternate so the same pump does not run every cycle
>
> I have the original relay control diagrams but can't seem to make the transition to PLC ladder logic.


I suggest you develop in stages. First, build something really simple that turns on pump 1 for float 1, pump 2 for float 2, etc.

Once you've done that, modify your program to select which pump to use from a list in memory - here's how:

Select three data areas in your PLC, one for 'lead pump' one for 'lag' and one for 'lag 2'. Take your 'float 1' condition and make it branch onto the follow-on conditions, [DLead = Pump1], [DLead = Pump2], [DLead = Pump3]. ('DLead' and 'Pump1' are more likely to be 'D0100' and '1' in practice - make sure you write notes for yourself on what means what).
At the end of each condition, turn on the corresponding pump.

So now you've finished version 2, that selects the pump from a list. Now we have to rotate the pumps through that list.

For simplicity, let's run the pumps until the lowest float turns off, and use that as our trigger to rotate the list.

Attach a TOFF timer to float 1 and set it to go off very quickly (1 or 2 cycles). Then detect when the timer goes off and check what your current lead pump is. Based on that condition, reset the three data values to rotate the pumps.

HTH, in fact, please let me know ([email protected]).


Nick
 
If what you say is true that you have a PLC5, you will not be able to program it using RSLogix 500.

PLC5 requires RSLogix 5

SLC 5/0x requires RSLogix 500

Can't be done. Check your software and hardware again...
 
You should also think about what happens when your lead lag1, or lag2 pump is not available. Do you wait 'till the level reaches the next start point, or do you skip the disabled pump and start the next one in your rotation?

Also, if your pumps are large, you need to take precautions to prevent more than one pump starting at any one time.

This pump control logic is not as straightforward as it seems at first glance. Fortunately, this application is so widespread that about a gazillion companies make reliable standalone pump control modules. Google around for 'pump control module' and you'll get the general idea.

However, if you can't find a pre-packaged system that meets your needs, are just looking for something to do, or your boss told you to do it this way, then here's the approach I used.

Calculate the number of pumps required based on the current sump level, or number of floats tipped. You can build this standalone, which simplifies testing.

Build an array of pump indexes that you will rotate when all pumps are off.
Ex: On startup, indexes are 1,2,3. After one cycle, they are 2,3,1. After
the next, 3,1,2. This can also be done standalone, you can use a one-shot to test the rotation.

Copy this array of pump indexes and remove the indexes of unavailable (i.e. fail to start, not in auto, etc) pumps from the copy. Use 0 to fill in the holes at the end. Ex: If the available pump rotations are (1,2,3), (2,3,1), (3,1,2), then: If pump 1 is disabled: the 'available' rotations are (2,3,0), (2,3,0), (3,2,0) If pump 2 is disabled: the 'available' rotations are (1,3,0), (3,1,0), (3,1,0) If pump 3 is disabled, the 'available' rotations are (1,2,0), (2,1,0), (1,2,0)

Finally, use the 'available' array and the number of pumps required to set the corresponding pump request bit. You can use a timer to prevent more than one pump from going on at once.

You also need to have some logic for each pump that detects fail-to-start and HOA not-in-auto so the pump's availability can be resolved.

The good thing about this approach is that exactly the same logic can be used regardless of the number of pumps you have in your station, which makes it attractive if you've got gobs of pumping stations to deal with.

Best regards,

Joe Manns Arden Environmental Engineering Inc. 3550 Lexington Ave. N Shoreview, MN 55126 Ph 651-484-5415 Fax 651-484-5568
 
C
Hi Joe
thanks for the info

This seems like it's just what I need but how do I build the pump indexes? What instructions do I use to build it? How do I create the IF statement?

If you could send me a diagram that would help alot. I have had AB training but that covered the instructions mostly and not much about putting them together in a meaningful way.

Thanks in advance
Clayton Cox
[email protected]
 
Top