Mitsubishi FX1S USB-SC09 Cable Setup and Batch Ladder Programming

Ryan Tanaka23 min read
FX SeriesMitsubishiTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Mitsubishi FX1S USB-SC09 Cable Setup and Batch Ladder Programming

Engineer field notes covering two interlocking tasks that converge on the same workstation: establishing reliable programming communication between a USB-only laptop and a Mitsubishi FX1S-30MR-ES/UL base unit through a CH340-based SC-09 clone, and structuring a sequential batch program that drives three independent flight bars through a PCB etching emulation without ever doubling up a physical output coil. Both tasks are core competencies for an automation technician entering the field and both respond to documented methodology rather than trial-and-error.

1. Overview: Two Problems, One Training Rig

Symptom one: a USB-to-RS422 cable advertised as "SC-09 compatible" refuses to handshake with GX Developer against an FX1S base unit. The workstation runs Windows 7 64-bit, the cable is listed in Device Manager as "USB-SERIAL CH340", and GX Developer's Connection Test returns "Cannot communicate with PLC". Symptom two: a PCB etching training machine requires a program that drives three flight bars through ten sequential phases each, with dwell values stored as tunable constants rather than hard-coded timer presets, and a single physical actuator must be shared between three bars without conflict.

The two problems share a root cause in that both require disciplined use of internal relays, data registers, and subroutine partitioning. Solving them in order — cable first, then program — keeps the bench usable throughout the training cycle and lets the same PLC be re-tasked between students without re-wiring.

Safety: Confirm the supply voltage before energising the base unit. The FX1S-30MR-ES/UL accepts 100-240 VAC; the FX1S-30MR-DS accepts 24 VDC. Wiring the wrong supply destroys the base unit and any connected outputs. Relay-output bases ("MR" in the catalog string) switch up to 240 VAC at 2 A per point; transistor-output bases ("MT") switch DC only and require polarity-aware wiring.

2. Prerequisites

Item Specification Notes
PLC base unit Mitsubishi FX1S-30MR-ES/UL (AC supply) or FX1S-30MR-DS (24 VDC) 16 inputs / 14 relay outputs, 2,000-step program memory, RS-422 programming port on the left bezel
Programming software GX Developer 8.25B or GX Works 2 (FX1S compatibility mode) GX Developer 8.25B is the last build to support the FX1S reliably on Windows 7
Programming cable Mitsubishi SC-09 (USB variant) or verified third-party clone USB-A host connector to 8-pin mini-DIN to FX1S programming port; built-in RS-232-to-RS-422 level shifter
USB serial chip WCH CH340 or CH341 Standard in sub-$20 cable clones; native driver not included with Windows 7
Workstation OS Windows 7 SP1 (32/64-bit) through Windows 10 21H2 CH340 driver availability differs per build; Windows 10 1709+ auto-installs a working CH340 driver without intervention
Parallel learning rig (optional) Allen-Bradley MicroLogix 1000 (catalog 1761-L20BWA) + RSLogix 500 v7.x Same PCB etching program transliterated to SLC instruction set
Reference texts Ridley, Programmable Logic Controllers (Mitsubishi focus); SLC 500 Reference Manual (publication 1747-RM001) SLC 500 manual appendix includes worked sequencing and dwell-storage examples

For structured self-study, Mitsubishi Electric maintains a dedicated training portal covering the MELSEC family, including the FX series: Mitsubishi Electric PLC Training. Allen-Bradley and RSLogix fundamentals are covered by Rockwell Automation's workforce development catalogue at Workforce Development & Industrial Training Services. Free introductory modules for ladder fundamentals, scan time, and I/O concepts are available through AutomationDirect PLC Training.

3. PCB Etching Flight Bar Process Specification

The training machine emulates a small PCB plating or etching line. Three flight bars carry workpieces between stations. Each flight bar performs the same ten-phase cycle but offset in time so that three bars are always in motion, never idle. The motor outputs (pick, X-traverse, Y-traverse, lift) are exposed to the PLC as single points; the program must therefore arbitrate the demand from three independent state machines into one physical actuator at a time.

