Allen-Bradley (now Rockwell Automation) is the dominant PLC platform in North America and has a strong presence in UK pharmaceutical, food & beverage, and automotive industries. Their Studio 5000 Logix Designer is the engineering environment for the ControlLogix, CompactLogix, and GuardLogix families.
This tutorial takes you from a blank Studio 5000 project to a working ladder logic program running on real hardware. We assume you have basic ladder logic understanding — if not, start with our Ladder Logic Programming Tutorial first.
What You Will Need
- Software: Studio 5000 Logix Designer (free trial from Rockwell)
- Hardware (optional): CompactLogix 5380 or ControlLogix 5580 for real deployment
- Alternative: Studio 5000 Emulate (virtual PLC for practice)
Understanding the Rockwell Ecosystem
Before diving in, understand the product family:
| Product | Target | Scan Rate | I/O Capacity | |---------|--------|-----------|--------------| | Micro800 | Small OEM, low cost | Moderate | < 100 | | CompactLogix 5370/5380 | Medium machines | Fast | 500–3,000 | | ControlLogix 5580 | Large systems, multi-CPU | Fastest | 3,000+ | | GuardLogix 5580 | Safety-critical | Fast | 3,000+ with SIL 3 |
Studio 5000 Logix Designer programs all the Logix family. For Micro800, use Connected Components Workbench (CCW) instead.
Step 1: Create a New Project
- Open Studio 5000 Logix Designer.
- File → New.
- Select Controller type (e.g., 1756-L83E ControlLogix).
- Firmware revision (match your hardware).
- Name the project: `Tank_Tutorial`.
- Choose a location.
You now have a blank project with the Controller Organizer on the left.
Step 2: Understand the Project Structure
Controller Organizer Tree
- Controller Tags: Global tags accessible from all programs.
- Tasks: Continuous (MainTask) or Periodic. Tasks contain Programs.
- Programs: Group related Routines. MainProgram is the default entry.
- Routines: Actual executable code (Ladder, ST, FBD, SFC).
- Data Types: User-defined and pre-built.
- I/O Configuration: Connected hardware modules.
- Add-On Instructions: Reusable custom instructions.
Tags vs DBs
Unlike Siemens, Rockwell does not use DBs. Instead:
- Controller Tags (global)
- Program Tags (local to a program)
- Tag aliases (friendly names pointing to I/O or other tags)
Step 3: Configure I/O
We'll add a 16-point input and 16-point output module for our tutorial.
- Right-click I/O Configuration → Ethernet (for CompactLogix) or 1756 Backplane (for ControlLogix).
- New Module → 1756-IB16D (16-point 24V DC digital input) → OK.
- Repeat with 1756-OB16D (16-point output).
- Give the modules names: `DI01`, `DO01`.
I/O addresses are now auto-generated: `DI01:I.Data.0`, `DI01:I.Data.1`, etc.
Step 4: Create Controller Tags
Let's create named tags for cleaner code.
- Double-click Controller Tags.
- Right-click → New Tag.
- Create these tags:
| Name | Data Type | Alias For | Description | |------|-----------|-----------|-------------| | Start_PB | BOOL | DI01:I.Data.0 | Start push button | | Stop_PB | BOOL | DI01:I.Data.1 | Stop push button (NC contact) | | Pump_Running | BOOL | DO01:O.Data.0 | Pump contactor output | | Alarm_Light | BOOL | DO01:O.Data.1 | Alarm beacon output | | Tank_Level | REAL | - | Tank level in % | | High_Level_SP | REAL | - | High level setpoint |
Step 5: Write Your First Routine
We'll write a simple pump control with alarm logic in ladder.
- Expand MainTask → MainProgram.
- Right-click → New Routine.
- Name: `PumpControl`.
- Type: Ladder Diagram.
- Double-click to open.
Rung 1: Seal-in Start/Stop
``` | Start_PB Stop_PB Pump_Running | |----| |-------|/|-------+------( )-----------| | | | | Pump_Running | | |----| |-----------------+ | ```
Place:
- XIC (Examine If Closed) Start_PB
- XIO (Examine If Open) Stop_PB (NC contact in code, matches normally-closed wiring)
- In parallel below Start_PB, XIC Pump_Running (seal-in)
- OTE (Output Energise) Pump_Running
Rung 2: High Level Alarm
``` | Tank_Level >= High_Level_SP Alarm_Light | |----[GEQ]-----------------------------( )-------| | Source A: Tank_Level | | Source B: High_Level_SP | ```
GEQ (Greater Than or Equal) compares Tank_Level to High_Level_SP; if true, energises Alarm_Light.
Rung 3: Override via HMI
``` | Manual_Alarm_Override | |----| |----------------------[UNLATCH]----------| | Alarm_Light | ```
Demonstrates latching with OTU (Output Unlatch).
Step 6: Verify and Download
- Edit → Verify Routine (Ctrl+F8) — checks for syntax errors.
- Set controller to Program mode.
- Communications → Download (or press F10).
- Confirm download and switch to Run mode.
Step 7: Online Monitoring
While online:
- Right-click a rung → Force On/Off inputs for testing.
- Open the Tag Monitor to watch values live.
- Use Trends for variables like `Tank_Level`.
- Set breakpoints with Trace feature for complex debugging.
Common Studio 5000 Instructions You Must Know
Bit Instructions
- XIC (Examine if Closed / NO contact)
- XIO (Examine if Open / NC contact)
- OTE (Output Energise)
- OTL (Output Latch / Set)
- OTU (Output Unlatch / Reset)
- ONS (One-Shot Rising edge)
Timer & Counter
- TON (Timer On-Delay)
- TOF (Timer Off-Delay)
- RTO (Retentive Timer On)
- CTU (Count Up)
- CTD (Count Down)
- RES (Reset)
Math & Comparison
- MOV (Move)
- ADD, SUB, MUL, DIV
- GEQ, LEQ, EQU, NEQ, GRT, LES
- LIM (Limit Test)
Advanced
- JSR (Jump to Subroutine)
- CPT (Compute — complex math in one instruction)
- FAL (File Arithmetic Logical — array operations)
- MSG (Message — communication)
- FBC (File Bit Comparison)
Siemens vs Rockwell: Key Mental Shifts
If you're coming from Siemens:
- No DBs. Tags live in scope (Controller or Program), not in blocks.
- No OBs — Tasks instead. MainTask runs continuously; Periodic Tasks at fixed intervals.
- Tag scope matters. Controller tags are global; Program tags are local.
- Instruction palette is richer for math. GEQ, LIM, FBC, FAL do in one instruction what takes several in TIA.
- Online editing is easier. Edit rungs live without stopping the CPU.
- Different alarm/event framework. FactoryTalk View SE is the typical SCADA partner.
Studio 5000 vs RSLogix 5000
Same product, rebranded. Studio 5000 is the current name. RSLogix is legacy terminology, but the file format and workflow are nearly identical. New installations should use Studio 5000 V34 or later.
Add-On Instructions (AOIs)
AOIs let you encapsulate reusable logic with parameters and local tags — similar to Siemens FBs.
To create:
- Right-click Add-On Instructions → New Add-On Instruction.
- Name: `StandardPump`
- Define parameters: Start, Stop, Running, Fault.
- Write the internal logic once.
- Use `StandardPump` instances across multiple programs.
This is how professional Rockwell code is structured — think modular, not monolithic.
Where to Practise
- Studio 5000 Emulate — free virtual PLC, perfect for self-study.
- EDWartens training — hands-on CompactLogix 5380 practice on our Professional Module.
- Used CompactLogix L16ER on eBay for £300–£600 — great for home lab.
- Rockwell's free learning portal — ROKStudio Training.
Next Steps
Rockwell programming is about mastering the tag-based scoping, AOIs, and Task/Program structure. Practise building your own AOIs for common equipment (pumps, motors, valves) and always structure code into clean, reusable modules.
For comparison with Siemens, read Siemens vs Allen-Bradley: Which PLC Should You Learn?.
For broader PLC skills, our Professional Module covers both Siemens TIA Portal AND Studio 5000 fundamentals — essential for engineers working in the UK market where both platforms are common.

