Problem Identification: ALM/ERR LED Blink on SYSMAC C-Series
The ALM/ERR LED on an Omron SYSMAC C28H (and related C20H/C40H/C60H rack-mounted controllers) provides the field engineer's first visual cue that a fatal or non-fatal diagnostic has been latched inside the CPU. Unlike the RUN, OUT, IN, or COMM LEDs, the ALM/ERR indicator aggregates the PLC's internal FAL (Failure Alarm) and FALS (Failure Alarm Severe) sub-system. When this LED is illuminated solid or blinking, the controller has halted program execution on a fatal class error, or is continuing execution on a non-fatal class error that must be acknowledged.
The symptom in this article — a blinking ALM/ERR LED accompanied by FAL code 9E (hex) — points specifically to a Parameter Area Checksum Error within the controller's data memory. This is one of the most common field failures on legacy C-series CPUs that have either lost battery backup or have had their parameter region (DM 0900 through DM 0929) disturbed by a programming terminal that wrote incomplete data.
Affected Hardware and Memory Architecture
The C28H belongs to the SYSMAC C-series family of small-format PLCs and shares its memory map with the C20H, C40H, and C60H variants. The relevant memory regions for FAL 9E diagnosis are summarized below.
| Region | Range | Function |
|---|---|---|
| Parameter Area | DM 0900 – DM 0929 | Active CPU operating parameters (scan time, host link, etc.) |
| Parameter Backup Area | DM 1900 – DM 1929 | Backup copy of parameter area used on cold-start recovery |
| Auxiliary Relay | AR 00 – AR 27 | System control flags including AR14 checksum command bits |
| SR Area | SR 253 – SR 255 | FAL/FALS number storage, clock, status |
| User Program Area | UM | Ladder logic (no FAL 9E involvement) |
Both the Parameter Area and Parameter Backup Area each carry their own cyclic-redundancy checksum byte. On every scan, the CPU recomputes a checksum over the active region and compares it to a stored reference value. Any mismatch produces FAL 9E and latches the ALM/ERR LED. A second, independent error class — FAL 9F — is generated when the backup area checksum is invalid; many C-series controllers raise both codes simultaneously because the battery failure that wiped the active region also wiped the backup.
Root Cause Analysis: FAL 9E Parameter Area Checksum
Reading SR 253 (FAL number storage) while online with SYSWIN or a C-series handheld programmer returns the latched alarm code. A value of 0x9E (158 decimal) confirms a checksum mismatch inside the Parameter Area. The principal field-proven root causes are:
- Depleted or removed backup battery. The C-series uses an internal lithium battery (3.6 V, e.g., Omron CPM2A-BAT01 form-factor or equivalent) to retain DM, HR, AR, and counter values across power cycles. Battery end-of-life is typically reached between 5 and 8 years of continuous service at 25 °C. Six years of uninterrupted operation with no replacement is past the published service interval, and the parameter region is the first region to fail because its contents are rewritten by the CPU on every mode change.
- Incomplete parameter write from the programming tool. SYSWIN (and the CX-Programmer legacy driver that replaced it) writes parameters in multi-word blocks. If the communications link drops mid-block, only the first portion of the new parameters is committed, and the checksum stored at the end of the region is left referencing the old data. The mismatch is permanent until a manual checksum regeneration is forced.
- Power loss during a parameter save. Brief brown-outs during DM-to-flush transitions can corrupt the checksum byte without disturbing the parameter values themselves.
- Noise on the supply rail. Industrial environments with VFDs or welding inverters can induce memory-cell bit flips in the parameter region even when battery voltage is nominal.
Diagnostic Sequence Before Clearing
Before executing the AR14.15 checksum regeneration, run the following diagnostic sequence to confirm FAL 9E and identify the contributing factor. Always perform these steps while online, with the PLC in PROGRAM or MONITOR mode.
-
Confirm FAL number. Navigate to
SR 253(FAL number) andSR 254(FALS number) in SYSWIN or on the handheld. The value0x9Emust be present in SR 253 for this procedure to apply. If the value differs, refer to the C-series operation manual's FAL error code table before continuing. -
Verify battery voltage. Use the handheld programmer's diagnostic menu or read the battery-low flag at
AR 08.04. A value of1indicates that the CPU has detected a low-battery condition. Note that AR 08.04 is not a real-time voltage reading — it is a sticky flag that becomes latched once the CPU's brown-out detector has fired at least once. - Inspect parameter contents. Read DM 0900 through DM 0929 and compare them to the project's documented values. If the parameter area is wiped to all zeros, the backup area (DM 1900–DM 1929) is the authoritative source. If both regions are zeroed, the project documentation must be reloaded from the engineering source before continuing.
- Read the parameter checksum byte. The checksum byte is typically located at the end of the parameter region (DM 0929 on the C28H) and is updated automatically by the AR14.15 procedure. Do not write to it manually.
Step-by-Step Resolution: AR14.15 System Command
The C-series CPU exposes a small set of system commands through the AR14 word. Setting AR14.15 forces the CPU to recompute the parameter area checksum and write the new value back to its reference location. This is the official clearing sequence and avoids the need to reload the program from source.
- Connect and go online. Open SYSWIN (or the CX-Programmer SYSMAC C-series driver), establish a host-link or peripheral connection to the C28H, and place the PLC in PROGRAM mode.
-
Force Set AR14.15. In the data-trace or bit-monitor window, locate
AR 14and force-set bitAR14.15. The default power-on value of AR14 is0x8000, which means bit 15 is already set; however, the force-set operation is what flags the system command, not the bit value itself. -
Write the system command code to AR14. Set the full AR14 word to
0x0100(hex 0100, decimal 256). This selects the parameter-area checksum regeneration command. The CPU interprets this value only because AR14.15 was previously force-set. - Clear the force on AR14.15. Remove the force-set condition from AR14.15. The CPU now executes the system command and writes the new checksum to the parameter reference location.
-
Cycle power if the LED does not clear. Some C-series firmware revisions require a power cycle before the regenerated checksum is recognized. Power off the controller for at least 10 seconds, then restore supply. The ALM/ERR LED should extinguish and SR 253 should read
0x00.
0x0100 to the AR14 word. Reversing the order causes the CPU to interpret the write as a normal AR14 modification rather than as a system command, and the checksum regeneration will not occur.Verification Procedure
After the AR14.15 procedure, verify the fault is cleared using the following checklist.
| Check | Expected Result |
|---|---|
| ALM/ERR LED state | OFF |
| SR 253 (FAL number) | 0x00 |
| SR 254 (FALS number) | 0x00 |
| RUN LED | Solid ON (in RUN or MONITOR) |
| AR 08.04 (Battery Low flag) |
0 if battery was replaced; otherwise may remain latched until next power-up |
| DM 0900 – DM 0929 parameter values | Match documented project values |
| Scan time | Within expected range for program length |
Run the controller through at least one full mode transition (PROGRAM → RUN → PROGRAM) before returning to production. If the ALM/ERR LED returns immediately on the next power-up, the battery is the root cause and must be replaced before the procedure is repeated.
Battery Replacement Procedure
If the battery has been in service for more than five years, replacement is mandatory before the AR14.15 clear will be stable. Use only the manufacturer-specified battery for the C-series family — typically a 3.6 V primary lithium cell with the correct connector polarity and form factor.
- Confirm the controller is in PROGRAM mode and that all required program, parameter, and DM contents have been uploaded to the engineering workstation.
- Power off the PLC. Note that the C-series retains DM for approximately one week with the battery removed at room temperature; do not exceed this window without a separate backup supply.
- Open the battery compartment and disconnect the old cell.
- Install the replacement cell, observing polarity markers.
- Restore power and verify the ALM/ERR LED remains OFF, AR 08.04 clears, and SR 253 reads
0x00. - Re-upload program and parameter data if any DM contents were lost during the swap.
FAL Error Code Reference for the C-Series
Although this article focuses on FAL 9E, the ALM/ERR LED can indicate several other non-fatal conditions. The most frequently encountered codes on legacy C-series controllers are summarized below. Always cross-check the code against the official Omron SYSMAC C-series Operation Manual before clearing.
| FAL (Hex) | FAL (Dec) | Description | Severity |
|---|---|---|---|
| 0x00 | 0 | No error | — |
| 0x8F | 143 | Cycle time overrun | Non-fatal |
| 0x9D | 157 | No END instruction in program | Non-fatal |
| 0x9E | 158 | Parameter Area Checksum Error (DM 0900–0929) | Non-fatal |
| 0x9F | 159 | Parameter Backup Area Checksum Error (DM 1900–1929) | Non-fatal |
| 0xA0 | 160 | I/O bus error | Fatal |
| 0xA1 | 161 | Too many I/O points | Fatal |
| 0xA2 | 162 | Duplicate I/O registration | Fatal |
| 0xC1 | 193 | Expansion rack power failure | Fatal |
Troubleshooting Matrix: Symptom to Cause
| Observed Symptom | Likely Cause | Recommended Action |
|---|---|---|
| ALM/ERR blinking, SR 253 = 9E, AR 08.04 = 1 | Battery end-of-life | Replace battery, then execute AR14.15 procedure |
| ALM/ERR blinking, SR 253 = 9E, AR 08.04 = 0, recent program edit | Incomplete parameter write | Re-save parameters from SYSWIN, then AR14.15 |
| ALM/ERR blinking, SR 253 = 9F | Parameter backup area checksum error | Use AR14.14 with system command 0x0100 (mirror procedure) |
| ALM/ERR blinking returns after every power cycle | Battery disconnected or depleted | Verify battery connector seating and cell voltage |
| ALM/ERR solid, SR 254 populated | Fatal FALS active | Address the FALS condition first; FAL will be cleared automatically |
| ALM/ERR blinking, SR 253 empty or 0 | User-written FAL instruction | Search ladder for FAL(06) and clear the rung |
Preventive Maintenance Recommendations
FAL 9E is largely a maintenance-driven fault. The following schedule has proven effective on production C-series installations and reduces unplanned downtime.
- Battery inspection: Annual visual inspection and load-test of the backup cell. Replace proactively at the 5-year mark regardless of measured voltage, because capacity loss accelerates rapidly after the knee of the discharge curve.
- Parameter backup verification: Quarterly, upload the full parameter region (DM 0900–DM 1929) from each controller to the engineering archive. Compare against the previous quarter's upload to detect silent parameter drift.
- Programming tool discipline: When editing parameters online, always perform a complete upload from the PLC first, edit offline, then perform a complete download. Partial writes are the second-most-common root cause of FAL 9E after battery failure.
- Supply conditioning: Install a dedicated line filter on the PLC mains feed if the cabinet shares a transformer with VFDs, welders, or DC drives. Add a surge protective device rated for the controller's nominal supply voltage.
- Mode transition logs: Enable and retain the PLC's mode-transition log if the firmware supports it. Unexpected transitions between RUN and PROGRAM are often the only forensic clue left after a parameter corruption event.
Documentation References
For authoritative specifications, memory maps, and AR14 system-command details, consult the official Omron SYSMAC C-series documentation set available from Omron Industrial Automation.
- Omron Industrial Automation — Product Portal (search family "SYSMAC C-series" for C20H/C28H/C40H/C60H operation manuals, programming manuals, and host-link reference).
- SYSMAC C-series Family Page for datasheets, firmware notes, and battery part numbers.
- Omron publication W318-E1 (C-series Operation Manual) for the canonical FAL/FALS error code table and AR14 system-command bit assignments.
- Omron publication W364-E1 (C-series Programming Manual) for ladder instruction reference, including FAL(06) and FALS(07).
What does FAL 9E mean on an Omron C28H PLC?
FAL 9E (hex) is a Parameter Area Checksum Error. The CPU detected that the cyclic-redundancy checksum stored at the end of the parameter region (DM 0900–DM 0929) no longer matches the value computed from the live contents, typically because the backup battery has failed or a programming tool wrote an incomplete parameter block.
How do I clear FAL 9E on the C28H without reloading the program?
Online with the PLC in PROGRAM mode, force-set AR14.15, write the system-command value 0x0100 to the AR14 word, then clear the force on AR14.15. The CPU recalculates and writes the new parameter checksum. Cycle power afterward if the LED does not extinguish immediately.
Why does FAL 9E return after every power cycle?
The most common cause is a depleted or disconnected backup battery. The C-series loses the regenerated checksum on every power-down because the new value is only retained while the battery holds the DM and parameter regions. Replace the 3.6 V lithium battery before repeating the AR14.15 procedure.
Can a user ladder instruction cause FAL 9E?
No. FAL 9E is a system-generated non-fatal error class that originates inside the CPU's parameter-management task, not from any ladder instruction. A user-programmed FAL(06) or FALS(07) will populate SR 253 or SR 254 with a value defined by the rung argument and is unrelated to the checksum mechanism.
What is the difference between FAL 9E and FAL 9F?
FAL 9E indicates a checksum mismatch in the active Parameter Area (DM 0900–0929). FAL 9F indicates the same class of mismatch but in the Parameter Backup Area (DM 1900–DM 1929). Both are non-fatal and both are cleared by an analogous AR14 procedure using bit AR14.14 for the backup region.