A ControlLogix controller with a flashing red OK light can make a simple machine fault look rather serious.
Studio 5000 may show something like:
Major Fault T04:C20The first number is the fault type. The second is the fault code.
That distinction matters. Type 4 does not describe one specific problem—it identifies a family of program-related faults. The code tells you what actually happened.
A major fault stops logic execution and places the controller into a faulted state. The controller’s OK indicator normally flashes red until the fault is handled or cleared.
Safety warning: Correct the cause before clearing the fault. Depending on the keyswitch position and machine logic, clearing a major fault may immediately restart controller execution and energize outputs.
Read the Complete TXX:CXX Number
Never diagnose a ControlLogix fault using the type alone.
For example:
T04:C20means:
- T04 — Program fault
- C20 — Array subscript too large, or an invalid
.POSor.LENvalue
Meanwhile:
T04:C34is still a Type 4 program fault, but this time the problem is a timer with a negative preset or accumulated value.
Same type. Completely different repair.
Rockwell’s fault-code reference includes both major and minor faults under some of the same type numbers, so always check the complete displayed description as well as the type and code.
Type 1: Power-Up Faults
Type 1 faults are associated with controller power-up conditions.
T01:C01 — Power Restored in Run Mode
This fault can occur when the controller loses power while operating in Run mode and then powers up again.
Whether this should automatically stop the machine depends on how the application was designed. Some machines should resume automatically after a short power interruption. Others absolutely should not.
A Power-Up Handler can be created to decide what the controller should do after power is restored. Rockwell documents Type 1, Code 1 as the fault used when the controller powers up in Run or Remote Run mode and the power-up handler does not clear it.
Before clearing T01:C01, check:
- Why power was lost
- Whether drives, robots and actuators are ready
- Whether retained sequence values are still valid
- Whether restarting the machine is safe
- Whether the Power-Up Handler contains the intended recovery logic
Simply clearing the fault without checking the machine state can cause an unexpected restart.
T01:C60, C61 and C62 — Non-Recoverable Faults
These are considerably more serious.
Rockwell describes these codes as non-recoverable power-up faults. The recommended action includes saving diagnostic information to a memory card, clearing the fault, downloading the application again and contacting Rockwell Automation support with the controller’s diagnostic code.
Do not repeatedly power-cycle a controller showing one of these codes and hope it eventually behaves itself.
Record:
Controller catalog number
Firmware revision
Full T01:Cxx code
Scrolling diagnostic code
What happened before the fault
Whether the problem repeats after a downloadThe fault may indicate damaged controller memory, a firmware problem or an internal controller failure.
Type 4: Program Faults
Type 4 faults are caused by instructions or values inside the user program.
These are among the most common ControlLogix major faults because one incorrect array index, timer value or subroutine parameter can stop the controller.
T04:C20 — Array Index, POS or LEN Out of Range
This commonly occurs when indirect addressing points beyond the available elements of an array.
For example, suppose you have:
Motor_Status[0] to Motor_Status[9]The valid indexes are 0 through 9.
If the program attempts to read:
Motor_Status[10]the index is outside the defined array and can produce a major fault.
Code 20 can also be caused by an invalid .POS or .LEN value in a CONTROL structure. Rockwell’s corrective action is to keep the index and control values within their valid limits.
Do not just reset the index manually and walk away. Find the instruction that allowed it to exceed the limit.
Safer program logic may check the index first:
Index >= 0
Index < Array_SizeOnly execute the indexed instruction when both conditions are true.
T04:C83 — Value Out of Range
Code 83 is another out-of-range fault, commonly associated with Boolean arrays and bit-level addressing.
The solution is similar: find where the index is generated, determine why it exceeded the available range and limit it before the indexed instruction executes.
T04:C34 — Negative Timer PRE or ACC
Logix timer preset and accumulated values must not be negative.
This fault often appears when another instruction writes into:
Timer_1.PREor:
Timer_1.ACCThe value may come from an HMI, recipe, calculation or copied data structure.
Fix the source of the negative value rather than merely entering a positive number into the timer tag. Rockwell identifies T04:C34 as a major fault caused by a negative timer preset or accumulated value.
Other Common Type 4 Codes
| Fault | Meaning | Typical correction |
|---|---|---|
| T04:C16 | Unknown instruction | Remove or replace the unsupported instruction |
| T04:C31 | JSR, SBR or RET parameter mismatch | Correct the number and arrangement of parameters |
| T04:C42 | JMP points to a missing label | Correct the target or restore the label |
| T04:C84 | Stack overflow | Reduce routine nesting or passed parameters |
| T04:C94 | Nesting limit exceeded | Restructure the program |
| T04:C990–999 | User-defined major fault | Check the application-specific fault logic |
These meanings and corrective actions are listed in Rockwell’s Logix 5000 controller fault-code reference.
Type 6: Task Watchdog Fault
The most important Type 6 major fault is:
T06:C01 — Task watchdog expiredEvery task has a watchdog time. The task must finish executing before that timer expires.
A watchdog fault may be caused by:
- An infinite program loop
- Excessive routine execution time
- Too much logic inside one task
- A higher-priority task repeatedly interrupting it
- Poor task-priority configuration
- An abnormal increase in communication or motion processing
Rockwell’s recommended corrective actions include increasing the watchdog time, reducing task execution time, raising the affected task’s priority, simplifying higher-priority tasks or moving some code elsewhere.
Do not immediately increase the watchdog from 500 ms to several seconds just to make the fault disappear.
That may hide the symptom while leaving the real scan-time problem untouched.
Check the task’s:
Maximum scan time
Last scan time
Watchdog value
Priority
Execution period
Overlap countAlso inspect loops, large FOR instructions, repeated COP/CPS operations, Add-On Instructions and routines that recently changed.
Type 6 Codes 2 and 3
Not every Type 6 fault is a major fault.
Rockwell lists:
- T06:C02 — Periodic task overlap
- T06:C03 — Event task overlap
as minor faults. They indicate that a task was triggered again before its previous execution finished.
They may not stop the controller immediately, but they should not be ignored. Repeated overlaps can indicate that the task period is too short or that execution time is becoming excessive.
How to Clear a ControlLogix Major Fault in Studio 5000
First, place the machine in a safe condition.
Then go online with the controller and complete these steps:
- Open Controller Properties from the Online toolbar.
- Select the Major Faults tab.
- Record the complete fault type, code and description.
- Correct the actual cause.
- Select Clear Majors.
- Confirm the warning.
Rockwell notes that if the controller keyswitch is in Run mode, the controller can begin running immediately when the major fault is cleared. The software operation also clears the major fault log shown in the Major Faults tab.
That is worth repeating:
Clicking Clear Majors may restart logic immediately.
Make sure nobody is inside the machine, drives are safe and unexpected motion cannot occur.
Clearing a Fault With the Keyswitch
Rockwell also documents clearing major faults using the controller keyswitch:
- Move the keyswitch from RUN or REM to PROG.
- Move it from PROG to REM.
- Move it to RUN when you are ready to restart the program.
Moving it back to PROG instead of RUN leaves the controller out of Run mode.
The keyswitch method clears the active major fault, but it does not clear the major fault log displayed in Studio 5000.
Again, switching to RUN can start the machine. Treat it exactly like a restart command.
What If the Fault Returns Immediately?
An immediate repeat fault usually means the root cause is still present.
For a Type 4 fault, this often happens during prescan or on the first execution of the faulting routine. Check the instruction values before attempting another restart.
For a Type 6 watchdog fault, the task may exceed its watchdog as soon as it begins executing. Temporarily placing the controller in Program mode gives you time to inspect task properties and program logic without repeatedly faulting.
For a Type 1 non-recoverable fault, clearing may not be enough. A project download, firmware investigation or controller replacement may be required.
Do not get trapped in this cycle:
Clear fault
Run controller
Controller faults
Clear fault again
Run controller againAfter the second occurrence, stop resetting and start diagnosing.
Clearing Faults Automatically With a Fault Routine
Logix controllers can use fault-handling routines to inspect and selectively clear certain major faults.
Rockwell recommends different handlers for different fault conditions:
- Type 1: Power-Up Handler
- Type 4: Program Fault Routine
- Type 6: Controller Fault Handler
The fault information can be read from the MajorFaultRecord attribute using a GSV instruction. A routine can check the exact fault type and code, correct or safely handle the condition, set the Type and Code members to zero and write the record back using an SSV instruction.
This should be done selectively.
Do not create a routine that blindly clears every major fault. Rockwell specifically warns against continually clearing all controller faults.
A fault routine that hides serious programming, I/O or watchdog problems can make a machine unpredictable—and much harder to troubleshoot later.
Final Checklist
Before returning the controller to Run mode, confirm:
[ ] Full TXX:CXX code recorded
[ ] Root cause identified
[ ] Faulting instruction or condition corrected
[ ] Machine area is clear
[ ] Drives and actuators are in a safe state
[ ] Controller task and program values checked
[ ] Correct project is online
[ ] Restart has been communicated to affected personnelA ControlLogix major fault is not just an error message to erase.
The fault tells you which part of the controller’s operation failed. Read the complete Type and Code, correct the condition, and only then clear it.
