Applicable Systems
MicroLogix
CompactLogix
ControlLogix
PowerFlex
Symptoms
The controller has detected a program fault. The OK LED turns red and the controller enters a major fault state, halting all program execution.
Possible Causes
- Watchdog timeout: the program scan time exceeded the maximum allowed duration
- Invalid indirect addressing: an array index was out of bounds, causing a memory access violation
- Divide by zero in a math block when the divisor tag value was zero
- Fault routine triggered by an I/O module fault cascading to a program fault
Troubleshooting Steps
- Step 1: Connect to the controller with the programming software and read the major fault code
The fault code identifies the specific error type and location - Step 2: Review the fault location in the program to identify the offending logic
Look for indirect addressing, math operations, and timer/counter blocks near the fault - Step 3: Fix the program logic: add bounds checking, divide-by-zero protection, or scan-time optimization
Download the corrected program to the controller - Step 4: Clear the major fault from the programming software and return the controller to RUN mode
Monitor the scan time to verify it stays within limits
How to Reset
Reset: Clear the major fault from the programming software or by cycling controller power. The controller returns to RUN mode after the program is corrected.
Common Replacement Parts
- Controller memory module: 512KB-4MB, match to model (Stores project and tags)
- Programming software license: OEM-specific (Required for program edits)
Frequently Asked Questions
- Q: What is a watchdog timeout?
A safety mechanism that monitors program scan time. If the scan exceeds the timeout (typically 500ms), the controller faults to prevent uncontrolled operation.
- Q: How do I prevent divide by zero?
Use a comparison block to check if the divisor is non-zero before the division block. Output zero or a safe value if the divisor is zero.
- Q: What is the maximum scan time?
Depends on the controller model. Typical: 0.1-1ms for compact PLCs, 10-50ms for large rack PLCs. Check the manual for the specific limit.
Source: OEM Technical Manual
Category: PLC & VFD