The symptom shows up on the wire duct, not the panel. You pull a wire tagged I00114 and find two of them — one landing on a local input module, one on a DeviceNet node in a remote panel. Both were numbered rack 1, slot 1, bit 4. The electrician traces the wrong one, and the search in RSLogix returns nothing useful because the string on the tag does not exist anywhere in the program.
That is the failure. The PLC-5 numbering habit assumes a single rack address space. ControlLogix does not have one.
Check 1: Does your wire number exist as a searchable string in the program?
Start here. Open the program, hit find, and paste a wire number off a tag. Three outcomes:
- Zero hits. Your wire scheme is decorative. It exists on paper and on the wire, and nowhere in the controller. Every troubleshooting call becomes a print-reading exercise.
- One hit. That is the target. Keep the scheme.
- Multiple hits on unrelated points. Your identifier is not unique across the chassis and the network. Go to Check 2.
The native ControlLogix reference for a 16-point input module in slot 3 is Local:3:I.Data.7. That string is unique and it is searchable, but it does not fit a wire tag. Most tag printers give you about nine characters before legibility dies. Local:3:I.Data.7 is well past that. So the whole problem is compression without losing uniqueness.
Check 2: Where does the duplication come from?
Count your address spaces. A PLC-5 had one. ControlLogix gives you one per communication path.
| What you see | What is actually happening |
|---|---|
| Two "rack 1" wires in different panels | Local chassis slot numbering and remote/network device numbering are independent namespaces. Neither knows the other exists. |
| Two "slot 1" wires, different signals | The scanner module occupies a local slot; the devices behind it carry their own node numbers. You are collapsing two levels into one digit. |
| Wire number searches return nothing | You numbered against a rack/slot/bit model the controller never used. The controller stores Local:s:I.Data.b and connection-based tag names. |
| Electrician cannot map tag to online data | The compressed label has no visible relationship to the base tag it aliases. |
The mechanism: ControlLogix I/O is connection-based, not rack-mapped. Each module in the local chassis gets a tag scoped by its slot, Local:s. Anything behind a network scanner gets its data deposited into that scanner's input and output image words, indexed by whatever mapping you built in the network configuration tool. Slot 3 in the local chassis and node 3 on DeviceNet share a digit and share nothing else. Any numbering scheme built on a bare number will collide the first time you add a second network.
Check 3: Build the alias layer first
Do not number wires until the alias tags exist. The alias is what makes the short wire number searchable.
- For each local I/O module, create a controller-scoped
DINTtag. - Name it for the slot — a 16-point input module in slot 3 becomes
I3. - Check the alias box and set the "Alias For" field to
Local:3:I.Data. - Address individual points as
I3.7instead ofLocal:3:I.Data.7. - Repeat for outputs using the corresponding output data member.
Now I3.7 is a real string in the controller. Search it, find it, cross-reference it. Print it on a wire tag — four characters, room to spare.
Check 4: Give the network I/O its own number block
This is the branch that fixes the duplicate-rack-1 problem. Do not let network devices inherit slot digits.
With a DeviceNet scanner in slot 1, map the node data to a word range that no local slot will ever claim. Assign node 1 I/O to word 11, node 2 to word 12, and continue upward. Then alias each word:
Tag name: I111
Alias For: Local:1:I.Data[11]
Bit references: I111.0, I111.1, I111.2 ...
The tag name concatenates the scanner slot and the mapped word, so the first digit still tells you which scanner and the remainder tells you which node block. Node 1 lives at I111, node 2 at I112. Nothing in that range can be produced by a local slot alias, because local slot aliases are one or two digits.
Two ways to pick the word offsets:
- Offset the word numbers so mapped words start above the highest slot number you will ever populate. That is the approach above.
- Set node numbers high on the network so the node digits themselves cannot collide with slot digits. Useful when you want the wire number to carry the node address directly.
Either works. Pick one and hold it across the whole plant. Mixing them on one site puts you back where you started.
The word-mapping approach scales until the scanner image runs out or the offset math stops being readable. On a large DeviceNet segment, verify the mapped word count against the scanner's configured input and output image size before you commit the numbering, because a remap after the drawings are printed means new wire tags on every device behind that scanner.
Check 5: Will the electrician make the leap?
Run this test before the drawings go out. Hand a wire tag to someone who has never seen the program and ask them to find the point online. If they cannot get from the tag to the controller data without you, the scheme has failed its real job.
I3.7 is compact and searchable, but the jump from I3.7 to Local:3:I.Data.7 is not obvious to a field electrician. A transparent alternative keeps the structure of the native reference and abbreviates it:
Native: Local:3:I.Data.7
Wire tag: L:3:I.07
Eight characters. The colons preserve the shape of the real address, so the mapping reads as an abbreviation rather than a code. The trade-off is that L:3:I.07 is not itself a tag name — it is a human-readable compression, so a text search on the exact string will not hit unless you also create matching alias names or put the string in the module description and rung comments.
Decide which you are optimizing for:
-
Searchability first — use the alias name (
I3.7,I111.0) as the printed wire number. One string, three places: tag, drawing, program. -
Field readability first — use the abbreviated native form (
L:3:I.07) and add a cross-reference column on the I/O drawings showing the alias name next to it.
If the customer has a plant standard, that decision is already made. Use their standard.
Verify and lock the scheme
- Print the controller tag list and confirm every alias resolves to the intended base tag — a mistyped "Alias For" gives you a valid-looking tag pointing at the wrong slot.
- Sort the alias names alphabetically and scan for duplicates. Local aliases and network aliases must not overlap anywhere in the list.
- Pick five wire numbers at random from the printed tags, search each in the program, and confirm exactly one hit that lands on the expected point.
- Force a point at the module and confirm the aliased bit changes state, so you know the alias and the physical terminal agree.
- Count characters on the longest wire number in the project against your tag printer's practical limit before the print run.
- Document the scheme in one page and put it in the panel drawing set. The next person adds a chassis, and the rule has to survive that.
What wastes time: renumbering existing wires to fit a new scheme mid-project, and building the wire numbers before the I/O layout is frozen. Freeze slots and node assignments, then number.
FAQ
What happens if I reuse PLC-5 style rack/slot wire numbers on ControlLogix?
You get duplicates as soon as a second address space appears. Local chassis slots and network node numbers are independent, so a local slot 1 and a DeviceNet node 1 both produce "rack 1, slot 1" wire numbers that reference completely different signals.
What happens if I put the raw ControlLogix address on the wire tag?
Local:3:I.Data.7 runs well past the roughly nine characters most wire tag printers handle legibly. Alias to a short tag name such as I3 and label the point I3.7, or abbreviate the native form to L:3:I.07.
What happens if I move a module to a different slot after numbering?
The alias breaks — I3 still points at Local:3:I.Data, which is now a different module or an empty slot. Update the "Alias For" field, reprint the wire tags for that module, and reverify by forcing a point at the terminal.
What happens if the DeviceNet segment grows past the offset word range I picked?
New nodes map into words that collide with your existing alias names, and you are remapping in the network configuration tool with drawings already printed. Size the word offset for the final node count, not the current one, and verify it against the scanner's configured input and output image size.
What happens if I skip alias tags and just program against Local:s:I.Data?
The program still runs, but nothing on the wire matches anything searchable, and every rung reference carries the full connection string. Cross-referencing a field wire to a rung then depends entirely on the drawing set being current.
Escalate when the numbering problem stops being a naming problem: scanner image sizing, module connection faults, or mapping behavior that does not match the configuration tool. Open a case with Rockwell Automation Technical Support with your controller and scanner catalog numbers, firmware revisions, and the network configuration file. Do not spend days reverse-engineering scanner image behavior that a support engineer can confirm from the module specification.