Allen Bradley I/O module has 16 inputs, but 32 tags?

defcon.klaxon

Lifetime Supporting Member
Join Date
Feb 2015
Location
Far NorCal
Posts
616
Hi guys,

I can only imagine how n00b this question is so please forgive me, but I've just started working with Allen Bradley Logix PLCs (5572 in this situation) and Logix Designer software. I'm noticing that when I try to configure the various I/O modules (right now I just have Digital Input modules, 16 channel, 1756-IB16) they show up just fine in the Controller Tags section but when I expand the tags to access the individual bits, there's 32 bits total even though the module is only 16 bits. Just for fun I manually added an 8 channel module and same thing, 32 bits. I'm working through a "quick start" guide and the author doesn't mention anything about this sort of behavior, nor do his screenshots show more bits than actual channels.

When I check the settings of the module, the correct p/n is used, and in the module configuration, it only gives options for 16 channels (as you'd expect). So what could be causing so many more tags than channels? It's happening for all three of my Digital Input modules.
 
the "normal" architecture of the ControlLogix system is 32 bits wide ... they call this 32-bit thing a DINT - for "double integer" ... even if you're not using the "extra bits" the software goes ahead and defines (and shows) them anyway ... just don't worry about the "extras" that aren't used ...

note: when (IF) you work with some of the older stuff that's still out there, you'll USUALLY need to make sure that your memory table is set up for an INT ("integer") arrangement ... the older gear will choke up if you try to feed it a 32-bit DINT (which is the default allocation) ...
 
Last edited:
the "normal" architecture of the ControlLogix system is 32 bits wide ... even if you're not using the "extra bits" the software goes ahead and defines (and shows) them anyway ...

Ah ok, thanks. I noticed that the tags were DINT and that's 32 bits, but I had no idea that's how it works as default; what if I accidentally use one of those bits? Is there any way to disable these, or at least hide them? Seems very sloppy programming to me, unless there's some reason I'm not fathoming on why you would do this...many thanks for the explanation!
 
if you want to talk about "sloppy" then try this little experiment ...

check your "memory used" before and after adding a DINT - with a tagname of just one letter ...

you'll probably find that your new 32-bit DINT required 80 bytes (that's 640 bits) of memory to set up ...

now check your "memory used" before and after adding a BOOL - again with a tagname of just one letter ...

surprise ...

you'll probably find that your new 1-bit BOOL also required 80 bytes (that's another 640 bits) of memory ...

TIP: don't ask the types of questions that you're asking about ControlLogix "weirdness" ... just get on with your life ... (the "weirdness" won't ever go away - but you'll just get used to it after awhile) ...
 
if you want to talk about "sloppy" then try this little experiment ...

check your "memory used" before and after adding a DINT - with a tagname of just one letter ...

you'll probably find that your new 32-bit DINT required 80 bytes (that's 640 bits) of memory to set up ...

now check your "memory used" before and after adding a BOOL - again with a tagname of just one letter ...

surprise ...

you'll probably find that your new 1-bit BOOL also required 80 bytes (that's another 640 bits) of memory ...

Wow! That's pretty crazy.

TIP: don't ask the types of questions that you're asking about ControlLogix "weirdness" ... just get on with your life ... (the "weirdness" won't ever go away - but you'll just get used to it after awhile) ...
Oh I don't mean to ask questions in a sarcastic or facetious manner, I am just trying to figure out what to expect with the AB PLCs. I'd of course like to be aware of what I can expect as far as "weirdness", seems like every PLC has something "odd" you need to know about; but I'm not going to waste time grumbling about it, if that's just the way it is...might be nice to figure out what PLCs are "better" though, and try to stick to those when spec-ing out projects. This is the sort of thing that for me inches AB towards the "stay away" category.

In any event, thanks a bunch for the explanation!
 
Last edited:
Because Control/Compact Logix, as opposed to SLC500 or Micrologix, stores the tag names IN the PLC itself it must reserve space for the longest permitted tag name.

And it is most efficient to allocate memory in 32 bit chunks (DINTs) because the next item must begin on an appropriate boundary. Accessing by DINTs is most efficient.
 
Because Control/Compact Logix, as opposed to SLC500 or Micrologix, stores the tag names IN the PLC itself it must reserve space for the longest permitted tag name.

And it is most efficient to allocate memory in 32 bit chunks (DINTs) because the next item must begin on an appropriate boundary. Accessing by DINTs is most efficient.

So I understand the idea that you want to store everything in 32 bit chunks, that makes sense; but why show them to the user, when they'll never be used? Why not just allocate 32 bits and let the operating system internally keep track and just show the user the appropriate number of tags for the appropriate number of channels in the module?
 
Something worth mentioning at this point is that if you need a bunch of bools, add them as an array in 32 bit boundaries. An array of bools 32 bits wide will be 32 bits in length (plus overhead) but 32 individual bools will be 1024 bits in length(plus overhead).

Yes its a waste of memory but as Ron says, just deal with it. It's how it was engineered and makes sense from a higher vantage point.
 
Something worth mentioning at this point is that if you need a bunch of bools, add them as an array in 32 bit boundaries. An array of bools 32 bits wide will be 32 bits in length (plus overhead) but 32 individual bools will be 1024 bits in length(plus overhead).

Yes its a waste of memory but as Ron says, just deal with it. It's how it was engineered and makes sense from a higher vantage point.

Great piece of advice, thanks!
 
Ron Beaufort said:
TIP: don't ask the types of questions that you're asking about ControlLogix "weirdness" ... just get on with your life ... (the "weirdness" won't ever go away - but you'll just get used to it after awhile) ...

Really, this applies to the automation industry in general...sometimes all you can do is smile and nod and just remember that "the selected device is not a valid factorytalk device" actually means "you're trying to download from a networked drive and I don't like it" for next time :)
 

Similar Topics

Hi all, installed on chassis A17 an A/I from Allen-Bradley , problem is what ever I do , all channels are sticked on value 39.9 and cannot change...
Replies
1
Views
141
I am using Allen Bradley PLC 1756-L81E and EIP module 1756-EN2TR for Ethernet/IP communication. My communication works fine but in Get-Attribute...
Replies
2
Views
202
I have 1769-IF4 module and 1766 micrologix 1400 series B controller, when connecting Analogue input in module it's showing maximum values of...
Replies
4
Views
1,684
For nostalgic reasons does anyone know the model number for the DEC VMS computer that fits into the Pyramid Rack? I could only find the OS tapes...
Replies
1
Views
1,009
I have 2 identical systems that have the AB SLC500 Basic card in them. I system stopped working and the issue was traced back to the card...
Replies
15
Views
3,044
Back
Top Bottom