Allen-Bradley SLC 500 Error Codes — Fault File S:1 Diagnosis with RSLogix 500: Complete Reference

Allen-Bradley SLC 500 error codes fault file S:1 diagnosis RSLogix 500 — PLC Diagnostics

More than 200,000 Allen-Bradley SLC 500 systems are estimated to still be in active service in North American manufacturing facilities, according to industry service records. The SLC 500 was discontinued in 2020 for new production, but its installed base continues running on factory floors where replacement projects are perpetually deferred. The SLC 500 fault system — the System File S (S File) with fault data in S:1 (Major Fault Word), S:6 (Error Code), S:7 (Fault Address), and S:8 (Additional Data) — is identical in structure to the MicroLogix 1400 system but with a different set of supported error codes reflecting the SLC 500’s older hardware architecture. This Allen-Bradley SLC 500 error codes fault file S:1 diagnosis RSLogix 500 guide covers the complete fault type reference with all S:1 bits, S:6 error codes, and RSLogix 500 diagnostic navigation for each fault category.



SLC 500 vs MicroLogix S:1 Architecture — Differences

The SLC 500 and MicroLogix 1400 share the same S-file architecture inherited from the PLC-5 programming model. The key differences:

SLC 500 vs MicroLogix 1400 S:1 bit definitions: The bit assignments are identical between SLC 500 and MicroLogix for bits 0–14. Bit 15 behavior differs slightly by processor model. The primary architectural differences are: – SLC 5/01 and 5/02 (older models) have a subset of S:6 error codes compared to 5/03/5/04/5/05 – SLC 5/05 (Ethernet version) adds communication-specific error codes in S:6 not present on earlier models – The SLC 500 I/O chassis addressing (rack/group/output) differs from MicroLogix’s integrated I/O addressing

The MicroLogix 1400 and SLC 500 share the same RSLogix 500 programming software, and diagnostic buffer reading steps are identical. For the MicroLogix 1400 specific fault code reference, see Allen-Bradley Micrologix 1400 Error Codes Complete List Fix.


Complete S:1 Fault Bit Reference for SLC 5/03, 5/04, 5/05

S:1 is a 16-bit integer. When the SLC 500 enters FAULT mode, the FAULT LED activates and the controller halts the scan cycle. S:1 indicates which category of fault occurred:

S:1 Bit Mask (hex) Fault Category Notes
S:1/0 0001h Reserved Not used
S:1/1 0002h Program Checksum Fault Program memory CRC mismatch
S:1/2 0004h I/O Module Fault I/O slot communication or hardware failure
S:1/3 0008h Program Fault Illegal instruction, illegal file access, bad address
S:1/4 0010h Watchdog Fault Scan cycle exceeded S:11 × 10 ms watchdog
S:1/5 0020h Power Loss Fault Mains power interruption detected during scan
S:1/6 0040h Memory Module Fault Program memory module (EEPROM) read/write error
S:1/7 0080h Communications Fault DH-485, DH+, or Ethernet communication error
S:1/8 0100h Arithmetic Fault Integer overflow, division by zero, float error
S:1/9 0200h Instruction Fault Unsupported instruction for this CPU revision
S:1/10 0400h Address Fault Indirect address exceeds valid range
S:1/11 0800h DH-485/DH+/SLC Link Fault Network node address conflict or bus error
S:1/12 1000h I/O Slot Configuration Fault Configured slot does not match detected module
S:1/13 2000h Battery Low Warning Battery low threshold reached (does not halt scan)
S:1/14 4000h Minor Fault Latch Minor fault programmatic latch (not a FAULT halt)
S:1/15 8000h User-Defined Major Fault Set by program using MSG or SFC-equivalent

Reading S:1 in RSLogix 500: Display S:1 as binary (16 bits) to see which bit is set. A value of 0008h (hex) = 0000 0000 0000 1000 binary = bit 3 = Program Fault.


S:6 Error Code Table — All SLC 500 Fault Codes

S:6 contains the specific error code within the fault category flagged by S:1. The S:6 value is meaningful only in the context of the active S:1 fault bit.

Watchdog Fault (S:1/4):

S:6 Code Description
0001h Scan time exceeded watchdog (S:11 × 10ms)

Program Faults (S:1/3):

