Ab Plc5

Here is the PLC5 ladder file Im working on. PLC 1B.ZIP
Look at LAD 20 file for my 2 pumps. Each instruction
has a descriptor.
I think Im real close to getting them to alternate,
but its just not coming to me.
Its like its right on the tip of my mind, but
Im just not getting it down.
You will see the timers set at 1 hour, and a few interlocks
already there.
I can do it with some ADD and EQU, but I know there has to be a simpler way. The motors are being ran off VFD's.
Take a look if you want.
 
I don't have time to help at the moment, very busy.

I did take the time to convert Ladder file 20 to a PDF, so that forum members without the software can perhaps give you a hand.
 
Fascinating. I did a 2 pump lift station on a drainage project several years ago. The goal was to pump down during storm and high water conditions, so there wasn't a constant 24 hour run time, but this is very similar.

How about this...

Turn the timer into a free-running timer.


p1 run? p2 run? p2Enable p1enable
---] TD [------] [------]/[-------(L)------(U)-----
|
| p2 run? p1 run? p1Enable p2enable
---] [------]/[-------(L)------(U)-----



That's one way. Of course, since you are using VFDs, you probably want to include some "handoff" logic.
 
Thanks Ken,
I have an updated ( added AUTO and MANUAL functions ), am working on this today, I hope to get this finish before tomorrow.
Need to startup lift station tomorrow.
Attached is the latest file.
 
Updated pdf attached. One quick question, seems like you have a lot of un-necessary internal bits, why? You have N something bits firing a B something bit, and then on the next line you have the B bit firing another N something bit, why not cut out the middle man?
 
This PLC is part of a networked system of 21 PLC's connected to a SCADA system ( GEFanuc Ifix ). Those the bits that are to/from the SCADA server.
 
Merlin,

My RSLogix5 is too old--can't read your file. However looking at the last PDF that Ken translated, I see your two 1-hour timers (T4:170 on Rung 37 and T4:175 on Rung 56) for the pumps run times, and I see the alternator bits that reset those timers.

I don't see where you actually use the above timer run times to control EITHER pump. It could be in there (everthing else except the kitchen sink is in this program!), but it was hard for these old eyes to search it manually.

Perhaps you have not added that part yet. Look at Tom's suggestion using latching bits to alternate the pumps.
 
Last edited:
Merlin,

It appears to me that "using the B30:2/2 and the B30:2/3 instructions to interlock the opposing start instructions" would severely complicate your start logic, and maybe not accomplish the switch-over.

To make an alternator work correctly, you have to stop thinking and programming as if the start/stop control is tied to a designated motor. If the Start/Stop controls are tied to designated motors, then you must "untie" them. On an alternator set-up, Start will start whichever motor has the next duty.

Think of it as a System, with a System Start and a System Stop. The alternator takes care of deciding which motor in the System gets to run next. For an alternator, the switch can be made at the end of a motor run cycle. When the device ending the current run triggers, it activates some logic to switch the NEXT STARTUP TO THE OTHER MOTOR, regardless of where the next start command comes from (start button, high level switch, timer, and so on).

Here is a simple example for two air compressors. The alternator action is done on Rung 001. It is simple, clean, and easy to understand. The alternator switch is triggered when the pressure switch reaches the cut-off PSI setpoint. Upon the next start, the C1/C2 Toggle guarantees that the OTHER compressor will be the one selected.

You can trigger the alternator action with more than one thing (start buttons, level switches, timers) in parallel. Think about it some more, and you will realize that the alternation has to be triggered by some re-occuring "normal" event, and set up so that 1st time it does Item 1, 2nd time it does Item 2, 3rd time it does Item 1 again, amd so on. Period.

Compressor_alternator.jpg
 
Last edited:
Your right, I tried and it didnt work. I'll keep trying.

I just keep thinking there is a simple way of doing this that Im not seeing.

Thanks
 
matrixmerlin said:
Your right, I tried and it didnt work. I'll keep trying. I just keep thinking there is a simple way of doing this that Im not seeing.
I have been studying your program. Here is a step-by-step list to make them alternate.

(1) On Rung 36, on a new parallel branch with "Pump 1 Start Output O:033/1, put a Latch (L) for B30:1/15. Add a new description for B30:1/15, "PUMP 1 HAS RUN". Also on Rung 36, add a B30:1/9 XIO contact in series with Output O:33/1, so that it will prevent Pump 1 from starting if B30:1/9 is ON.

(2) On Rung 55, on on a new parallel branch with "Pump 2 Start Output: O:033/2, put an UnLatch (U) for B30:1/15. Also on Rung 55, add a B30:1/9 XIC contact in series with Output O:33/1, so that it will prevent Pump 2 from starting if B30:1/9 is OFF.

(3) Modify Rung 59 to look like this:
 
| |
| ALTERNATION LS-5 PUMP 1 P1/P2 |
| ENABLED CALL TO RUN HAS RUN ALTERNATOR |
| B30:2/4 B30:0/13 B30:1/15 B30:1/9 |
|----| |----------| |---------+----| |------------(L)---------|
| | |
| | PUMP 1 P1/P2 |
| | HAS RUN ALTERNATOR |
| | B30:1/15 B30:1/9 |
| +----|/|-------------(U)--------|
| |



(4) If you want timers to alternate the pumps also, add Timer DN XIC bits on Rung 59, on parallel branches with "CALL TO RUN".
 
Last edited:

Similar Topics

I am using the following formula and I am getting error, Invalid Expression - too many closing parenthesis. when i copy the formula to notepad or...
Replies
4
Views
159
Preface: Kinda long, so I made section titles Intro: I just want to see if anyone here has seen anything similar. A PLC5-40 series C enhanced...
Replies
3
Views
378
Hi, can anyone help me get a pdf file for this RSP files. They are from a PLC5. Thanks
Replies
5
Views
532
Hello all, I am seeing this behaviour where an integer file (N46:33), has an integer in binary (11110) which is 30 in decimal. I did a...
Replies
7
Views
524
Back
Top Bottom