ControlLogix alias

Anderman123

Member
Join Date
Feb 2007
Location
WV
Posts
3
Hey guys,

I am programming a ControlLogix processor and have an alias question. Can I make an alias that points to only part of a DINT? I would like an alias that points to the first 8 bits of an output (and then another to the second 8 bits).

Thanks for your help.
 
Not directly, as far as I can tell. Since you can't directly make a single byte in a DINT it's own tag you can't alias it.

However, you could copy (COP) the DINT to a SINT array and alias the to the elements in the SINT array with other SINTs.

Keith
 
Hello Anderman123;

This is from a RSLogix5000 program we use:
Clogix_AliasInt.jpg



As you can see, the individual bits that make up the INT-type tag are not available for aliasing (greyed-out).
If feasable, best would be to make a small logic that would move the 8 LSB bits into a new tag (AND the value with 0F and copy); then move the 8 MSB bits to another tag (BSR times 8, copy); the new tags can be aliased.

Hope this helps,
Daniel Chartier

Edit: Kamenges, your solution is a lot simpler than mine Congrats!
 
Last edited:
Keith,
Rather than doing it that way (unless I have some absolute reason to want to define up a bunch of alias tags), make yourself a UDT of 32 bools. You can give each member a unique name and comment. Then create an instance of that UDT, and COP the DINT to it. I use that all the time for breaking down status bits coming from drives (and for sending command words).


kamenges said:
Not directly, as far as I can tell. Since you can't directly make a single byte in a DINT it's own tag you can't alias it.

However, you could copy (COP) the DINT to a SINT array and alias the to the elements in the SINT array with other SINTs.

Keith
 
You see, that's why they don't let me go out and talk to customers. I get way too focused on the question. I ASSUMED (BAD!!! BAD!!!) that the OP was referring to a single DINT and wanted only the SINTs. It is more likely that they have a larger number of related DINTs. As rdast stated, in that case a UDT would be more efficient from a development standpoint, and it is basically self-documenting.Keith
 
Group,

I have some old 1771 racks with 2 slot addressing. I was hoping to divide up the bits for each card without any logic.
Thanks for the Ideas.
 
You won't be able to get this done without logic.

In ControlLogix, I would recommend looking into the BTD instruction(bit field distribute), for simplicity, and it is easy on the eyes. You can then take a DINT, specify which bits to send to your desitination tag. You can even put both instructions to move a DINT to 2 SINT's on a single rung.
 
You are stuck with some logic, but, er, so?
If it bothers you, put it in a subroutine somewhere so you don't have to look at it all the time.

A single COP instruction per I/O module really isn't bad. I typically buffer all my I/O anyway, so this would land naturally in the "Scan_Physical_Inputs" / "Update_Physical_Outputs" subroutines.

Anderman123 said:
Group,

I have some old 1771 racks with 2 slot addressing. I was hoping to divide up the bits for each card without any logic.
Thanks for the Ideas.
 

Similar Topics

I am working on a controllogix PLC and creating a new Tag ( Alias for a local 32 way Output ) , when I go to create the tag using the popup box...
Replies
6
Views
2,305
I'm new to AB and I'm running into a lot of things people tell me can't be done in AB that actually CAN be done, so I thought I'd ask here if...
Replies
3
Views
4,992
Hi, How I can use in the TASK#2 a tag created in the TASK#1? I try with alias task but when you create an alias tag you can only refer to tags in...
Replies
3
Views
6,862
Why does the controllogix redundancy modules use a single mode fiber vs multimode fiber?
Replies
1
Views
86
Hello, I have two 16 point input cards and 1 16 point output card showing module faulted on my IO tree in Logix Designer. The fault code is...
Replies
7
Views
215
Back
Top Bottom