Need help "capturing" a fault condition.

Dpuck

Member
Join Date
May 2015
Location
West Tn
Posts
40
I've posted a couple times here a few weeks back about a press project I'm learning on.

Well, I have a new question...

I have a "part out" detection sensor (AB ring sensor) that is both counting parts and providing die protection for parts that didn't come out.

I have a similar press that a friend wrote the code for and I've been going to his machine for help when needed.

This time, I can't figure out how he's catching the fault, and just entering his lines of code doesn't result in a functioning program.

I've got SEVERAL days of attempts in this little problem, but I haven't been able to find the solution.
 
These are the two rungs that are working in the other machine.

I don't understand how they're working though due to blatant lack of experience.

Partout fault.jpg partout fault2.jpg
 
Try this.

There's some stuff in there that I'm not done with, but if you see something that looks incomplete, mention it so I can look at it please.
 
Ok, just got off shift and took a quick moment to look this over.

Here is what I see, correct me if I am off the mark as you know the process of this program and I don't.

Lets see if I can word this so you can follow along. I made the parts you need to follow BOLD.

LAD #2 Rung #29
Output B3:0/2 OTE is what you need to be True (1) in order to see that there is a fault. (Correct, this is what you are trying to achieve?)

In order for this to happen XIC I:0/3 (Ram Retracted Prox) needs to be True (1).

Your B11:0/2 XIC (Auto Mode Selected @HMI) needs to be True (1)

Your B3:6/5 XIC (Latched Bit) needs to be True (1)

If all of these happen then your Fault output will be TRUE (1) and will only be TRUE (1) as long as the logic preceding it is true. (I think we all agree on this)

Now for the fun part:

LAD #2 Rung #28
This rung has your B3:6/5 as the Output (OTE) on this rung. (You use this instruction as a XIC condition to make your fault output true on rung 29, see above)

In order for this bit to be True you need O:0/2 XIC (Ram Retract) to be TRUE (1). And I:0/4 XIO to be TRUE (0).

LAD #4 Rung #7
O:0/2 OTE (Ram Retract) needs to have B3:0/1 XIC (Ram Retract Latch Bit) be TRUE (1) in order for it to be TRUE (1).

LAD #4 Rung #5
B3:0/1 OTL is latched TRUE (1) when B3:2/0 XIC (Single Stroke Ram Retract Command) is TRUE (1) and also B3:1/8.

LAD #2 Rung #23
Your now latched B3:0/1 XIC bit starts Timer TON T4:15 timing.
(Notice your preset is for 10/100 of 1 second)

LAD #4 Rung #6
Your Timer T4:15/DN bit now UNLATCHES your B3:0/1 OTU bit.

So in short your B3:0/1 (Ram Retract Latch bit) is only TRUE for 10/100 of 1 second. but B3:0/1 needs to be true in order for O:0/2 to be TRUE.
O:0/2 needs to be TRUE in order for B3:16/5 to be TRUE.
B3:6/5 needs to be true in order for your B3:0/2 (Partout Sensor Fault) to be TRUE.

So look back at your B3:0/1 controlling that timer 4:15/DN bit which unlatches the B3:0/1 bit that controls the timer. (see the circle)

Your time Pre-Set is so short that you will never be able to see this bit go true if it goes True at all. (And I am not so sure that the circle you have set up here is the correct way to do this anyway)

I did not put that much thought into if your Ram Retract output would ever actually be True or not by the way your logic is placed in the program, but if it is then it is probably only on for 1 scan.

Certainly does not seem like enough time to make a Ram actually Retract, and if your Ram never retracts then how is your Ram Retracted Prox (the first conditional instruction on LAD2 Rung 29) ever going to be true?

Again I only put a few minutes into looking at your program but this is what jumped out at me right away.

It took much longer to type up this explanation than it did to find what I am telling you. (Sorry for the long winded crazy train explanation)

Again if I am wrong then accept my apology up front.

There are more conditions to your program and to this problem in general but what I have said here should point out some problems with it in Auto mode anyway.

Personally I think you got way too many steps involved in what you are trying to do, but like I said earlier "You know the processes and I don't".

Good luck my friend.

BCS
 
Last edited:
Well I kept thinking about how I gave your program the quick once over and then threw out a Loooong comment and could not help but feel that was not a prudent thing to do, could not sleep because of it. So I came back down to the shop and gave it another look.

I now see how you are using the B3:6/5 to seal itself True and you have a reset on the HMI.

So please disregard my last Loooong winded post as it was all hot air.
Sorry about that.

Now I am really curious about this, will look some more but will be more sure of myself before I comment again.

Regards,
BCS
 
Hello again, I will try to be a bit more humble and TRY to keep this shorter, but I have some questions for you.

When you say you are not able to "Capture the Fault" what exactly do you mean?

Is there actually a fault happening? (such as the part is not actually out but you are not getting this B3:0/2 (Partout Sensor Fault) bit to come true?)

How long does it take for your Ram to retract when you make O:0/2 (Ram Retract) Output 1?
(You only have it true for 10/100 of a second, please explain how this ram works)

Your "Part-out Ring Sensor I:0/7 instruction, when is this supposed to be a 1, when there is a part present or when there is no part present?

It would seem that you are not sealing in the B3:6/5 Latch bit due to timing between O:0/2 and B3:6/4 on Lad2 Rung 28.

Check your timer presets and how they affect the above bits. (T4:15 and T4:7)

Also give this a try:
On Lad2 Rung 29.... insert a branch extension around the output B3:0/2.
Then put a ADD instruction on this branch extension.
Make it just like I have shown below.
If N7:9 gets to a value of anything but 0 then we know that the output is becoming True but not staying True.
But if N7:9 value stays 0 then we know the rung is never becoming true.

This may help pin-pointing your problem.

See below and again I apologize for my first post, don't know what I was thinking. (or more like I was NOT thinking) :)

BCS

Fault Add.jpg
 
Last edited:

Similar Topics

Hello nice to meet you, im new in here, I'm currently trying to convert code written in STL for a S7-400 to SCL for an S7-1500, because when i run...
Replies
5
Views
253
Hello, I am programming in S7-1500, V17. I have some blocks from a drive manufacturer that are not compiling and giving me an error "Invalid...
Replies
2
Views
264
Hi all, I’m new to programming and want to write a simple routine. Push start button, turns on sensor. 2 second delay before anymore logic read...
Replies
1
Views
273
Hi guys, I have no experience when working with AllenBradley PLC, but I hope someone could clarify the result of multiplication shown in the...
Replies
14
Views
2,101
Back
Top Bottom