I did place a latching bit if it wasn't equal to 1000 and it never latched. I guess it is a more visual thing than anything. It just seemed odd that it also stated that it was being used on other lines when it wasn't.
Thank you for your help!
What exactly were you cross referencing in your initial screenshot? It's been cut out of the picture, but I suspect you were cross referencing an individual element of your UDT.
The AB cross reference is extremely exhaustive, sometimes to the extent that it could be described as
too all-encompassing.
For example, if I cross reference Some_Array[5], it will find not only references to Some_Array[5], but also references to Some_Array[Pointer], which could conceivably be writing to Some_Array[5] if the value of Pointer is 5. It will also find a COP instruction writing to Some_Array[0], because if the length of that COP instruction is 6 or more, it could also write to Some_Array[5].
Doesn't mean when I get to that rung I'll find any trace of Some_Array[5], nor that the rung will ever do anything involving Some_Array[5], only that it
could.
It works the same with UDT's. When you're doing a lot of stuff with UDT's, you can wind up with a lot of entries in your cross reference list when cross referencing a UDT member, even if the specific member you're interested in doesn't get involved on that rung. Sometimes it gets annoying, but for my money, I'd rather have too much detail than not enough. In this instance, look at the "Reference" column of your cross reference list.
Here, both entries in the list show that it's the base UDT being referenced. If you're looking for places that your specific UDT member is being individually addressed, you can look in that column for entries that show MyUDT.ElementOfUDT instead of just MyUDT - but as mentioned, RA will show you not only your specific element, but also anywhere that your whole UDT is being referenced.