Phase Action Dwell (s) Trigger to advance
1 Pick flight bar from unload station 2 Pick request accepted OR upstream unload complete
2 Travel to Tank 1 (etch) 3 Pick complete
3 Lower into Tank 1, dwell 5 Lower-stroke limit reached
4 Lift, drip-dry above Tank 1 10 Tank 1 dwell timer expired
5 Travel to Tank 2 (rinse) 3 Drip timer expired
6 Lower into Tank 2, dwell 5 Lower-stroke limit reached
7 Lift, drip-dry above Tank 2 10 Tank 2 dwell timer expired
8 Travel to Tank 3 (final) 3 Drip timer expired
9 Lower into Tank 3, dwell 5 Lower-stroke limit reached
10 Lift, travel to unload, release 4 Tank 3 dwell timer expired
Total per bar 50

Each bar spends 50 s in a full cycle. With three bars, the steady-state hand-off interval between releases is therefore 50 / 3 ≈ 16.7 s. Because every dwell value is likely to be retuned during commissioning (the printed solution uses them as pluggable constants), the values must be stored in a data register file rather than burned into timer K-values. Operator-tunable dwell is a standard commissioning pattern: it lets the trainer adjust cycle time on the HMI without re-downloading the program and lets students see the effect immediately.

Design constraint: Driving three bars through identical physical outputs is impossible if the same output is energised twice from two rungs. The program must route every physical actuator through an internal relay (M-coil on FX, B3 word bit on SLC) so that exactly one flight bar's request is selected at any given moment. The one-output-per-actuator rule is a hard-wired-logic constraint; PLCs do not relax it.

4. Sequential Process Decomposition with a Time Diagram

Before any ladder is written, draw a "time diagram" — a Gantt-style chart whose x-axis is elapsed seconds and whose y-axis lists each flight bar's current phase. The diagram forces every dwell value, every overlap, and every hand-off to be drawn explicitly so that no implicit timing assumption leaks into the code. A four-minute investment in the diagram saves an afternoon of scan-time debugging.

Flight Bar Cycle — Time Diagram (3 bars, 50 s per cycle, 16.7 s offset) Phase widths: 2 / 3 / 5 / 10 / 3 / 5 / 10 / 3 / 5 / 4 s Bar 1 Bar 2 Bar 3 0s 16s 33s 50s 66s 83s 1 2 3 4 5 6 7 8 9 10

4.1 Reading the Diagram

Reading vertically at any instant t tells you which bar is in which phase, which outputs are currently demanded, and which timer presets must be active. Reading horizontally for a single bar gives its full phase sequence. The diagram is also the single document from which the register layout is derived — every dwell value visible on the chart becomes one entry in the D-register file.

4.2 Construction Rules

  1. Allocate one row per flight bar (Bar 1, Bar 2, Bar 3).
  2. Allocate one column-block per phase (10 columns total per the specification above).
  3. Write the dwell in seconds at the bottom of each column-block; sum to 50 s per bar.
  4. Mark the bar-release instant at the right edge; mark the next bar's pick instant 16.7 s later.
  5. Highlight any instant at which two bars demand the same physical output. Resolve the conflict by inserting a hand-off offset or by inserting a token-passing queue as described in Section 5.
  6. Confirm that no bar requests the same output within the arbitration window; if it does, redesign the dwell distribution before writing ladder.

5. Internal Relay Architecture for Multi-Resource Coordination

The single-output-per-actuator constraint is solved by inserting an intermediate layer of latched "bar-active" bits between the phase sequencer and the physical outputs. On the FX1S these are M-coils (auxiliary relays); on the SLC 500 they are integer bits in file B3. The sequencer writes only to M-coils; a separate arbitration ladder translates those M-coils into output requests.

FX1S address SLC 500 address Function
M100-M109 B3:0/0-B3:0/9 Bar 1 phase-active flags (one set per phase)
M110-M119 B3:1/0-B3:1/9 Bar 2 phase-active flags
M120-M129 B3:2/0-B3:2/9 Bar 3 phase-active flags
M200 B3:10/0 "Pick motor ON" — aggregated request
M201 B3:10/1 "X-traverse motor ON" — aggregated request
M202 B3:10/2 "Y-traverse motor ON" — aggregated request
M203 B3:10/3 "Lift motor ON" — aggregated request
M210-M212 B3:11/0-B3:11/2 Bar 1 / Bar 2 / Bar 3 currently owns the pick output
M220-M222 B3:12/0-B3:12/2 Bar 1 / Bar 2 / Bar 3 currently owns the X-traverse output

