Studio 5000 One shots, handshake required?

einnh

Lifetime Supporting Member
Join Date
Mar 2014
Location
New England
Posts
275
I have some odd 'bugs' in one of our machines here and was wondering the following:

2016-03-28 15_19_18-Photos.png

If 'a' is toggled and b allows 'c' to latch. Is there any instance where 'c' would not latch? This seems obvious but my troubleshooting this large program has lead me to this not always occurring for some reason. Is there limitations on how the rung is scanned?

Thanks,

E
 
In that logic, C should always latch if A goes true. But it will be for only one "Fasle-to-True" transition of the XIC A. After that, if something changes the state of "C" then it will not latch again until A goes false and true again.

Is "A" a real world input? How fast is A changing state? If A is a real input, and changes State too quickly, the PLC may not register it as every being true.
 
It is a mixed bag, some are real world (physical 30mm, 24V buttons) and some are not (some are 250ms holds out of HMI MOM buttons.)
 
Last edited:
The most common problems I've run into with ONS's are:
1 - accidentally using 'b' in more than one ONS instruction
2 - not realizing that I'm immediately turning off 'c' when I don't mean to
3 - forgetting to make sure the subroutine I'm editing is actually getting run (JSR)
 
The most common problems I've run into with ONS's are:
1 - accidentally using 'b' in more than one ONS instruction
2 - not realizing that I'm immediately turning off 'c' when I don't mean to
3 - forgetting to make sure the subroutine I'm editing is actually getting run (JSR)

Thank you. I have run into item 3 in the past. I'll double check 1 and 2.
 
I’m not clear why you would have a one shot in that setup in the first place. A is going to latch C when it goes high and C won’t unlatch until something unlatches it. I typically see one shots used where you have something like a counter or something that has a process that you only want to happen once (in this case when A goes high). A discrete output is either on or off. What is the “bug” you’re seeing in your machine?
Having said that, the one shot is tied to a bit in a tag and if that bit is already high (1) when A goes high then C won’t latch but in that scenario you have an overlap in the bits in the tag which you shouldn’t have anyway. If you’re seeing an output not turning on when it should (and you have a one shot) it could be that the bit that is tied to the one shot is being held high. When I use one shot’s in Logix5000 I create a tag that is dedicated to the one shots and I make sure that I don’t use any of the bits more than once.
 
I’m not clear why you would have a one shot in that setup in the first place. A is going to latch C when it goes high and C won’t unlatch until something unlatches it. I typically see one shots used where you have something like a counter or something that has a process that you only want to happen once (in this case when A goes high). A discrete output is either on or off. What is the “bug” you’re seeing in your machine?
Having said that, the one shot is tied to a bit in a tag and if that bit is already high (1) when A goes high then C won’t latch but in that scenario you have an overlap in the bits in the tag which you shouldn’t have anyway. If you’re seeing an output not turning on when it should (and you have a one shot) it could be that the bit that is tied to the one shot is being held high. When I use one shot’s in Logix5000 I create a tag that is dedicated to the one shots and I make sure that I don’t use any of the bits more than once.

In the example 'c' would be an operating mode the operator would enable by pressing button 'a'. The reason for the one-shot is there is an instance where 'c' unlatches that I don't want the operator to confuse or bypass by holding down the button.
 
In the example 'c' would be an operating mode the operator would enable by pressing button 'a'. The reason for the one-shot is there is an instance where 'c' unlatches that I don't want the operator to confuse or bypass by holding down the button.


I still don't see much value...

So, 'c' will unlatch and the oneshot prevents the operator from holding down the button. What if he lets up on the button and presses it again? The oneshot is a Band-Aid that doesn't really solve the problem.

I think you need to reconsider your latch/unlatch condition. If the button that latches 'c' is only valid under certain conditions, add those conditions to the rung.
 
I've seen it a lot where "A" is a condition that goes high for awhile. "C" would latch and then possibly unlatch, but until the condition "A" goes false than true again.

"A" could be conveyor running and "C" could be a trigger to start looking for the first widget on the line, when the widget passes unlatch "C" and do something else. Don't repeat until conveyor starts again.

About your original question though- 2 most common things I've seen is accidentally using the same one shot tag elsewhere in the program, or accidentally firing the unlatch "C" bit when you didn't want to. Could be a sensor flicker for one scan and it's over...
 
I had a program doing strange things. I learned how to use the trending tool and was able to find what was causing some of them. A one scan sensor glitch can cause crazy results, especially in a program with sequences.
 
I still don't see much value...

So, 'c' will unlatch and the oneshot prevents the operator from holding down the button. What if he lets up on the button and presses it again? The oneshot is a Band-Aid that doesn't really solve the problem...

I have found, especially building machinery for factories, that you have to make it "Idiot Proof".

If an operator finds they can force a mode or operation by jamming a screwdriver/toothpick/knife/scrap steel/etc/etc they will.

I always use OneShots on any operator control except for Stop and E-Stop buttons.
 
I have seen HMI programmed to reset the ONS bit. Very sloppy programming. Have even seen programs that use another ONS to OTU an bunch of ONS bits. Really sloppy programming.
 

Similar Topics

Hi Everyone. Not posted on here for a long time, but I am hoping someone can help me. I am doing a differential pressure calculation in a L27ERM...
Replies
15
Views
288
Hi, how do I convert 2x Integer registers to a Real? The two integers are from Modbus registers that contain a floating point value, I need to...
Replies
2
Views
123
What is the best way to extract the hour and minute from the register that comes from Yaskawa VFD. In studio 5000 I have a register saved as INT...
Replies
3
Views
127
I have an Allen Bradley temperature switch that I am trying to use in studio 5000. I am getting the message "Unable to interpret the IODD file"...
Replies
0
Views
78
Hi all. I want to ask what may seem a stupid question, as I have a project to send live data to a Yeacode line printer which will print meterage...
Replies
10
Views
203
Back
Top Bottom