Who started the stop?

Jnelson

Member
Join Date
Apr 2002
Location
Philadelphia, PA
Posts
198
I have 5 pumps that run at the same time. All pumps have an input into the plc to tell me when they are running. If any one pump shuts down all need to shut down. I need to indicate on my panelview who out of the 5 pumps initiated the stop if one of them has a fault. Basically who is the bad guy who just shut down the system.

I have figured out a brute force way to do this, but was hoping for some idea's on a clean simple way.

BTW, This is a micrologix 1500
 
Last edited:
I don't know that this will be any simpler John, but anyway...

| MONITOR P1_OK B3:0/1
|----] [-----]/[--------[ONS]-------(SET)
|
| MONITOR P2_OK B3:0/2
|----] [-----]/[--------[ONS]-------(SET)
|
| MONITOR P3_OK B3:0/3
|----] [-----]/[--------[ONS]-------(SET)
|
| MONITOR P4_OK B3:0/4
|----] [-----]/[--------[ONS]-------(SET)
|
| MONITOR P5_OK B3:0/5
|----] [-----]/[--------[ONS]-------(SET)
|
| OP_ACK +------------+
|----] [--------[ONS]---------| FILL |
| | Source: 0 |
| | Dest: B3:0 |
| +------------+


MONITOR is just an enabler that is ON when you want to monitor the pumps. OP_ACK is a 'reset motor fault' button on the PanelView. B3:0/n will call up the appropriate message on the PV.

beerchug

-Eric
 
Eric,

That is what I have done pretty much but with a ton of other coding.

What happens in your example if one pump shuts down all other pumps? All pumps shut down at the same time and then how do you detirmine who shut down first?

I just thought their might be some fancy instruction I am missing to do this.

Thanks for the help
 
I assume the PLC is initiating the shutdown of the pumps. If that's the case, I'd use the B3:0 word to shut down the pumps. All the pumps would be permitted to run ONLY when B3:0 = 0. Let's say pump #2 shuts down. B3:0/2 would get latched, and therefore B3:0 no longer = 0. IOW, you shut down the pumps AFTER you've recorded which on is the culprit, but it all happens in one scan, so there's really no delay.

Of course, make sure that zeroing the B3:0 word will not cause the pumps to restart automatically. It should only ALLOW them to be started in their normal fashion... (n)

beerchug

-Eric
 
Depending how your inputs are arranged, you could do stuff like monitor the value of the input word, use a mask, etc., but why bother?

Unless you're maxing memory, or scan time becomes a concern, I wouldn't bother playing the 'I can perform that function in ONE rung' game.

But it's nice to KNOW about other methods!... :nodi:

beerchug

-Eric
 
I try to look at things and figure out the most efficient way to do them.
If there is an easier shorter way, than why struggle with the long clunky way. Even though it may be more difficult for some to understand, it may be more functional and time effective to do it the more technical way. If it is something I know people have to deal with everyday like an operator does, than the cardinal rule applies "Keep it simple dummy".

I always like to see if there are 2 sides to every program.

What does "IOW" mean?
 
John, IOW = In Other Words

Very clever Philip! Probably a good guess, but we don't know for sure that John's "pump on" bits are in I:0.

I would think you'd want to mask only the 5 bits in question first, no?... :unsure:

beerchug

-Eric
 
Sorry guys but your going to have to explain phillips example. I see that it is an exclusive or operation but I do not understand its use for my aplication.

And yes, my run confirm bits start at I:0/0 - I:0/4 good guess.

Thanks
 
Easy. Use Erics code but at the start of each rung before the monitor bit put a EQU block with the word B3:0 as source A and zero as source B.
Do not use any bit of B3:0 except for the latch of the faults.
The first fault latched will set bit B3:0.X to on which will mean the word B3:0 is not equal zero therefore no other fault bit will latch. Regards Alan
 
Last edited:
Alan's comparison idea should eliminate the need for the one-shots as well!... (y)

You could eliminate the MONITOR contacts as well if (still using Alan's idea) if you turn on B3:0/0 when you DON'T want to monitor. When B3:0/0 is ON, the comparison will be false, automatically disabling those rungs.

beerchug

-Eric
 
Regarding Philip's XOR... A -1 in the source is the same as 111111111111111 (see drewcrew's post HERE). If you XOR that with your pumps ON, the result word will contain zeros. When a pump turns OFF, the matching bit in the result word will turn ON.

This will look for a change from ON to OFF for all 16 inputs. That's why I mentioned that you might want to mask only the first 5 inputs (your pumps).

Am I right Philip?... :confused:

beerchug

-Eric
 

Similar Topics

Hello all, this is my first time working with a PLC and dealing with hardware, so please have patience with me. I have an electric rod-style...
Replies
21
Views
3,027
Hey Guys, First post here and looking through, there are a lot of people that have different expierences and practices. A little bit of my...
Replies
14
Views
2,028
Hey Guys, I have plenty of experience with AB plcs . What is a good starting point to learn about fanuc robot programming. How to get started? Is...
Replies
5
Views
2,707
I had a conversation a while back with the Product Manager of the Productivity PLC I was asking for a CPU for the Productivity 1000 Series that...
Replies
26
Views
7,801
Hello guys, the company I work for has always worked with Allen Bradley, except for small applications with Siemens, which we would now like to...
Replies
16
Views
4,694
Back
Top Bottom