Each bar's phase sequencer sets exactly one M1xx bit at a time. A second ladder file ("LAD 2" in RSLogix 500, subroutine 1 in GX Developer) performs priority arbitration: a token-passing ring that hands pick-output ownership from Bar 1 → Bar 2 → Bar 3 → Bar 1 as each bar finishes its pick phase. Only the bar holding the token is permitted to drive M200. The same pattern applies to X-traverse, Y-traverse, and lift, with independent token rings so that a bar can be at the X-traverse phase while another bar is at the lift phase.

5.1 Token-Passing Sequence (illustrative ladder for pick-motor ownership)


// FX1S, GX Developer — Subroutine SBR 1: Pick-motor arbitration
//
// Row 1: Token grant to Bar 1 if Bar 1 is requesting and nobody owns yet
LD   X012              // Bar 1 at pick station (sensor)
OR   M210              // Bar 1 already owns
ANI  M211              // Bar 2 does NOT own
ANI  M212              // Bar 3 does NOT own
ANI  M213              // Bar 1 pick-phase not yet complete
OUT  M210              // Bar 1 owns pick motor

// Row 2: Bar 2 takes token when Bar 1 finished pick
LD   M213              // Bar 1 pick complete (phase-1 done bit)
AND  X013              // Bar 2 at pick station
ANI  M211
ANI  M212
OUT  M211

// Row 3: Bar 3 takes token when Bar 2 finished pick
LD   M214              // Bar 2 pick complete
AND  X014              // Bar 3 at pick station
ANI  M210
ANI  M212
OUT  M212

The principle generalises to every shared physical actuator: each shared output sits behind a one-of-N decoder driven by the phase sequencers. A downstream fault (e.g., Bar 2 home-proximity sensor stuck) cannot energise the same motor from two rungs because only one M21x bit is ever set at a time.

5.2 State Machine per Flight Bar

Flight Bar State Machine — 10-Phase Cycle S1: Pick S2: Travel S3: Lower S4: Dwell S5: Lift S10: Unload T1=2s T2=3s limit T3=5s … (Phases 6–9) T9=4s

6. Timer Preset Storage in Data Registers

Hard-coding the dwell values into T0 K5, T1 K10, etc., is brittle: changing a dwell requires a full download and forces the operator to wade through the program to find the right timer. The cleaner pattern stores every dwell in a contiguous data-register block and uses MOV (FX) / MOV (SLC) to copy the value into the timer's preset at the moment the timer is armed.

FX1S register SLC 500 register Dwell (s) Phase
D100 N7:0 2 Pick
D101 N7:1 3 Travel to Tank 1
D102 N7:2 5 Tank 1 dwell
D103 N7:3 10 Tank 1 drip-dry
D104 N7:4 3 Travel to Tank 2
D105 N7:5 5 Tank 2 dwell
D106 N7:6 10 Tank 2 drip-dry
D107 N7:7 3 Travel to Tank 3
D108 N7:8 5 Tank 3 dwell
D109 N7:9 4 Travel to unload + release

6.1 Loading the Timer Preset at Phase Entry


// FX1S: on entering Tank 1 dwell phase for Bar 1 (M102 ON)
LD    M102              // Bar 1 phase = Tank 1 dwell
MOV   D102  T0          // Copy dwell value (5 s) into T0 preset

// SLC 500 equivalent
LD    B3:0/2            // Bar 1 phase = Tank 1 dwell
MOV   N7:2  T4:0.PRE    // Copy dwell into Timer 4 preset

Because the preset is fetched from the data file at the moment the timer is armed, an operator can change any dwell by writing a new value into the HMI or by editing the data table online — no program edit, no full download, no scan interruption.

6.2 Why Not NEQ on the Running Timer?

