A faulted MicroLogix 1500 shows it first on its status indicators; the error code itself is in status file word S:6. This article explains how to read both, how to handle the common cases (battery, memory module, expansion I/O, missing operating system) and how to return the controller to RUN safely, following Rockwell manuals 1764-UM001D and 1762-RM001.
How the fault shows
The FAULT indicator is the main signal. Rockwell's status indicator table (1764-UM001D, Appendix C, Table 38, p. 89) lists these states:
- FAULT flashing red: faulted user program (application fault); the code is in S:6.
- FAULT steady red: processor hardware fault or critical fault.
- RUN flashing green: not in Run because a memory module transfer is in progress. Not a fault.
- BAT. LO steady red: battery needs replacing.
- RUN, FORCE and FAULT flashing together: no valid operating system (OS), or an OS download failed (Appendix D, p. 93).
Bit S:1/13 (Major Error Halted) is set when the controller stops on a major fault and must be cleared before it will run again.
Word S:6 holds the major error code, read in hex. There are two ways to read it:
- Online with RSLogix 500, in the status file.
- On the Data Access Tool (1764-DAT). Every 10 seconds the DAT checks for a controller fault; if there is one it shows "FL" and the value of S2:6 as four hex digits followed by H (Chapter 5, p. 70). ESC only hides it on the DAT, and a hidden fault is not shown again, so write the code down at once.
The manual writes both S:6 and S2:6 (and S:1/13 and S2:1/13) for the same status file word and bit.
1764-UM001D does not explain each S:6 code; it refers to 1762-RM001 (MicroLogix 1200 and MicroLogix 1500 Instruction Set Reference Manual), which gives each fault message with its cause and corrective action (Appendix C, "Fault Messages", p. 92). The common codes are summarized in "Common S:6 error codes" below. Look the value up before changing anything.
Common fault situations on a MicroLogix 1500
| Indication / code | What it means | Usual causes | What to check |
|---|---|---|---|
| All indicators off | No input power, or power supply error | No line power or bad power connections; supply overloaded (can be intermittent with output load and temperature) | Line voltage and connections at the controller; power loading (Appendix F) |
| POWER + FAULT steady | Hardware fault | Processor hardware error; loose wiring | Tighten connections, cycle power; if it stays, the hardware has failed |
| POWER on, FAULT flashing | Application fault (hardware or software major fault) | Depends on the S:6 code | Read S:6, look it up in the code table below (or 1762-RM001), fix the cause, clear S:1/13 |
| S:6 = FF00…FF0F | Major fault raised by the program itself | Program wrote its own value to S:6 and set S:1/13 | Find the logic that writes S:6 and the condition behind it |
| RUN, FORCE, FAULT flashing | Missing or corrupt OS | Interrupted or corrupt OS download | Reload the OS with ControlFLASH (see Recovery steps) |
| RUN flashing green | Memory module transfer in progress | Program being copied to or from the module | Wait; removing the module mid-transfer can corrupt data (Chapter 6, p. 75) |
| Will not enter Run, memory module fitted | Program Compare enabled (S:2/9) | Program in the module differs from the one in the controller | Compare the two programs; check S:2/9 (p. 74) |
| BAT. LO red | Processor battery low | Battery exhausted | Fit a 1747-BA now: after the indicator lights, the battery lasts at least 14 days (1764-LSP) or 7 days (1764-LRP) (Appendix B, p. 85) |
| Bit RTC:0/BL = 1 | Real-time clock (RTC) module battery low | RTC battery is internal and not replaceable | Replace the RTC module within 14 days, or RTC data may be lost at power-off (p. 74) |
| Expansion I/O error | I/O bus or module failure | Module, cable, end cap, bank power supply | Checks below (Chapter 1, p. 19); specific S:6 codes (0021, 0070/0080, xx71…xx8C) in the code table below |
| Watchdog fault | Watchdog ran past its programmed time | A cycle did not finish within the watchdog time | S:6 = 0022; see the code table below (Glossary, p. 114) |
| DAT "Err 00" | DAT lost communication for more than 3 seconds | Communication traffic | Add SVC instructions to the program; reinsert the DAT |
| DAT "Err 08" / "Err 09" | Controller or file owned by another device | Another device holds ownership | Release it there; Err 08 can follow a download that changed comms settings |
| DAT "Err 01…07", "Err 31…34" | Internal DAT error | Failed DAT | Reinsert; if it persists, replace the DAT (Chapter 5, Table 25, p. 71) |
DAT "Err xx" codes are faults of the DAT itself, not controller S:6 codes.
Common S:6 error codes
The table below summarizes the S:6 major error codes that MicroLogix 1500 maintenance engineers meet most often, from 1762-RM001H (July 2014), Appendix D "Fault Messages and Error Codes", error code table pp.414–421. Codes are in hex as the manual writes them; code names are kept in English. For the full list, including codes that apply only to the MicroLogix 1200 and the HSC, PTO, PWM, STI and EII codes, see the manual.
The last column gives the fault class as the manual defines it (pp.236–237, p. 414):
- Recoverable: caused by the program; the fault routine (the subroutine whose file number is in S:29) can deal with it and clear S:1/13 so the controller carries on.
- Non-Recoverable: also caused by the program; the fault routine still runs but cannot clear the fault.
- Non-User: other conditions that stop program execution; the fault routine does not run.
| S:6 code (hex) | What it means | Usual causes | What to check / recovery |
|---|---|---|---|
| 0001 (p. 414) | NVRAM ERROR: memory error; the controller has loaded the default program in place of the user program | Power lost during a download or a transfer from the memory module; RAM failed its integrity test | Non-User. Download or transfer the program again; check the battery is connected (MicroLogix 1500); if it recurs, contact Rockwell |
| 0002 (p. 414) | UNEXPECTED RESET: the controller restarted unexpectedly; on a MicroLogix 1500 the default program is loaded | Electrically noisy environment, or an internal hardware failure | Non-User. Review grounding and surge suppressors against the user manual; check the battery is connected; if it recurs, contact Rockwell |
| 0003 / 0007 (pp.414–415) | MEMORY MODULE USER PROGRAM IS CORRUPT / MEMORY MODULE TRANSFER ERROR: the program in the memory module is corrupt (0003), or a transfer through the module failed (0007) | Memory module memory error (0003 can also appear on the change to Run); transfer failing partway | Non-User. 0003: program the module again; 0007: retry the transfer. If it persists, replace the memory module |
| 0004 (p. 414) | MEMORY INTEGRITY ERROR: ROM or RAM data was corrupted while the controller was powered | No specific cause given; the corrective actions point to noise and grounding | Non-User. Cycle power, download the program again and start up; review grounding and surge suppressors; if it recurs, contact Rockwell |
| 0008 / 0009 (p. 415) | FATAL INTERNAL SOFTWARE ERROR / FATAL INTERNAL HARDWARE ERROR: an unexpected software (0008) or hardware (0009) error inside the controller | Not specified; the corrective actions point to noise and grounding | Non-User. Cycle power, download the program again, re-initialize the data needed and start up; review grounding and surge suppressors; if it recurs, contact Rockwell |
| 000A (p. 415) | OS MISSING OR CORRUPT: the operating system the program needs is corrupt or absent | Corrupt or missing OS (see the missing-OS case in the table above) | Non-User. Download a new OS with ControlFLASH; ask Rockwell which OS versions suit the controller |
| 000B (p. 415) | BASE HARDWARE FAULT: the base unit hardware failed, or the base is not compatible with the OS | Failed base; OS not matched to the base | Non-User. Upgrade the OS with ControlFLASH; on a MicroLogix 1500, replace the base unit; ask Rockwell about a suitable OS |
| 0016 (p. 416) | STARTUP PROTECTION FAULT: the fault routine ran at power-up (because S:1/9 is set) but ended without clearing S:1/13 | S:1/9 set while the fault routine does not clear S:1/13 | Recoverable. Reset S:1/9 if the application allows and go back to RUN, or make the fault routine clear S:1/13 before it ends |
| 0017 (p. 416) | NVRAM/MEMORY MODULE USER PROGRAM MISMATCH: S:2/9 is set and the program in the memory module differs from the one in the controller | Program in the controller changed without updating the module, or the module holds a different program | Non-Recoverable. Transfer the memory module program to the controller, then change to Run |
| 0020 (p. 416) | MINOR ERROR AT END-OF-SCAN DETECTED: a minor fault bit (bits 0–7 of S:5) was still set at the end of the scan | Typical example: a math overflow or divide by zero sets S:5/0 (Overflow Trap) | Recoverable. Fix the logic causing it, clear the fault in the status file display, enter Run. To prevent it: check S:5/0 after math instructions (ADD, SUB, MUL, DIV, NEG, SCL, TOD, FRD) and clear it with an OTU on S:5/0 before END/TND (p. 399) |
| 0021 (p. 417) | EXPANSION POWER FAIL (EPF), MicroLogix 1500 only: an expansion I/O bank has lost power while the controller is still powered | Expansion bank power supply lost power; can also be a hardware failure on the bus | Non-User, self-clearing: when bank power returns the fault clears and, if it occurred in RUN, the controller re-enters RUN by itself. If the mode switch was moved during the fault, it may not return to RUN; if bank power is OK and the fault remains, switch to PROGRAM and back to RUN. Suspected bus failure: cycle power; if it recurs, contact Rockwell |
| 0022 (p. 417) | WATCHDOG TIMER EXPIRED: program scan time went past the watchdog value in S:3H | Program stuck in a loop; watchdog set below the actual scan time | Non-Recoverable. Find and fix the loop; if needed, raise S:3H (counted in 10 ms intervals, values 2–255; pp.397–398) |
| 0028 (p. 417) | INVALID OR NONEXISTENT USER FAULT ROUTINE VALUE: S:29 points to a fault routine that does not exist or to an invalid file number | File number in S:29 with no matching subroutine, or below 3 or above 255 | Non-User. Clear S:29, or create the subroutine with that file number (3 to 255) |
| 0034 (p. 418) | NEGATIVE VALUE IN TIMER PRESET OR ACCUMULATOR: a timer preset or accumulator received a negative value | Program moves a negative value (from a calculation or another word) into the preset/accumulator | Recoverable. Make sure values written to the preset/accumulator are not negative; reload the program and enter Run |
| 0050 / 0051 / 0052 (p. 419) | CONTROLLER TYPE MISMATCH / BASE TYPE MISMATCH / MINIMUM SERIES ERROR: the program configuration does not match the actual hardware (controller type; base type AWA, BWA, BXB; minimum series higher than the fitted series) | Program written for other hardware, or a base/processor replaced with a different type or lower series | Non-User. Use the hardware the program specifies, or change the program configuration to match the fitted hardware |
| 0070 / 0080 (p. 419) | EXPANSION I/O TERMINATOR REMOVED, MicroLogix 1500 only: the end cap (terminator) at the end of the expansion I/O is missing | End cap removed, loose or never fitted | 0070: Non-Recoverable; 0080: Non-User. Check the terminator on the last I/O module, then cycle power |
| xx71 / xx81 (p. 419) | EXPANSION I/O HARDWARE ERROR: the controller cannot communicate with an expansion module | Connections, cable, noise, failed module | xx71: Non-Recoverable; xx81: Non-User. Check connections; check for noise and grounding; replace the module; cycle power |
| xx79 / xx89 (pp.419–420) | EXPANSION I/O MODULE ERROR: the expansion module itself reported an error | Internal module error, depending on the module type | xx79: Non-Recoverable; xx89: Non-User. Check the I/O status file (IOS) and that module's own documentation |
| 0083 / 0084 / 0085 (pp.419–420) | MAX I/O CABLES / POWER SUPPLIES / MODULES EXCEEDED: more expansion cables, power supplies or modules than allowed | Expansion configuration beyond the limits (see the expansion I/O checks below) | Non-User. Rearrange the expansion I/O within the limits; for 0083 and 0085 the manual also lists cycling power |
| xx87 (p. 420) | I/O CONFIGURATION MISMATCH: the expansion I/O configuration in the program differs from the actual one | Module type or order differs from the program; the program declares a module that is not found; a module's configuration data is larger than the module can hold | Non-User. Correct the program's I/O configuration to match the hardware, or with power off rearrange the modules to match the program |
Reading the xx expansion I/O codes
From the footnotes to the table (p. 421):
- In codes written as xx71, xx79, xx81, xx86 to xx8C, the first two digits xx are the number of the expansion module at fault; the last two digits give the type of error. For example, S:6 = 0371 means the controller cannot communicate with module 3.
- xx = 0 means the problem cannot be traced to a specific module.
- For xx89, xx8A, xx8B and xx8C, xx is the position of the last correctly configured module plus 1, so the fault lies at the position just after that module. Read xx together with the error type to narrow it down.
Codes of the same form not in the table (pp.420–421): xx86 (module cannot communicate at the baud rate configured in the program), xx88 (input or output image words configured exceed what the module holds), xx8A (an expansion cable configured in the program is absent or of a different type), xx8B (the same, for an expansion power supply), xx8C (an object type, whether cable, power supply or module, in the program differs from what is fitted).
Checking expansion I/O (1769 Compact I/O)
From the system requirements in Chapter 1 (pp.14–16):
- An end cap (1769-ECR or 1769-ECL) is required at the end of the modules; it is not supplied with the base or processor.
- An expansion cable and power supply need OS FRN 3 or later; up to 16 modules needs FRN 6 or later, a series C or later processor and a series B or later base (Tables 4 and 5). The FRN is in word S:59.
- At most one expansion cable (two I/O banks), and one power supply per bank; bank 1 uses the base unit's supply.
- Check total power loading with Appendix F.
- Remove power before removing or inserting a module: under power, arcing and false signals can fault the controller (Chapter 2, p. 33).
Recovery steps
Rockwell's sequence for a flashing FAULT indicator (Table 39, p. 90; Figure 46, p. 91):
- Read and record S:6 before anything else.
- Look the code up (code table above, or 1762-RM001) and remove the condition causing it.
- Clear the Major Error Halted bit, S:1/13.
- Try to enter Run (or a REM test mode). If it fails, repeat or contact Rockwell or your distributor.
- Test and verify system operation.
Automatic clearing at power-up. With S:1/8 (Fault Override at Power-up) set, cycling power clears the fault; with S2:1/12 (Mode Behavior) also set, the controller goes to RUN on every power cycle. If the condition remains, it faults again (p. 92). Check whether the machine has these bits set: if so, it can restart as soon as power returns.
Fault routine. For recoverable user faults, a fault subroutine in the program can correct the problem and clear S:1/13; it does not run for non-user faults (p. 92).
Missing or corrupt OS. Reload the OS with ControlFLASH, using firmware from Rockwell's PCDC site, with the controller in default communications (Communications Toggle push button, DCOMM on) and in Program mode. Installing a new OS deletes the user program, so have a backup ready (Appendix D, p. 93).
Safety: clearing a fault and returning to Run re-energizes outputs, and the machine can move at once. Do it only once the cause is understood and the site's lockout and permit-to-work rules are followed.
When it is hardware
- POWER and FAULT still steady after tightening wiring and cycling power: contact Rockwell (Table 39).
- A series A base cannot be field-upgraded to series B (p. 16); if the expansion configuration needs series B, the base must be replaced.
What to record before calling for support
Rockwell asks for (p. 92):
- Controller type, and the series and revision of the base unit.
- Series, revision and FRN of the processor (on its underside).
- Indicator status.
- The error code in S2:6.
Also have a copy of the RSLogix 500 program, the list of expansion modules in order, and when the fault appears (at power-up, while running, after a module change). For an engineer on site: request support.
MicroLogix 1500 is a legacy platform
The firmware table in 1764-UM001D (Table 3, p. 14) dates the first 1764-LSP release to February 1999 and the last listed series C release to September 2001; programs are written in RSLogix 500. This is a legacy platform. Once the immediate fault is fixed, plan its replacement against the lifecycle status Rockwell publishes: the status of each catalog number in use (processor, base, memory module, 1769 modules), the spares left, and the path for the program to a current platform.
For ControlLogix or CompactLogix faults, see Logix major fault codes: reading Type and Code.
Frequently asked questions
Where do you read the fault code on a MicroLogix 1500?
The major error code is in status file word S:6, read as hex. You can view it online in RSLogix 500, or on the Data Access Tool (1764-DAT): when there is a fault, the DAT shows "FL" and the value of S2:6 as four hex digits followed by H.
What does a flashing red FAULT indicator mean on a MicroLogix 1500?
It is an application fault, with the code in S:6; a steady red FAULT is a processor hardware error or critical fault. Rockwell's sequence is to read and record S:6, look the code up and remove the condition causing it, clear bit S:1/13, then put the controller into Run.
What is error 0022 on a MicroLogix 1500?
0022 (WATCHDOG TIMER EXPIRED) means the program scan time went past the watchdog value in S:3H, usually because the program is stuck in a loop or the watchdog is set below the actual scan time. Find and fix the loop; if needed, raise S:3H (counted in 10 ms intervals, values 2–255).
What does error code xx71 mean on a MicroLogix 1500?
xx71 (EXPANSION I/O HARDWARE ERROR) means the controller cannot communicate with an expansion module, where xx is the number of the faulted module; for example S:6 = 0371 points to module 3. Check connections, noise and grounding, replace the module if needed, then cycle power.
How long does the battery last after BAT. LO lights on a MicroLogix 1500?
A red BAT. LO indicator means the processor battery needs replacing; fit a 1747-BA now. After the indicator lights, the battery lasts at least 14 days on a 1764-LSP or 7 days on a 1764-LRP.
Sources
- Rockwell Automation, 1764-UM001D-EN-P, MicroLogix 1500 Programmable Controllers User Manual, 05/2024 — Chapter 1 (Tables 3–5, pp. 14–16; "Expansion I/O Power Failure", p. 19); Chapter 2 (p. 33); Chapter 5 (DAT, pp. 70–71, Table 25); Chapter 6 (RTC and memory modules, pp. 73–75); Appendix B (Lithium Battery 1747-BA, p. 85); Appendix C (Troubleshoot Your System, pp. 89–92, Tables 38 and 39, Figure 46); Appendix D (p. 93); Glossary (p. 114)
- Rockwell Automation, 1762-RM001H-EN-P, MicroLogix 1200 and MicroLogix 1500 Programmable Controllers Instruction Set Reference Manual, 07/2014 — Appendix D "Fault Messages and Error Codes" (pp. 413–421; error code table pp. 414–421, xx code footnotes p. 421); System Status File (S:3H Watchdog Scan Time pp. 397–398; S:5/0 Overflow Trap p. 399; S:6 Major Error Code p. 402); User Fault Routine (pp. 236–237); the full list of S:6 codes and expansion I/O error codes is in Appendix D
Read 25 October 2026 (1764-UM001D) and 26 October 2026 (1762-RM001H). This article paraphrases the sources and does not quote them; read the original documents before designing or working on a system. Links open the latest edition in Rockwell's literature library; page numbers refer to the edition cited.