Logix 5K Usage?

The Plc Kid

Member
Join Date
Feb 2009
Location
Macon, Georgia
Posts
3,233
In logix 5K is there a function to see what tags are used on a word and bit level like in logix 5 and 500?

For example I have a array of alarm DINTS and I want to see what bits of each DINT are used and which entire DINTS are used in the program.

You can cross ref each or search but that would take a while and be a real PITA. There has got to be another way right?
 
If you do a cross-ref on the entire DINT each usage of its bits will show up. But you'll still have to look through to see if a given one is used/not used. When you are assigning an alias and it will be tied to one of the bits in the DINT the selection grid shows which bits are already have an alias or are used (I'm not sure which - if I assign an alias I am also using the bit).
 
There's a usage column in the tag monitor but that only shows where the tag is used in an add on instruction. So unless I can't find it either I'm afraid there isn't one.

I feel your pain. I keep a DINT array that I use the individual bits for ONS instructions. It would be nice to quickly go to the tag monitor and see the DINT usage, rather than having the extra step of doing a cross reference to find out the next available bit I can use.
 
I feel your pain. I keep a DINT array that I use the individual bits for ONS instructions. It would be nice to quickly go to the tag monitor and see the DINT usage, rather than having the extra step of doing a cross reference to find out the next available bit I can use.

Instead of using a DINT array for individual bits, use a BOOL array. Whenever you use one, add a comment. Then when you need one, type the tag name, click on the down arrow to bring up the tag browser, open the array, and use the first one without a comment. Not as easy as RSL5 or 500, but it works.
 
That's what I thought but I thought i would ask to be sure.

@ danny.michael

Yes I could use a Bool but when you use a Bool tag you consume a entire DINT. On most projects that is not a big deal but some of mine get very large and using that many DINTS for each BOOL would chew memory fast in most of my projects.
 
Your understanding of how memory works when using BOOL is not quite accurate. If you use one BOOL, it will use one DINT. However, if you use two consecutive BOOL, it will still only use one DINT. Try creating one DINT and see how much memory it uses. Then create BOOL[32] and compare. You might be surpised.

This info comes in handy when creating UDT's. If you keep tags "lumped" together it will save memory. For example, if you have 10 BOOL, and two DINT, have the BOOL is sequence, then the DINT.
 
Nice idea. I think I'll stick with the DINT array though. I'd rather go through the extra step of doing a cross reference than having to enter a comment each time I use a bit. Also, if someone else edits the program and uses one of the BOOLs without entering a comment that wouldn't go over too well.

Instead of using a DINT array for individual bits, use a BOOL array. Whenever you use one, add a comment. Then when you need one, type the tag name, click on the down arrow to bring up the tag browser, open the array, and use the first one without a comment. Not as easy as RSL5 or 500, but it works.
 
Actually I just found this now. There isn't anything in the tag monitor but you can see which bits are used when browsing for tags in the ladder editor.

usage.jpg
 
Your understanding of how memory works when using BOOL is not quite accurate. If you use one BOOL, it will use one DINT. However, if you use two consecutive BOOL, it will still only use one DINT. Try creating one DINT and see how much memory it uses. Then create BOOL[32] and compare. You might be surpised.

This info comes in handy when creating UDT's. If you keep tags "lumped" together it will save memory. For example, if you have 10 BOOL, and two DINT, have the BOOL is sequence, then the DINT.

Bools will be optimized if you create consecutive bools in a UDT. They do not optimize if they are stand alone BOOL tags.

Bool arrays have significant disadvantages, as hashed out in countless threads here. They are often thought of as being the same things as B address in Logix5 and 500 however that is not the case. B addresses can be used in math, move, etc instructions, but Bools cannot. You cannot simply copy a BOOL array to a DINT. You can't even use them in a sequencer where you would at first think it would be a natural fit.


If you want the best of both worlds then consider using bit overlays. A bit overlay allows you to name the bits in a DINT and still handle the DINT at a word level. There is an example of a bit overlay in this post: http://www.plctalk.net/qanda/showpost.php?p=397545&postcount=4 You already use bit overlays, you probably just don't realize it, but wnen you access a timer.DN bit or .TT bit you are using a built in bit overlay that names a specific bit in word 0 of the timer. Logix5000 allows you to make custom overlays. In the example overlay Tag.State_1 and Tag.State.1 are the same bit, but the entire .State word can be used in math and MOV/CLR/COP/SQO/AND/NOT/bit shift/math/etc. instructions to manipulate all word bits at once. Since the bits all have names its self documenting as well.
 
Last edited:

Similar Topics

Could I ask what the FW column signifies on the file memory usage report on RSLogix 5.
Replies
2
Views
1,716
Hi all I am having problem with a L75 CPU which running 100 % CPU Usage. It doesn't have any Continuous Task and 50% of the CPU is taking by...
Replies
3
Views
1,777
I would like to Read the CPU Usage % information like the Task Monitor tool provides from one ControlLogix to another via a CIP Message. Comms...
Replies
12
Views
6,030
Hello, I am trying to perform the new Rockwell PlantPAx Verification checklist thing. If execution time is not varying on my tasks, but the CPU...
Replies
7
Views
2,619
Hey, I've got a PLC-5 program that I'm trying to view in RsLogix 5 and I can see that I've I (I1) and O (O0) registers in the logic, but when...
Replies
7
Views
2,232
Back
Top Bottom