Comparing the running timer to its target with NEQ is technically possible but functionally wasteful: there is no need to compare when the timer's done bit (T0 in FX, T4:0/DN in SLC) already provides the same information with zero scan-time overhead. NEQ also creates a race window between the comparison and the timer's auto-reset. Reserve NEQ for diagnostic display paths that must run continuously without disturbing the scan.

7. Program Skeleton: 10-Subroutine Layout

The "10 ladder diagrams" referenced in the training material correspond to one logical subroutine per major function, not to ten repetitions of the same logic. The recommended decomposition is:

  1. LAD 1 / SBR 0 — First scan, reset, fault clear. Use M8002 (FX) or S2:1/15 (SLC) to detect first-scan and clear all M1xx phase flags and M21x token bits.
  2. LAD 2 / SBR 1 — Token-passing arbitration for every shared actuator (pick, X-traverse, Y-traverse, lift).
  3. LAD 3 / SBR 2 — Bar 1 phase sequencer: reads current-phase M1xx, advances on timer-done or sensor input, sets next-phase M1xx, resets current.
  4. LAD 4 / SBR 3 — Bar 2 phase sequencer.
  5. LAD 5 / SBR 4 — Bar 3 phase sequencer.
  6. LAD 6 / SBR 5 — Dwell-preset loading block. One rung per phase transition copies D10x into T0-T9.
  7. LAD 7 / SBR 6 — HMI data exchange (data table → operator panel, e.g., D100 displayed as "Tank 1 dwell = 5 s").
  8. LAD 8 / SBR 7 — Fault handling (E-stop, home-prox lost, motor overload, bar-stuck timer).
  9. LAD 9 / SBR 8 — Manual / jog mode (training aid; isolated from auto-run by an M-coil guard).
  10. LAD 10 / SBR 9 — Handshake to upstream pick-station and downstream unload; sets the "release complete" flag that frees a token slot.

Each sequencer is responsible for advancing exactly one bar. It reads its current-phase M-coil, performs the per-phase action (energise a request line, MOV a preset, start a timer), waits for the timer's done bit, and sets the next-phase M-coil while resetting the current-phase M-coil. Sequencing therefore collapses into a chain of SET / RST pairs and the program reads like a state diagram rather than a tangle of interlocks.

8. Mitsubishi FX1S USB-SC09 Communication Troubleshooting

Symptom: GX Developer reports "Cannot communicate with PLC" or "no connection" when Transfer Setup → Connection Test is run, with the SC-09 USB cable plugged into the FX1S programming port and the workstation running Windows 7 (64-bit). Device Manager lists "USB-SERIAL CH340" under Ports (COM & LPT), confirming that the cable is electrically enumerated. The fault is therefore in the driver stack, the GX Developer setup, or the PLC programming port — not in basic USB enumeration.

The cable is electrically a USB-to-RS422 adapter built around a WCH CH340 (or CH341) chip. The original Mitsubishi SC-09 is a passive cable with a built-in RS232-to-RS422 level shifter powered from the PLC port; USB clones integrate both conversions into one dongle. Both end-points present a virtual COM port to Windows, which GX Developer treats identically.

8.1 Decision Tree


GX Developer "Cannot communicate with PLC"
        |
        |-- Device Manager shows "USB-SERIAL CH340" with COMx? -- No --> Driver not installed. Install CH340 driver (Section 9).
        |                                                          Yes
        |
        |-- Cable seated at both ends, PLC powered? -- No --> Power PLC; reseat cable at both ends.
        |                                          Yes
        |
        |-- Transfer Setup COM port matches Device Manager COMx? -- No --> Fix COM port.
        |                                                          Yes
        |
        |-- Transfer Setup parameters 9600 / 7E1? -- No --> Fix parameters.
        |                                            Yes
        |
        |-- Loopback test on cable passes? -- No --> Cable defective; replace.
        |                                  Yes
        |
        --> PLC programming port hardware fault or firmware lock.
            Replace FX1S base unit or contact a Mitsubishi FA distributor.

8.2 Fault Symptom Matrix

