*Onsite right now* RSLogix500, Unlatch with no contact on the rung???

AutomationTechBrian

Lifetime Supporting Member
Join Date
Jul 2013
Location
St. Cloud, MN
Posts
669
I'm troubleshooting a machine for a customer right now, and the output that is not working needs this bit to go high to activate the coil. But the unlatch coil doesn't have a contact before it. How does it ever latch???

Unlatch.jpg
 
Yep, they don't ever want it to come on. Leave it alone. ��

Not so..

I would first check to see if its used someplace else in the program, if not then Steve's explanation is probably true. (HMI or SCADA system)

That bit can be made true anyplace before rung 068 or anyplace after rung 068. The only time it can't be true is when rung 068 is executed. The next rung could turn it back on (or a HMI could).

You don't have to have a latch instruction to turn the bit true. All the unlatch does is turn the bit false.

You may need to delay the unlatch or do something similar to rung 067.
 
Last edited:
I expect it’s set from a HMI. It could also be written by a message from another PLC. Another possibility is a value could be MOV’d or masked moved to B10:5 as an integer with /14 being the relevant bit for the shown logic.
 
B10:5/14 is an internal bit, so yes, the latch will assign a 1 to B10:5/14 on the execution of the rung with the latch, and the B10:5/14 value will be 1 until the next execution of Rung 0068 when the unlatch assigns a 0 to B10:5/14.
 
"Auto request" would not come from the HMI in my opinion. Maybe from an external controller, but I also doubt this.

I am thinking rung 0068 is missing an XIC "left slide extended switch" or similar. Maybe the cylinder was no longer used or made purely manual. The auto bit OTL was deleted and the input was removed or re-purposed. Is this a working machine? Was this particular cylinder actually being used?
 
There is a latch coil... so does the latch over ride the unlatch.
Where does the latch coil occur in the program?
The bit B10:5/14 will be true for every rung from the rung where the latch coil is true until rung 68. The latch coil could be earlier than rung 68 or after it.

Case 1: The latch coil is earlier in the program than rung 68, for the sake of an example let's say rung 50

The bit will be off from rung 68 to rung to the end of the program. It will also be off from rung 0 to rung 50. From rung 51 to rung 68 it will be in the state determined by the logic in rung 50.

Case 2: The latch coil is later in the program than rung 68, for the sake of an example let's say rung 75

The bit will be off from rung 68 to rung 75. For all other rungs in the program the bit will be in the state determined by the logic in rung 75.
 
There is a latch coil... so does the latch over ride the unlatch.

I think about Siemens S/R... if Reset is high, you can't set it.
Sure you can!

SIE works on order of operations. Rockwell's OTL/OTU work differently depending on which controller you use (there's a thread around here somewhere that explains it).

Set/Reset is a poor analogue for OTL/OTU for this reason. Set/reset are executed immediately, in network, in order, 100% of the time, so I can Reset then Set then Reset in separate networks and the bit dances between 0 and 1. This also happens with the SR and RS instructions when both pins are true, though the detail appears irrelevant.
 
Last edited:
Or maybe all of the auto requests are being used at the word level, rather than the bit level.

Say moving a number into B10:5.

I would search for just B10:5 and see if there are any MOV instructions.

Cheers

Mark
 
"Auto request" would not come from the HMI in my opinion. Maybe from an external controller, but I also doubt this.
Why not? Plenty of process control libraries have this option.

How does it ever latch???

There is a latch on that contact already, it's the parallel branch under it. I call it a latch, although I've heard the term seal in. If that particular function isn't "sticking", I'd look deeper into that parallel branch under that contact.

Also, as a side note, I always check for the value of the variable before unlatching it if it's coming from an HMI command. There's no way, usually, of guaranteeing that the command won't be issued between reading the bit and unlatching it leading to weird random (and not frequent) issues.
 
Looking at the logic & the symbols this is an auto request as the other line is manual, so it almost certainly (or should be set elsewhere in the program either directly or indirectly (perhaps at word level or indirect address), if the "latch" of this bit is before the logic shown it will always be true if told so when used in the rung shown, if set before then it will be true when it reaches this rung, even though it is reset afterwards the solenoid it is driving is still true on I/O update (assume SLC so cyclic update), if on next scan it is true then the solenoid will still be energised. This is certainly bad practice the other thing it might be that the solenoid is a double acting 5 port so it may only need a pulse (although a bit iffy triggering it in a single scan).
I do suggest doing a cross reference to see if it appears elsewhere in bit or word level.
 
I just have a minute while eating lunch...

This is still unresolved. I'll go back on Friday to work on it some more.

I chose the air solenoid cylinders because they were not activating in "Auto" but could be activated in manual. ...seems like a good path to the problem.

This same combination happens for all 3 of the main/larger air cylinders. "Find All" for that all 3 returns three incidences... A latch, an unlatch, and XIC.

All 3 have an unlatch without a contact on the rung. This machine has been running successfully for several years. It uses a Micro Logix 1400. I don't get it. I would never write it like this. I need to hook up a demo in my shop and see if it even works... I have a SLC 5/05 on the shelf.

The word instruction is a good idea. I should have thought of that... been there before! It definitely is not coming from the HMI... it's part of the assembly program.

Thanks, everyone. There's more I would add if I had the time. I'll chime in later this evening. My schedule has been crazy this year. Not complaining, though... could be worse!
 

Similar Topics

I'm troubleshooting a speed issue in Profibus right now. I can't remember the decimal value needed for 1800 rpm in profibus. Also, what about...
Replies
2
Views
1,928
Hi all, I was just wondering what a reasonable pay is for a day working on a customers site, either troubleshooting or commissioning. I have a...
Replies
18
Views
6,619
See the Codesys LD program below; I would expect Rungs 2 and 3 to produce functionally identical results, but they do not. Does anyone have any...
Replies
36
Views
2,024
Hi All, I have a programming background but have never used a PLC. I have what I think is a simple automation project however Im not sure of the...
Replies
19
Views
1,853
Back
Top Bottom