1. Problem Overview
A Mitsubishi FX series PLC controlling a three-belt conveyor is connected to GX Developer through an SC09 programming cable. The BATT. LED is illuminated on the CPU front face and the upload operation returns an error, an empty project, or a corrupted image. The most common root cause is battery exhaustion on the FX1N, FX2N, FX3G, or FX3U family, which clears the project, retentive bit/word ranges, counters, and the real-time clock the next time main power is removed. This technical reference walks through identification, cable setup, GX Developer connection, upload semantics, error resolution, I/O remapping, and pneumatic index logic so the conveyor can be returned to service without reliance on the original integrator.
2. FX CPU Identification and Memory Layout
Identify the CPU by reading the designation on the front face (e.g., FX1N-40MR-D). The full part number encodes the family, total I/O count, output type (R = relay, T = transistor, S = triac), and supply voltage (D = 24 VDC, no suffix = 100–240 VAC). The FX1S, FX1N, FX2N, FX3G, and FX3U families share the SC09 port and the GX Developer toolchain but differ in memory layout, retentive ranges, and battery part numbers. Selecting the wrong CPU model returns GX Developer error 0xC050 (PLC type mismatch) and aborts the transfer.
| CPU Family | Typical I/O | Program Memory | Memory Type | Battery Part Number | Retentive Range |
|---|---|---|---|---|---|
| FX1S-10/14/20/30 | 10–30 points | 2,000 steps | EEPROM (built-in) | F2-40BL only for RTC option board | M512–M1535, D256–D511, C16–C31 |
| FX1N-14/24/40/60 | 14–60 points | 8,000 steps | Battery-backed RAM + optional cassette | F2-40BL | M512–M1535, D128–D255, C16–C31 |
| FX2N-16/32/48/64/80/128 | 16–128 points | 8,000–16,000 steps | Battery-backed RAM with cassette | F2-40BL | M512–M1535, D128–D255, C16–C31, R0–R32767 (cassette) |
| FX3G-14/24/40/60 | 14–60 points | 32,000 steps | Battery-backed RAM, optional cassette | FX3U-32BL | M1536–M7679, D110–D7999, C16–C199 |
| FX3U-16/32/48/64/80/128 | 16–128 points | 64,000 steps (FX3U-FLROM-1M) | Battery-backed RAM + flash cassette | FX3U-32BL | Full retentive range incl. file registers |
For product specifications and firmware notes, refer to the Mitsubishi Electric FA PLC product page.
3. Battery Failure Symptoms and Diagnostic Sequence
The CPU battery retains the project, retentive bit/word ranges, counter current values, and the RTC (FX3G/FX3U only) when main power is removed. A depleted battery produces these field-observable symptoms:
- BATT. LED steady red on the CPU front face
- Special auxiliary relay M8005 (battery voltage low) latched ON
- Special data register D8005 holds the battery voltage (FX3U/FX3G: nominal 3.0 V, replace below 2.5 V)
- Uploaded program returns an empty project, default parameters, or a corrupted image
- Counter C current values reset to zero on every power cycle
- RTC loses time on every power cycle (FX3G/FX3U only)
- Latched solenoids or contactors drop out unexpectedly after power cycle
3.1 Diagnostic Flowchart
4. SC09 Cable: Wiring, Termination, and Driver Notes
The SC09 is a USB-to-Mitsubishi RS-422 mini-DIN programming cable. The PLC end is an 8-pin mini-DIN; the PC end is a USB-A. The cable contains a USB-to-serial bridge (typically FTDI FT232 or Silicon Labs CP2102) with integrated RS-422 transceivers that convert the differential pairs required by the FX programming port.
| Mini-DIN Pin | Signal Name | Direction | RS-422 Function | Twisted Pair |
|---|---|---|---|---|
| 1 | RXD+ | PLC → PC | Receive + | Pair A |
| 2 | RXD- | PLC → PC | Receive - | Pair A |
| 3 | — | — | Not connected | — |
| 4 | TXD+ | PC → PLC | Transmit + | Pair B |
| 5 | — | — | Not connected | |
| 6 | — | — | Not connected | |
| 7 | TXD- | PC → PLC | Transmit - | Pair B |
| 8 | GND | — | Cable shield | — |
4.1 COM Port Assignment on Windows
- Connect the SC09 to the PC USB port with the FX powered ON
- Open Windows Device Manager → Ports (COM & LPT)
- Locate the new "USB Serial Port (COMx)" entry and note the COM number
- Right-click → Properties → Port Settings → 9600 bps, even parity, 7 data bits, 1 stop bit (default FX protocol)
- Advanced → set COM port number to COM1–COM9 to avoid legacy issues with GX Developer
- Disable USB selective suspend for the COM port to prevent disconnect during long uploads
5. GX Developer Installation and Project Setup
GX Developer is the legacy programming tool for FX CPUs. It supports Windows XP, 7, 8, and 10 (32-bit). For 64-bit Windows 10/11 or Windows 11, install GX Developer inside a Windows XP Mode VM, or use Windows compatibility mode (set to Windows XP SP3) with administrator privileges. Newer projects should be migrated to GX Works2 (FX3G/FX3U/FX5U) or GX Works3 (iQ-R/FX5).
5.1 Recommended Installation Order
- Install GX Developer 8.91Z or 8.92 (last released version, supports FX3U)
- Install the Monitor/PLCGX simulation components if testing with GX Simulator
- Install the FXCPU compatibility add-on for FX3G/FX3U support
- Install the USB SC09 driver separately if Windows does not auto-recognize the bridge
- Reboot before first connection attempt
5.2 New Project Parameters
| Parameter | Selection |
|---|---|
| PLC Series | FXCPU |
| PLC Type | FX1N / FX2N / FX3G / FX3U (must match CPU label) |
| Project Type | Simple Project (no labels) or Structured Project |
| Label | None for FX1N/FX2N; optional for FX3G/FX3U |
| Comment Capacity | Set block 1 = 3000 steps; block 2 = 3000 steps before upload |
6. Connection Procedure
- In GX Developer, open the project created in §5.2
- Click Online → Transfer Setup
- Select Serial connection, then double-click Serial (USB-Serial COMx)
- Confirm 9600 bps, even parity, 7 data bits, 1 stop bit
- Click Connection Test — expected: "Successfully connected to FX1N/FX2N/FX3G/FX3U at COMx"
- If the test fails, verify SC09 seating, COM number, and CPU model
- Once connected, select Online → Read from PLC (Ctrl+Shift+F4)
- Select the components to upload: Main Program, Parameters, Device Memory, Comments (if stored in PLC)
- Click Execute — the upload begins and the progress bar increments
- Save the project immediately to two physical locations (local disk + USB or network share)
7. Read vs. Write: Semantic Distinction
This is the most common point of confusion in field recovery work. The two operations are mirror images and choosing the wrong direction will silently overwrite the only surviving project.
- Read from PLC (Ctrl+Shift+F4): PLC → PC. Use when the PLC holds the only surviving project. This is the operation to use immediately after battery failure to preserve whatever logic remains.
- Write to PLC (Ctrl+Shift+F3): PC → PLC. Use when the PC project is the trusted source, after editing, or when initializing a replacement CPU.
- Verify (Ctrl+Shift+F5): PC ↔ PLC. Compares step-by-step without transferring. Always run Verify after a write to confirm the project landed correctly.
8. Upload Error Codes and Resolution Matrix
| GX Developer Error | Hex / Code | Likely Cause | Resolution |
|---|---|---|---|
| Communication timeout | 0x0180 | Wrong COM port, cable not seated, FX in STOP with no protocol enabled, USB suspend | Verify COM port, reseat mini-DIN, disable USB selective suspend, retry |
| PLC type mismatch | 0xC050 | Project header lists wrong FX CPU | Re-create project with correct PLC Type and retry read |
| Password protected | 0xC056 | Project password set in PLC | Request password from original integrator, or perform password clear (erases project) |
| Memory cassette error | 0xC044 | Optional cassette not detected or wrong orientation | Power down, reseat FX1N-CNV-BD cassette, retry |
| Parameter out of range | 0xC024 | Battery-low corruption in parameter block | Reset PLC to defaults via Online → Remote Reset, re-write parameters from PC |
| Battery low warning | 0xC0B0 | M8005 latched; upload still proceeds with warning | Replace battery before next power cycle; upload succeeds |
| Memory capacity exceeded | 0xC102 | PC project larger than PLC program memory | Trim unused subroutines or migrate to FX3U with FX3U-FLROM-1M |
| Checksum error | 0xC056 | Project file corrupted in PC storage | Re-read from PLC or restore from earlier backup |
9. I/O Address Conventions
Mitsubishi FX addressing uses octal notation for X (input) and Y (output) and decimal for M (internal), T (timer), C (counter), and D (data register). The same physical point may appear multiple times in ladder, which is normal — unlike Allen-Bradley, Mitsubishi does not require unique coil references for parallel branches.
| Address Type | Symbol | Notation | Typical Use |
|---|---|---|---|
| Input | X | Octal (X0, X1, … X7, X10, X17) | Field sensors, pushbuttons, E-stops |
| Output | Y | Octal (Y0, Y1, … Y7, Y10) | Solenoids, contactors, indicators |
| Internal Relay | M | Decimal (M0–M3071, M8000–M8511 special) | Logic, status, latches |
| Data Register | D | Decimal (D0–D7999) | Numeric values, setpoints, recipes |
| Timer | T | Decimal + K preset (T0 K50 = 5.0 s at 100 ms) | On/off delays, dwell times |
| Counter | C | Decimal (C0–C255) | Event counts, batch tracking |
| Special M | M8000–M8511 | Decimal (system-defined) | M8000 RUN flag, M8001 inverse RUN, M8002 initial pulse, M8005 battery low, M8011 10 ms clock, M8012 100 ms clock, M8013 1 s clock, M8014 1 min clock |
10. Conveyor Index Logic: Three-Belt Pneumatic Sequencer
The field scenario describes three belts where the outer belts run continuously and the middle belt indexes via pneumatic cylinders to create single-file spacing. A typical ladder implementation uses one timer per indexer stage, one output per solenoid, and an interlock so the cylinder retracts before the next extension cycle.
10.1 Sample Ladder for Indexer Stage 1 (Inverted)
| X0 M100 Y0 |
|-----||-----| |-----( )----------|
| Product-in Index1 fwd |
| (solenoid) |
| Y0 T0 |
|-----|/|-----|/|------------------|
| Index1 run T0 done (retract) |
| Y0 |
|--(TON T0 K30)--------------------| ; 3.0 s dwell (100 ms clock)
Reading the ladder: X0 is the "product-in" sensor on belt 1; M100 is a run permit; when both are true, output Y0 (indexer 1 forward) energizes. After 3.0 s (T0 = K30 at 100 ms clock from M8012), the normally-closed Y0 contact drops out and the cylinder retracts via the second rung.
10.2 Cycle Time Adjustment
To tune the index rate, modify only the K preset of the dwell timer. Common field values for box spacing conveyors:
| Application | Dwell Timer Preset (K) | Effective Dwell (100 ms base) |
|---|---|---|
| Fast indexing (small parts) | K10–K20 | 1.0–2.0 s |
| Standard indexing (cartons) | K30–K50 | 3.0–5.0 s |
| Heavy or odd-shaped product | K70–K120 | 7.0–12.0 s |
| Mixed manual/automatic | K200–K500 | 20–50 s (operator paced) |
10.3 Timer Clock Source Selection
FX timers T192–T199 default to the 10 ms clock (M8011). T200–T245 default to the 100 ms clock (M8012). Most conveyor dwell timers fall in T0–T199 and can be switched between 100 ms and 10 ms by editing the parameter "Timer clock" for the relevant range.
11. Pneumatic Solenoid Mapping Procedure
- Place the PLC in Monitor mode (Online → Monitor → Monitor Mode)
- Force all Y outputs OFF (Online → Debug → Force ON/OFF → clear all)
- Open Device Monitor (Online → Monitor → Device Monitor) and locate the Y range
- Manually toggle each Y address via the force menu and observe which physical cylinder extends
- Record the mapping in a spreadsheet (Y0 = front belt raise, Y1 = mid belt raise, Y2 = rear belt raise)
- Cross-reference the mapping against the machine P&ID; if mismatches exist, the original comments are your only source of truth
- Remove all forces before resuming ladder execution
12. Battery Replacement Procedure
- Verify the PLC is powered ON and in STOP or RUN mode
- Open the lower front cover (FX1N/FX2N) or remove the small panel (FX3G/FX3U)
- Locate the battery connector — typically a 2-pin JST with the battery lead pre-attached
- Disconnect the old F2-40BL or FX3U-32BL
- Connect the new battery within 30 seconds
- Verify BATT. LED extinguishes within 10 seconds
- Verify M8005 clears in Device Monitor
- Close the cover and record the replacement date on the cabinet label
- Power-cycle the PLC once and confirm the project survives (with new battery installed)
| Battery | Compatible CPUs | Nominal Voltage | Service Life (25 °C) |
|---|---|---|---|
| F2-40BL | FX1N, FX2N, FX1S (RTC option) | 3.6 V | 5 years |
| FX3U-32BL | FX3G, FX3U, FX3UC | 3.0 V (Lithium) | 5 years |
| F2-40BLC | Replacement series for F2-40BL | 3.6 V | 5 years |
13. Verification Checklist After Recovery
- Read from PLC and confirm step count matches PC project
- Verify all X inputs toggle correctly in Monitor mode by manually actuating each sensor
- Verify all Y outputs drive correctly via Debug → Force (one at a time)
- Run each timer T with a 1 s preset and verify the accumulator behaves correctly
- Run each counter C with a manual count and verify latching at the preset value
- Power-cycle the PLC and confirm program retention (with new battery installed)
- Confirm retentive M and D ranges hold values across power cycle
- Document the recovery on the maintenance log including original integrator, recovery date, and battery replacement date
- Save the recovered project to the maintenance server with a versioned filename (e.g., Conveyor_FX1N_2024-03-15_recovered.gxw)
14. Preventive Maintenance Schedule
| Interval | Action |
|---|---|
| Annual | Check BATT. LED; verify M8005 = 0 in Device Monitor |
| 4-year | Schedule battery replacement regardless of LED state |
| 5-year | Mandatory battery replacement; replace during planned downtime |
| Per revision | Upload and back up PC project with version comment and date |
| Quarterly | Verify SC09 cable and COM port still enumerate after PC maintenance |
15. Platform Alternatives for Migration
If the FX is approaching end-of-life or the conveyor is being re-engineered, consider migrating to a current platform. ABB AC500 V3 with Automation Builder 2.9.0 supports structured text and ladder with multi-CPU configurations suitable for conveyor lines, and ships with example projects. For smaller standalone machines, the AutomationDirect CLICK series with CLICK Help Version 3.80.2 offers a low-cost ladder-only environment with built-in USB programming. Migration should preserve the I/O list and timer/counter ranges from the existing FX program to minimize rewiring.
16. Frequently Asked Questions
Why does GX Developer show error 0xC050 even though the SC09 cable is working?
The cable is functional, but the project header lists a different FX CPU than is physically installed. Re-create the project with the exact CPU model (FX1N-40MR-D, FX3U-32MT-D, etc.) printed on the front face and retry Read from PLC.
Can the program be recovered if the battery has been dead for weeks?
Yes, if the project is stored in battery-backed RAM, but expect partial corruption of retentive bits, counters, and the RTC. EEPROM-based FX1S retains the program indefinitely without a battery. Always attempt a read before any further power cycle to capture whatever logic remains.
Does uploading from the PLC include the comments?
Only if the original programmer enabled comment storage in the PLC comment memory area (Parameters → Device Capacity → Comment). Most legacy projects strip comments on upload; rebuild them in GX Developer using the I/O list, machine P&ID, and force-driven I/O verification.
What is the difference between T0 K30 and T0 K3.0?
T0 K30 means 30 timer ticks. With the 100 ms clock (M8012) that is 3.0 seconds. T0 K3.0 is not a valid preset — FX timers always use integer ticks. To get 0.3 seconds, use the 10 ms clock (M8011) with T192 K30.
How do I force an output on for testing without changing the program?
In GX Developer select Online → Debug → Force ON/OFF, choose the target Y or M address, select Force ON, and click Execute. Always remove all forces before resuming normal operation; forced bits override the ladder logic and can cause unexpected motion if left active.
What GX Developer version supports FX3U and FX3G?
GX Developer 8.91Z or later (last released 8.92) supports FX3U and FX3G with the FXCPU compatibility add-on. Newer projects should migrate to GX Works2 (FX3G/FX3U/FX5U) or GX Works3 (iQ-R/FX5), both of which can import GX Developer projects directly.