S:6 Code Description Common Cause
0001h File number beyond limits Instruction references file number > maximum configured
0002h Element number beyond limits Array subscript or pointer address beyond file size
0003h Subroutine nesting exceeded JSR/RET nesting depth exceeds maximum (7 levels)
0004h Return from empty subroutine stack RET instruction without matching JSR
0005h Invalid data file type Wrong data type for instruction operand
0006h FIFO/LIFO full or empty FFL/FFU or LFL/LFU stack full or empty condition
0007h Indexed address fault IND instruction index value out of valid range
0008h Bit file too large Bit array address exceeds file boundary

I/O Faults (S:1/2):

S:6 Code Description Notes
0001h I/O module missing Module not detected in expected slot
0002h Duplicate I/O address Two modules addressed the same rack/group/bit
0003h Loss of output energy Output field power supply failure
0004h I/O scan fault I/O bus communication error

Arithmetic Faults (S:1/8):

S:6 Code Description Fix
0001h Integer overflow Result exceeds ±32767; add range check before operation
0002h Division by zero DIV or CPT with divisor = 0; add pre-check
0003h Double-precision overflow 32-bit integer overflow in DIV result
0004h SQR of negative value SQR input is negative
0005h LOG of zero or negative LOG instruction with zero or negative argument
0006h Floating point overflow Float result exceeds ±3.4028235E+38
0007h Floating point underflow Float result is too small for single precision

Communications Faults (S:1/7 — SLC 5/05 Ethernet only):

S:6 Code Description
0001h Ethernet communication timeout
0002h DH-485 communication fault
0003h DH+ communication fault

Reading S:7 and S:8 — Fault Address Interpretation

S:7 and S:8 together specify the location of the instruction that caused the fault:

S:7 Word (16-bit):High byte (S:7 bits 8–15): the rung number within the file where the fault occurred (0–255) – Low byte (S:7 bits 0–7): the file number (data file for arithmetic faults, program file for program faults)

S:8 Word (16-bit): – For program faults: the instruction number within the rung – For I/O faults: rack and group number of the failed I/O module – For arithmetic faults: additional data about the offending operand

Example interpretation: S:1 = 0008h (Program Fault, bit 3), S:6 = 0002h (element beyond limits), S:7 = 0603h, S:8 = 000Ah

Breaking down S:7 = 0603h: High byte = 06h = rung 6, Low byte = 03h = file 3 (typically N7 Integer File or a custom integer file number 3). S:8 = 000Ah = 10 decimal = instruction position 10 within the rung. This means: at rung 6 in file 3 (usually the main program file 2), instruction 10 attempted an element access beyond the file boundary.


RSLogix 500 Diagnostic Navigation Path

RSLogix 500 → Online (connected to SLC 500 in FAULT) →
Data File → S (System File) → Open:
  S:1 = read in binary → identify which bit is set
  S:6 = read in hex → match to error code table above
  S:7 = read in hex → decode high byte (rung) and low byte (file)
  S:8 = read in hex → decode instruction position
→ Navigate to identified location:
  Ladder Program → Prog File [S:7 low byte] → Rung [S:7 high byte] → 
  Instruction [S:8] → examine operand for root cause

Alternative path using RSLogix 500 Diagnostics:

RSLogix 500 → Online → Controller Diagnostics →
Fault information panel: shows Type, Description, and Address
Click [Go to Fault Rung] button → jumps directly to faulting rung in ladder view

The “Go to Fault Rung” button is available in RSLogix 500 version 8.0 and later. For older RSLogix 500 versions, use the manual S:7/S:8 interpretation to navigate.



SLC 5/02, 5/03, 5/04, 5/05 Fault Code Differences

The S:6 error code set varies slightly across SLC 500 processor models:

Feature SLC 5/02 SLC 5/03 SLC 5/04 SLC 5/05
Program file count 32 255 255 255
DH-485 support Yes Yes No No
DH+ support No No Yes No
Ethernet (EtherNet/IP) No No No Yes (1Mbps)
Ethernet fault codes in S:6 No No No Yes (0001h–0003h)
Floating point arithmetic No Yes Yes Yes
Floating point S:6 codes No Yes Yes Yes

Practical impact: if a program uses floating point arithmetic (CPT with REAL operands) on an SLC 5/02, the instruction will generate an Instruction Fault (S:1/9) because the 5/02 does not support floating point. This is sometimes discovered when migrating programs between processor types.

For how the SLC 500 S:1 system compares to the ControlLogix Type+Code system used on modern Logix5000 controllers, see Allen-Bradley Controllogix Fault Codes Complete List Studio 5000. For the complete 8-step cross-platform diagnostic framework, see Plc Diagnostic Troubleshooting Systematic 8-Step Guide Industrial. For RSLogix 5000 / Studio 5000 fault history reading (the modern equivalent on Logix5000 controllers), see Rslogix 5000 Studio 5000 Controller Fault History Timestamp How To Read.


