7. PLC Addressing: Rack/Slot vs Tag-Based ( 7 of 35 )

PLC Addressing: Rack/Slot vs Tag-Based
In a PLC system, every input, output, and internal memory location needs a way to be identified by the controller.
This identification method is called addressing.
In simple words:
PLC addressing tells the controller where a signal or data value is located.For example, the PLC needs to know:
Where is the Start pushbutton connected?
Where is the Stop pushbutton connected?
Where is the motor starter output connected?
Where is the analog pressure signal stored?
Where is the internal timer value located?Without addressing, the PLC program would not know which physical input, output, or memory location it is using.
According to Programmable Logic Controllers, 6th Edition, PLC addressing is the method used to identify where information about a field device or data value is stored in PLC memory. The text also explains two common styles used in Allen-Bradley systems: rack/slot-based addressing and tag-based addressing.
Why PLC Addressing Matters
When troubleshooting or programming a PLC, you must understand how the program connects to the real-world device.
Example:
Start pushbutton is wired to input terminal 0.
The PLC program must reference that input correctly.If the program is looking at the wrong input address or wrong tag, the machine may not work even if the sensor or pushbutton is wired correctly.
This is a very common troubleshooting issue.
Field device works
Input LED turns ON
But PLC logic does not respondPossible cause:
Wrong address
Wrong alias tag
Wrong module slot
Wrong input point
Wrong mapping logic
Wrong HMI tagTwo Common Addressing Styles
For Allen-Bradley PLCs, you will commonly see two addressing styles:
Rack/Slot-Based Addressing
Tag-Based AddressingThese are especially important when comparing older PLC platforms with newer Logix platforms.
1. Rack/Slot-Based Addressing
Rack/slot-based addressing identifies an input or output based on its physical location in the PLC rack.
This style is common in older Allen-Bradley systems such as:
SLC 500
MicroLogix
RSLogix 500-based systemsA typical address may look like this:
I:1/0
O:2/3At first, these addresses look strange, but they are logical once you understand the structure.
Example: I:1/0
I:1/0This means:
| Address Part | Meaning |
|---|---|
| I | Input |
| 1 | Slot number |
| 0 | Terminal / bit number |
So:
I:1/0 = Input module in slot 1, input point 0If a Start pushbutton is wired to the first input point on the input card in slot 1, the program may use:
I:1/0Example: O:2/3
O:2/3This means:
| Address Part | Meaning |
|---|---|
| O | Output |
| 2 | Slot number |
| 3 | Terminal / bit number |
So:
O:2/3 = Output module in slot 2, output point 3If a pilot light is wired to output point 3 on the output card in slot 2, the program may use:
O:2/3Rack/Slot Addressing Example
Imagine this PLC rack:
Slot 0 = Processor
Slot 1 = Digital Input Module
Slot 2 = Digital Output ModuleField Wiring
Start Pushbutton → Slot 1, Input 0
Stop Pushbutton → Slot 1, Input 1
Motor Starter → Slot 2, Output 0
Run Light → Slot 2, Output 1PLC Addresses
| Field Device | PLC Address |
|---|---|
| Start Pushbutton | I:1/0 |
| Stop Pushbutton | I:1/1 |
| Motor Starter | O:2/0 |
| Run Light | O:2/1 |
Simple logic example:
I:1/0 I:1/1 O:2/0
--] [------] [------------( )--
Start Stop_OK MotorThis style directly connects the program instruction to the physical hardware location.
Advantages of Rack/Slot Addressing
Rack/slot addressing is very direct.
Advantages:
Easy to trace physical location
Good for smaller systems
Useful when matching program to electrical drawings
Simple relationship between slot and terminal
Common in older machinesExample:
I:1/5A technician can often understand that the signal is on:
Input module
Slot 1
Point 5This helps during troubleshooting.
Disadvantages of Rack/Slot Addressing
The main disadvantage is readability.
Example:
I:1/5This tells you where the signal is located, but it does not tell you what the signal actually means.
You still need a description or electrical drawing to know whether it is:
Start pushbutton
Photoeye
Limit switch
Overload contact
Pressure switchThat is why documentation is very important in rack/slot-based programs.
2. Tag-Based Addressing
Tag-based addressing uses names instead of only physical addresses.
This style is common in modern Allen-Bradley systems such as:
ControlLogix
CompactLogix
Studio 5000 Logix Designer
RSLogix 5000Instead of using only an address like:
I:1/0you may use a meaningful tag name like:
DI_Start_PBor:
Start_PushbuttonThis makes the program much easier to read.
What Is a Tag?
A tag is a named memory location in the PLC.
A tag can represent:
A physical input
A physical output
An internal bit
A timer
A counter
An analog value
A motor command
A fault bit
A recipe value
A setpointExamples:
DI_Start_PB
DI_Stop_PB_OK
DO_Motor_Run
Motor_Run_Command
AI_Tank_Level
Tank_Level_Percent
Motor_Faulted
Auto_Mode_SelectedA good tag name explains what the signal means.
Base Tags and Alias Tags
In Studio 5000 / Logix 5000 systems, you may see base tags and alias tags.
Base Tag
A base tag is the actual memory location.
For a physical input, a base tag may look like this:
Local:1:I.Data.0This tells the controller:
Local chassis
Slot 1
Input module
Data bit 0Alias Tag
An alias tag is a friendly name that points to a base tag.
Example:
DI_Start_PB → Local:1:I.Data.0This means:
DI_Start_PB is another name for Local:1:I.Data.0Instead of using the raw hardware tag everywhere, the program can use:
DI_Start_PBThis is easier to understand.
The textbook explains that in tag-based addressing, input and output modules automatically create tags such as Local:1:I.Data.1, and alias tags can be used to create more meaningful names for the application.
Tag-Based Example
Imagine this CompactLogix system:
Slot 0 = Controller
Slot 1 = Digital Input Module
Slot 2 = Digital Output ModuleRaw Hardware Tags
| Field Device | Hardware Tag |
|---|---|
| Start Pushbutton | Local:1:I.Data.0 |
| Stop Pushbutton | Local:1:I.Data.1 |
| Motor Starter | Local:2:O.Data.0 |
| Run Light | Local:2:O.Data.1 |
Alias Tags
| Alias Tag | Points To |
|---|---|
| DI_Start_PB | Local:1:I.Data.0 |
| DI_Stop_PB_OK | Local:1:I.Data.1 |
| DO_Motor_Starter | Local:2:O.Data.0 |
| DO_Run_Light | Local:2:O.Data.1 |
Now the ladder logic can look like this:
DI_Start_PB DI_Stop_PB_OK Motor_Run_Command
----] [-------------] [--------------------( )----Then in the output mapping section:
Motor_Run_Command → DO_Motor_StarterThis is much easier to troubleshoot than raw addresses everywhere.
Rack/Slot vs Tag-Based Comparison
| Feature | Rack/Slot-Based | Tag-Based |
|---|---|---|
| Common software | RSLogix 500 | Studio 5000 / Logix Designer |
| Common PLCs | SLC 500, MicroLogix | CompactLogix, ControlLogix |
| Example input | I:1/0 | Local:1:I.Data.0 |
| Friendly name | Description/comment | Alias tag or descriptive tag |
| Readability | Lower without comments | Higher with good tag names |
| Hardware connection | Very direct | Hardware tag plus alias |
| Troubleshooting | Trace slot and point | Trace tag, alias, and hardware mapping |
Easy Way to Remember
Rack/Slot-Based
Where is it physically wired?Example:
I:1/0 = Input slot 1, point 0Tag-Based
What does the signal mean?Example:
DI_Start_PB = Start pushbutton inputBoth are important.
A good technician understands both the physical location and the logical name.
Why Alias Tags Are Useful
Alias tags make the program easier to read.
Instead of this:
Local:1:I.Data.3you can use:
DI_Box_Present_PEInstead of this:
Local:2:O.Data.5you can use:
DO_Reject_SolenoidThat means when troubleshooting online, you can quickly understand the purpose of the signal.
Important: Tag Name Does Not Prove Wiring
A tag name is only a label.
If someone creates this tag:
DI_Start_PBbut points it to the wrong hardware address, the program will still be wrong.
Example:
DI_Start_PB → Local:1:I.Data.5But the real Start button is wired to:
Local:1:I.Data.0Result:
Start button input LED may turn ON
But DI_Start_PB does not change
Machine does not startThis is why you must verify both:
Physical input point
Alias tag mappingInput Buffering vs Alias Tags
This is a very important professional concept.
There are two common methods:
Alias directly to physical input
Buffer raw input into internal tagMethod 1 — Alias Tag
Example:
DI_Start_PB alias for Local:1:I.Data.0The tag directly points to the physical input.
This is simple and common.
Method 2 — Input Buffering
Example:
Local:1:I.Data.0 → Raw_Start_PB
Raw_Start_PB → DI_Start_PBOr simply:
DI_Start_PB := Local:1:I.Data.0This method creates a buffer layer between hardware and logic.
It is very useful when you want to add:
Debounce
Signal inversion
Simulation mode
Diagnostics
Forcing strategy
Input validationProfessional Input Mapping Example
Raw Hardware Input
Local:1:I.Data.0Buffered Input
DI_Start_PBDebounced Input
DI_Start_PB_ValidLogic Use
DI_Start_PB_Valid → Start_RequestThis is more professional than using the raw hardware tag all over the program.
Professional Output Mapping Example
Do not write directly to physical outputs throughout the program.
Instead, create internal command bits.
Logic Command
Motor_Run_CommandPhysical Output Mapping
Motor_Run_Command → DO_Motor_StarterHardware Output
DO_Motor_Starter → Local:2:O.Data.0This structure helps avoid duplicate outputs and makes troubleshooting easier.
Example: Bad Addressing Problem
Problem
A photoeye detects a box, and the input LED on the PLC card turns ON, but the program does not see the box.
Possible Causes
The program is looking at the wrong input address
The alias tag points to the wrong bit
The input module slot number is wrong
The field wire is landed on a different terminal
The electrical drawing is outdated
The HMI is reading a different tag
The input is being overwritten or buffered incorrectlyTroubleshooting Steps
1. Find the physical input point.
2. Watch the input LED turn ON/OFF.
3. Go online with PLC software.
4. Monitor the raw hardware tag.
5. Check the alias tag.
6. Check the input mapping routine.
7. Check the logic using the tag.
8. Compare with the electrical drawing.Example: RSLogix 500 vs Studio 5000
RSLogix 500 Style
I:1/0 Start pushbutton
I:1/1 Stop pushbutton
O:2/0 Motor starterLadder concept:
I:1/0 I:1/1 O:2/0
--] [------] [---------( )--Studio 5000 Style
DI_Start_PB
DI_Stop_PB_OK
Motor_Run_Command
DO_Motor_StarterLadder concept:
DI_Start_PB DI_Stop_PB_OK Motor_Run_Command
----] [-------------] [--------------------( )----Output mapping:
Motor_Run_Command → DO_Motor_StarterThe Studio 5000 version is easier to understand because the tag names describe the purpose of each signal.
Common Tag Prefixes
Using consistent tag prefixes makes PLC programs cleaner.
| Prefix | Meaning | Example |
|---|---|---|
| DI_ | Digital Input | DI_Start_PB |
| DO_ | Digital Output | DO_Motor_Run |
| AI_ | Analog Input | AI_Tank_Level |
| AO_ | Analog Output | AO_VFD_SpeedRef |
| Cmd_ | Command | Cmd_Start |
| Sts_ | Status | Sts_Running |
| Alm_ | Alarm | Alm_MotorFault |
| Flt_ | Fault | Flt_Overload |
| Perm_ | Permissive | Perm_MotorStart |
| Intlk_ | Interlock | Intlk_GuardDoor |
| Req_ | Request | Req_Start |
Example motor tags:
DI_Motor_OL_OK
DI_Motor_FB
DO_Motor_Starter
Cmd_Motor_Run
Sts_Motor_Running
Flt_Motor_FailedToStart
Alm_Motor_OverloadAddressing and Electrical Drawings
PLC addressing must match the electrical drawings.
A good electrical drawing should show:
Device name
Wire number
Terminal block number
PLC module slot
PLC input or output point
PLC address or tag
Voltage type
Common referenceExample:
PB101 Start Pushbutton
Wire 1205
TB2-14
PLC Slot 1 Input 0
Tag: DI_Start_PBIf the drawing and PLC program do not match, troubleshooting becomes much harder.
Addressing and HMI Tags
The HMI also uses PLC tags.
Example:
HMI Start Button → HMI_Start_Command
PLC Motor Status → HMI displays Motor Running
PLC Fault Bit → HMI alarm displayIf the HMI points to the wrong tag, the screen may show incorrect information.
Example:
PLC motor is running
But HMI says stoppedPossible cause:
HMI is reading the wrong status tag
PLC tag was renamed
Communication shortcut is wrong
HMI tag database is outdatedAddressing is not only important inside the PLC. It is also important for HMI and SCADA systems.
Automation Technician Notes
When troubleshooting addressing problems, always follow the signal path:
Field device
↓
Terminal block
↓
PLC input/output point
↓
Raw hardware address
↓
Alias tag or buffered tag
↓
PLC logic
↓
HMI or output commandDo not assume the tag name is correct.
Verify:
Physical wiring
PLC input LED
Raw hardware tag
Alias tag
Input mapping
Logic routine
Output mapping
HMI tagThis method will help you avoid chasing the wrong problem.
Practical Troubleshooting Example
Problem
The operator presses Start, but the motor does not start.
What You See
Start pushbutton physically works.
Input LED on the PLC card turns ON.
But the Start_Request bit never turns ON.Likely Causes
DI_Start_PB alias points to the wrong input
Input mapping routine uses the wrong hardware tag
Start pushbutton is wired to a different input point
Wrong slot number in the program
The program is using another start tag
The HMI/manual mode logic is blocking the requestWhat To Do
1. Identify the real input terminal.
2. Monitor the raw hardware input.
3. Check the alias tag.
4. Check input buffering logic.
5. Search all references for DI_Start_PB.
6. Verify Start_Request logic.
7. Compare with electrical drawings.Best Practices for PLC Addressing
Use these best practices:
Use descriptive tag names.
Use consistent prefixes.
Avoid using raw hardware addresses everywhere.
Document alias tags clearly.
Map inputs in one routine.
Map outputs in one routine.
Avoid duplicate physical outputs.
Keep electrical drawings updated.
Verify HMI tags after changes.
Use comments and descriptions.A clean addressing structure makes a PLC program easier to read, troubleshoot, and maintain.
Key Terms
| Term | Meaning |
|---|---|
| Addressing | Method used to identify PLC memory or I/O locations |
| Rack/Slot Addressing | Addressing based on physical rack, slot, and terminal |
| Tag-Based Addressing | Addressing based on named memory locations |
| Base Tag | Actual memory location where data is stored |
| Alias Tag | Alternate name pointing to another tag |
| Input Image | Memory storing input status |
| Output Image | Memory storing output status |
| Hardware Tag | Auto-created tag for physical I/O module data |
| Input Mapping | Moving raw inputs into internal program tags |
| Output Mapping | Moving internal commands to physical outputs |
| DI | Digital Input |
| DO | Digital Output |
| AI | Analog Input |
| AO | Analog Output |
Final Thoughts
PLC addressing is the connection between the physical machine and the PLC program.
In older Allen-Bradley systems, you will often see rack/slot-based addresses such as:
I:1/0
O:2/1In newer Logix systems, you will see tag-based addressing such as:
Local:1:I.Data.0
DI_Start_PB
DO_Motor_StarterFor an Automation Technician, the most important skill is being able to connect the physical device to the program tag.
When you understand addressing, you can troubleshoot faster, read programs more confidently, and understand how the PLC sees the real machine.