Symptom Likely cause Fix
Device Manager shows unknown device with yellow bang Unsigned or 32-bit CH340 driver on 64-bit Windows Download signed CH340 driver from WCH; reinstall
Device Manager shows USB-SERIAL CH340 but no COMx number Driver loaded but COM port layer failed Uninstall device, delete ch341s64.sys from System32, reinstall
Connection Test shows TX activity, no RX Baud rate / parity / data bits mismatch OR PLC port fault Set 9600 7E1; loopback test cable; if loopback good, suspect PLC port
Connection Test times out with no TX activity Wrong COMx selected in Transfer Setup Match Transfer Setup COMx to Device Manager COMx exactly
GX Developer freezes on "Initialise PLC" Wrong PLC series selected (FX2N instead of FX1S) Set PLC series = FXCPU, PLC type = FX1S in Transfer Setup
Connection succeeds but download fails mid-transfer Shared USB hub with insufficient power; PLC RUN mode Connect cable directly to workstation; stop PLC before download

9. CH340 Driver Installation and Verification

Windows 7 does not ship a native CH340 driver. The bundled mini-CD supplied with cheap cable clones typically contains an unsigned or 32-bit-only driver that fails to install on a 64-bit Windows 7 build, leaving the device listed under Device Manager with a yellow warning triangle. Windows 10 1709 and later auto-install a working CH340 driver without intervention.

9.1 Driver Identification Procedure

  1. Identify the chip revision. Open Device Manager → right-click the unknown "USB-SERIAL" device → Properties → Details → Hardware Ids. Look for USB\VID_1A86&PID_7523 (CH340) or USB\VID_1A86&PID_5523 (CH341). The driver file in use, ch341s64.sys, is the 64-bit WCH driver that covers both revisions.
  2. Download the current signed driver directly from the chip vendor (WCH). Avoid the CD-ROM bundled with the cable if Windows refuses the signature.
  3. Extract the ZIP to a known folder. Right-click the unknown device → Update Driver Software → "Browse my computer for driver software" → "Let me pick from a list of device drivers on my computer" → "Have Disk…" → point to the driver .inf.
  4. Reboot if prompted. Re-open Device Manager and confirm "USB-SERIAL CH340" appears without warning under Ports (COM & LPT), and note the COMx number assigned.
  5. Record the COM number; GX Developer must be pointed at the same COM.
Windows driver signing: On Windows 7 64-bit, an unsigned driver cannot be installed unless the workstation is booted into "Disable Driver Signature Enforcement" (press F8 at boot, select the option). The official WCH driver is signed for Windows 7 and later; clone CD drivers are commonly unsigned and fail with error 0xE000022F in the setupapi.dev.log.

9.2 Driver Verification Checklist

Check Pass criterion
Device Manager entry clean No yellow warning triangle on "USB-SERIAL CH340"
COM port number stable Same COMx after replug
PuTTY open on COMx at 9600 7E1 PuTTY accepts the port without "Access denied"
Loopback test (Section 11.2) Typed character echoes back when pins 2-6 are shorted
GX Developer Transfer Setup → Connection Test Returns "Successfully connected to FX1S"

10. GX Developer Transfer Setup and Serial Parameters

The FX1S programming port uses a fixed protocol: 9600 baud, 7 data bits, even parity, 1 stop bit (7E1). GX Developer must be configured to match exactly. The FX1S does not auto-baud — any deviation produces "Cannot communicate with PLC" with TX activity but no RX reply.

Parameter Value
COM port Matches Device Manager COMx for "USB-SERIAL CH340"
Baud rate 9600
Data bits 7
Parity Even
Stop bits 1
Transfer-setup method RS-232C ↔ RS-422 converter (USB-SC09 selected automatically when COM is virtual)
PLC series FXCPU
PLC type FX1S

10.1 GX Developer Menu Path

  1. Open the project. From the menu bar, select Online → Transfer Setup.
  2. In the PC side I/F list, double-click "Serial" (or "USB" if using a Mitsubishi-validated USB driver; the CH340 clone must use the Serial entry with the virtual COMx).
  3. Set the COM port to the Device Manager COMx.
  4. Click "Connection Test". A successful test returns "Successfully connected to FX1S". A failure returns "Cannot communicate with PLC" with the connection log showing TX but no RX.
  5. Click "OK" to close the dialog. The PC side I/F is now bound to the COMx; subsequent Online menu operations (Read from PLC, Write to PLC, Monitor) reuse the same channel.