Clearing Faults on SLC 500 — All Methods

Method 1 — RSLogix 500 Software:

RSLogix 500 → Online →
Controller → Fault Reset → Yes
Controller → Run Mode

Method 2 — Keyswitch (physical access):

Front panel keyswitch: 
PROG position → wait 2 seconds (FAULT LED should extinguish) →
RUN position → controller starts scanning

Method 3 — Write S:1 = 0 (programmatic, for automated systems): Using an MSG instruction or a master station on DH-485/DH+, write a value of 0 to the S:1 register to clear the fault latch. This requires the programming equivalent of a fault reset command sent from an external source. The S:1 register is writable from the processor’s DH-485 or DH+ network.

After clearing: monitor S:1 for 5 minutes to verify it remains at 0. If S:1 returns to a non-zero value, the root cause was not resolved. Compare the recurring S:6 code to the tables above to confirm it is the same fault.


Technical Validation

Allen-Bradley SLC 500 fault system taxonomy and error handling from Rockwell Publication 1756-PM014. SLC 500 and MicroLogix S:1 fault file register bits and fault data file structure from Allen-Bradley MicroLogix 1100 User Manual (ManualsLib page 195). Industrial PLC legacy systems training from Cincinnati State Workforce Development Center PLC programs.


Frequently Asked Questions

Is the SLC 500 RSLogix 500 software still available from Rockwell Automation for new installations, or is a subscription required?

RSLogix 500 is available through the Rockwell Automation software licensing system. For existing SLC 500 systems, Rockwell provides legacy software licenses but positions RSLogix 500 as a mature product — new feature development stopped with the SLC 500 discontinuation. Rockwell’s Migration Tools group provides conversion paths from SLC 500 / RSLogix 500 to MicroLogix 1400 / CompactLogix with RSLogix 500 and Studio 5000. For facilities with active SLC 500 systems, maintaining an authorized RSLogix 500 license and a spare laptop with a valid installation is a business continuity requirement — if the programming laptop fails without a backup, the SLC 500 system cannot be reprogrammed, diagnosed online, or modified.

S:1 shows bit 7 set (communications fault) on an SLC 5/03. What specific communication condition triggers this bit, and does it halt the controller?

On the SLC 5/03 (DH-485 network), S:1/7 is set when the DH-485 node address is duplicated (two devices with the same address), when the DH-485 cable experiences a physical fault (open circuit, shorted cable), or when a MSG instruction targeting another node times out without response. Whether S:1/7 halts the controller depends on the configuration in the processor properties: if “Major Fault on Communication Error” is enabled, S:1/7 halts the controller. If it is configured as a minor fault, S:1/7 is set but the controller continues running. Default configuration on SLC 5/03 treats communication faults as minor (non-halting). Check Controller Properties → Communication in RSLogix 500 for the fault handling configuration.

Can SLC 500 programs be imported into Studio 5000 for use on a CompactLogix controller as part of a migration?

Not directly. SLC 500 programs use the SLC 500/MicroLogix instruction set, which is different from the Logix5000 instruction set used by CompactLogix and ControlLogix. Rockwell Automation provides a Migration Wizard that can convert SLC 500 ladder logic to Studio 5000 ladder logic with some limitations: SLC-specific instructions without a Logix5000 equivalent require manual replacement, I/O addressing must be remapped from the SLC rack/group/bit format to the Logix5000 tag-based format, and MSG instructions require reconfiguration for EtherNet/IP (CompactLogix) vs DH-485/DH+ (SLC 500). The Migration Wizard converts the structural ladder but the converted project requires validation and testing before deployment.

After reading S:7 = 0000h and S:8 = 0000h on an SLC 500 with an active S:1 fault, is the program location data useful or has it been cleared?

S:7 = 0000h and S:8 = 0000h mean the fault occurred at rung 0 in file 0 (file 0 is the system file, which does not normally contain user rungs) — this typically indicates the fault is a hardware-level fault (watchdog, power loss, memory module fault) that does not have a program location because it was not triggered by a specific instruction. Faults in S:1 bits 4 (watchdog), 5 (power loss), and 6 (memory module) often produce S:7 = 0000h because they are not instruction-level faults. For these fault types, S:6 provides the specific information, and S:7/S:8 = 0 is expected and not an indication of cleared data.


Marcus Webb — Industrial Automation Engineer, PLC Systems Specialist
More about the author →