Rockwell Automation / Allen-Bradley ControlLogix / CompactLogix (Logix 5000) troubleshooting
ControlLogix, CompactLogix and the other Logix 5000 controllers report faults as a type and a code, shown in Studio 5000 Logix Designer as, for example, "Major Fault T04:C20". A major fault halts logic execution and the controller goes to faulted mode with outputs in their configured fault state, unless a fault routine clears that specific fault. Minor faults are logged but do not stop the controller.
Diagnose this with AI
Try Free PLC Fault Diagnostic Upload a photo of the alarm screen, the fault history or a data export. InduQT compares the evidence and suggests the next useful checks.
How it reports faults
- A major fault halts logic execution and the controller switches to faulted mode; the OK LED flashes red. Outputs go to their configured faulted-mode state.
- Studio 5000 Logix Designer shows the fault in Controller Properties on the Major Faults tab (and minor faults on the Minor Faults tab) as Type and Code with a description, e.g. "Major Fault T04:C20 - Program Fault: Array subscript too large, or CONTROL data type POS or LEN invalid."
- Controllers with a status display (e.g. ControlLogix 5590) also scroll a "Major Fault" message with the type and code on the controller front.
- Logic can read the fault through the Program object’s MajorFaultRecord attribute (DINT[11]) with a GSV instruction: timestamp, Type, Code and eight words of fault-specific information. Minor faults are in the FaultLog object (MinorFaultBits) and MinorFaultRecord; S:MINOR flags a minor fault from the last instruction.
- Fault handling: a program’s fault routine runs first for instruction faults (Type 4); if it does not clear the fault, the Controller Fault Handler runs; I/O (Type 3), watchdog (Type 6) and motion (Type 11) faults go to the Controller Fault Handler; Type 1 Code 1 runs the Power-Up Handler. Rockwell warns not to use fault routines to continually clear all faults.
- Fault codes 990–999 of Type 4 are reserved for user-defined major faults raised by the program itself.
Fault codes
| Code | Name |
|---|---|
| T01:C01 | Power-up fault: power lost and restored in RUN mode |
| T03:C16 | I/O fault: connection failed on a required module |
| T03:C23 | I/O fault: required connection not established before RUN |
| T04:C16 | Program fault: unknown instruction encountered |
| T04:C20 | Program fault: array subscript too large, or CONTROL POS/LEN invalid |
| T04:C31 | Program fault: JSR/RET parameter count mismatch |
| T04:C34 | Program fault: timer with a negative PRE or ACC |
| T04:C83 | Program fault: value out of range |
| T06:C01 | Watchdog fault: task watchdog expired |
| T07:C40 | Nonvolatile fault: store to nonvolatile memory failed |
| T07:C41 | Nonvolatile fault: load failed, controller type mismatch |
| T07:C42 | Nonvolatile fault: load failed, revision mismatch |
Evidence to collect
- Screenshot of Controller Properties, Major Faults tab (Type, Code, description and timestamp)
- Minor Faults tab, for events leading up to the major fault
- Program export (.ACD or L5X) at the revision running in the controller
- Controller catalog number and firmware revision; Logix Designer version
- Module Properties Connection tab of any faulted I/O module
- What the machine was doing and whether the fault followed a download, power cycle or mode change
Work on fuel trains, burners, pressure vessels and electrical equipment must be done by qualified personnel following the manufacturer’s documentation and local codes. Never bypass a safety device or interlock.