GX Developer version: Version 8.25B is the last build to support the FX1S reliably on Windows 7. GX Works 2 also supports the FX1S but treats it through a "FX3 compatibility" mode; expect to set the transfer-setup PLC series to FX1S explicitly rather than letting GX Works auto-detect. GX Works 3 does not support the FX1S — use GX Works 2 or GX Developer 8 for FX1S work.

11. Hardware Verification and Loopback Test

Before suspecting a cable fault, confirm three things in order: the PLC is alive, the cable is alive, and the driver is alive. The order matters because PLC port hardware is more expensive to replace than a cable, and a cable is more likely than the integrated RS-422 transceiver on the base unit.

11.1 PLC Alive Check

  1. Power the FX1S with the correct mains voltage. The "POWER" LED on the base unit must illuminate solid green; the "RUN" LED must be either solid green (program executing) or flashing (program stopped / no program loaded).
  2. If neither LED illuminates, check the supply and the fuse. FX1S AC variants use a non-resettable internal fuse on the mains input; the 24 VDC variants are self-protecting but will latch on reverse polarity.
  3. If POWER is on but RUN is dark and ERR is lit solid, the CPU has detected a fatal error (watchdog, syntax error in program, memory corruption). Clear the error by powering down, holding the RUN/STOP switch to STOP for 5 s, powering back up, and downloading a known-good program.

11.2 Cable Loopback Test

A loopback test verifies the cable's TX and RX paths independently of the PLC. It is the fastest way to isolate a cable fault.

  1. Disconnect the cable from the PLC, leaving the USB end in the workstation.
  2. Open PuTTY (or any terminal emulator) on the workstation, set it to the same COMx at 9600 7E1.
  3. Short pins 2 and 6 on the FX1S end of the cable with a jumper wire. On the SC-09 8-pin mini-DIN, pin 2 is SD (send data, PLC → PC) and pin 6 is RD (receive data, PC → PLC).
  4. Type any character in the terminal. If the same character echoes back, the cable's RX and TX paths are intact. No echo indicates a broken shield, a bad CH340, or a wrong pinout clone.

11.3 Driver Alive Check

  1. Confirm Device Manager shows "USB-SERIAL CH340" with no warning.
  2. Open PuTTY on the same COMx at 9600 7E1 and type characters; if PuTTY accepts the port and characters reach the terminal, the driver stack is healthy.

If all three checks pass and GX Developer still reports "Cannot communicate with PLC", the fault is on the FX1S programming port or in the GX Developer protocol parameters. The PLC programming port is a non-isolated RS-422 transceiver; an over-voltage event on the I/O terminals (especially the 240 VAC outputs of an MR base unit) can destroy the port without affecting the scan engine. Replace the base unit or contact a Mitsubishi FA distributor for an RMA.

12. RSLogix 500 / MicroLogix 1000 Cross-Reference

The same PCB etching rig can be replicated on an Allen-Bradley MicroLogix 1000 (catalog 1761-L20BWA) with RSLogix 500 v7.x. The cross-platform exercise is valuable because it forces the same program-design questions to be answered in two different instruction sets, exposing the underlying methodology rather than the syntax of any one vendor.

Function Mitsubishi FX1S Allen-Bradley MicroLogix 1000
Auxiliary relay (latched bit) M-coil, e.g., M100 B3 word bit, e.g., B3:0/0
On-delay timer (100 ms base) T0 with K-preset T4:0 with .PRE
Move word MOV D100 T0 MOV N7:0 T4:0.PRE
Compare not-equal NEQ D100 T0 NEQ N7:0 T4:0.ACC
Data register (integer) D100 N7:0
Subroutine CALL SBR n / SRET SBR n / RET
First-scan bit M8002 S2:1/15
Always-on bit M8000 S2:1/14
Set / Reset coil SET M100 / RST M100 OTL B3:0/0 / OTU B3:0/0

