Mysterious Controllogix tag!

tomalbright

Member
Join Date
May 2006
Location
Gonzales, LA
Posts
691
When I have a problem, it's usually a good one... I saw this today while looking for something else. It defies explanation. Pics taken from a PLC that is online.

The actual tag information:
attachment.php


The "ZZZZZZZZZZ" found when cross referencing:

attachment.php


This is in the "Huh? wha?" category. Any ideas? Devicenet is involved, but the tag not showing is screwy. With the "Zs" almost looks like somebody snuck something in.

(pics below are the actual files, sorry)

dnet_49.JPG plc_zzzz.JPG
 
I've seen those Zzzzzz when I export a UDT & import it back in after altering it in the notepad editor...........
 
It doesn't show up in the tags, only in the cross reference. If it isn't in the tag list, IT DOESN'T EXIST!

...but there it is... the UDT thing might be an issue, I'm sure this was edited offline initially. My Logix version is 15.02.
 
At first I was going to say it looked like someone botched a bit overlay, but you said version 15.02. I don't think v15 supports overlays. When you try to open the UDT for editing do you get an overlay warning?
 
No problems editing - data type is BOOL, style is decimal. Style is Motor_DNETWrite. This isn't causing any problem, I found it looking for something else. The "why" escapes me.

FYI, I found it on some other tags in this group, too.
 
Last edited:
UDT's cannot and do not store single bools ever. Any time you add a BOOL into a UDT, it creates a phantom SINT value.

Export the program to an L5K file, and you can see where these come from. They also will appear in an L5X file, but the XML is a royal pain to deal with compared to the L5K version.

A typical member of a UDT that has bools is defined as follows for me:

Code:
        SINT ZZZZZZZZZZCmd_Word_80 (Hidden := 1);
        BIT Drv_Enab ZZZZZZZZZZCmd_Word_80 : 0 (Description := "True = Drive Enabled");
        BIT Rem_Res ZZZZZZZZZZCmd_Word_80 : 1 (Description := "True = Trip Reset");
        BIT Direction ZZZZZZZZZZCmd_Word_80 : 2 (Description := "True = Reverse");
        BIT Jog ZZZZZZZZZZCmd_Word_80 : 3 (Description := "True = Drive Jog");
        BIT Run ZZZZZZZZZZCmd_Word_80 : 4 (Description := "True = Drive Run");
        BIT Torq_Mode ZZZZZZZZZZCmd_Word_80 : 5 (Description := "True = Torque demand Isolate");
        BIT Bit_06 ZZZZZZZZZZCmd_Word_80 : 6;
        BIT Bit_07 ZZZZZZZZZZCmd_Word_80 : 7;

Note that the hidden word (SINT ZZZZZZZZZZCmd_Word_80) doesn't show up at all in tag listings, as it has the 'Hidden' state set to 'true'.

In the XML Export, each member can have an attribute for hidden as well.

If you play with the UDT in a text editor, especially the XML version, you have a lot of control over it. I do that a lot in order to have UDT members that act like a union (in C). Define a name, instead of 'SINT ZZZZZZZZZZCmd_Word_80' to start. I usually use 'Data', or 'Status' or something that makes sense, make it non-hidden, and then define the bits up individually after.

That way I can refer either to the whole word at a time (DINT's work as well), or individual bits. For things like sequencers, that is incredibly useful. The drawback, is that once you play with the definition in a text editor, you can no longer edit it inside of Logix5000.
 
To echo what rdrast said, when using booleans in a UDT group them all together within the UDT definition, that way RSLogix will group them into a single word. Whether you define 1 bool or 32 bools in a row, the memory size of the UDT will be the same as long as the bools are grouped together within the UDT.

Search on key phrase "bit overlay" +UDT for more detail on using a DINT and naming the individual bits within the DINT.
 
I think tomalbright gets the overlay UDT stuff. He's just wondering why the enveloping tag is not showing up in the tag listing but is on an xref. When I have used an overlay UDT the enveloping SINT/INT/DINT shows up in the tag listing.

Since 15 doesn't have UDT import could it have been made on a higher level, importing the modified UDT and a tag created, then the full project exported to L5k and edited down to version 15?
 
Last edited:
At GM, we would preface a tag with a "z" to show that it was part of the custom UDT's developed by CCRW.
 
I think tomalbright gets the overlay UDT stuff. He's just wondering why the enveloping tag is not showing up in the tag listing but is on an xref. When I have used an overlay UDT the enveloping SINT/INT/DINT shows up in the tag listing.

Even if the tags are hidden, they can still be accessed and used. (Granted, I haven't looked through the OP's program, but just did the same in one of my own).

As long as I know how the hidden tag is named, I can reference and use it in my program. When I do, it shows up in the cross reference, as well as any bits of that tag that are used, but it does not show up in the tag listing.

From the OP's snippet, it seems to be the base tag defined for DeviceNet comms, so I'd guess that it was auto-generated by the DeviceNet Tagname Generator, and is actually the first element of the group being written out to DeviceNet.
 

Similar Topics

Ok. Riddle me this one. I have a machine that's been running for a couple of years. It is outfitted with a AB 1768-L43S Processor with a...
Replies
33
Views
11,425
Hi all, Why do I get these jobs! We have a customer who has imported a new multi axis stacking machine. The machine is minus wiring and controls...
Replies
11
Views
3,820
I had to laugh at an incident this week. I was asked through a third party if I could give a price and go to a company to take out a program...
Replies
8
Views
2,852
Has anyone ever opened a RSLogix500 .RSS file using 7-zip? Did you ever wonder why you would sometimes open a project and add a lot of code and...
Replies
24
Views
14,202
PLC-5 remote I/O rack, intermittantly faults on the remote I/O adapter. Green lite blinks, adapter fault lite is red, I/O rack fault is red...
Replies
9
Views
3,347
Back
Top Bottom