The SLC 500 Reference Manual (publication 1747-RM001) contains worked application examples in its appendix covering sequencing, dwell storage, and one-of-N selection — directly applicable to the flight-bar rig. The MicroLogix 1000 instruction set is a strict subset of SLC 500, so the same examples translate without modification. This makes the MicroLogix 1000 the ideal parallel rig for a technician learning both platforms: same ladder mechanics, different instruction mnemonics, identical program-design methodology.

13. Edge Cases and Failure Modes

Failure Detection Program response
Bar stuck in pick phase (home-prox never asserts) Phase-1 timer overflow > 2× preset Set fault bit, drop token, halt all bars, require operator reset
Two home-prox sensors assert simultaneously (mechanical jam) Two M21x bits attempt to set in same scan Token-passing ladder's ANI gates force mutual exclusion; whichever M21x set first wins
Timer preset operator-overwrites to zero Phase sequencer reads MOV result Add a minimum-preset clamp: if D10x < 1, treat as 1 s; prevents infinite dwell from a mis-typed zero
E-stop pressed mid-cycle Hardwired to M-coil via safety relay Reset all M1xx phase flags, all M21x token bits, halt all motors; first-scan restore on E-stop release
Power loss mid-cycle M8002 (first-scan) on power restore Reset all flags; require operator START to resume; do not auto-restart
CH340 cable unplugged mid-download GX Developer timeout Power-cycle PLC to clear residual buffer; re-attach cable; re-attempt download from stop mode

14. Putting It Together: Commissioning Checklist

  1. Install CH340 driver from WCH, reboot, confirm COMx assignment.
  2. Connect SC-09 cable to FX1S programming port, power PLC, confirm POWER and RUN LEDs.
  3. Open GX Developer, set Transfer Setup to COMx at 9600 7E1, run Connection Test.
  4. Download the flight-bar program (LAD 1-10 / SBR 0-9). Place PLC in STOP before download.
  5. Set the PLC to RUN. Verify the operator panel echoes the dwell values from D100-D109.
  6. Trigger a manual pick request. Verify M200 (pick request) energises and only one bar's M21x ownership bit sets.
  7. Cycle one bar through all ten phases; confirm the timers tick from the D-register presets rather than from hard-coded K-values.
  8. Cycle all three bars simultaneously; confirm no double-energisation of any physical output by monitoring the relevant output LEDs on the base unit.
  9. Tune dwell values from the operator panel; confirm timers re-load with new presets without re-downloading the program.
  10. Test E-stop: assert mid-cycle, confirm all bars halt and all phase flags reset, confirm first-scan restore on release.
  11. Document any deviations and back up the project to two physical media stored in separate locations.

15. Frequently Asked Questions

Why does GX Developer report "Cannot communicate with PLC" even though Device Manager shows USB-SERIAL CH340?

The CH340 driver and cable hardware are working, but the virtual COM number assigned by Windows does not match the COM port selected in GX Developer's Transfer Setup. Open Transfer Setup → Serial → PC side I/F and set the COM port to the exact COMx listed under Ports (COM & LPT) in Device Manager for the CH340 device.

What is the correct serial protocol for an FX1S programming port?

9600 baud, 7 data bits, even parity, 1 stop bit (7E1). The FX1S does not auto-baud. Any deviation produces "Cannot communicate with PLC" with TX activity but no RX reply.

Can a single physical output drive three flight bars?

Not directly. The physical output is energised by exactly one rung. Three bars must arbitrate through an internal-relay token ring so that only the bar holding the token is permitted to drive the output. The token advances when the bar's phase sequencer signals "phase complete".

Should timer presets be hard-coded K-values or stored in data registers?

Store them in data registers (D100-D109 on FX, N7:0-N7:9 on SLC) and use MOV to load the preset at phase entry. This makes dwell values tunable from the HMI without re-downloading the program, and it isolates timing parameters from program logic — a standard commissioning practice.

How do I confirm the SC-09 clone is not the fault?

Disconnect the cable from the PLC, short pins 2 and 6 on the FX1S end (SD and RD), open PuTTY on the same COMx at 9600 7E1, and type a character. If it echoes, the cable is electrically good and the fault is in the PLC port or the GX Developer setup. If it does not echo, the cable is defective.

Back to blog