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.
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.
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.
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
- Allocate one row per flight bar (Bar 1, Bar 2, Bar 3).
- Allocate one column-block per phase (10 columns total per the specification above).
- Write the dwell in seconds at the bottom of each column-block; sum to 50 s per bar.
- Mark the bar-release instant at the right edge; mark the next bar's pick instant 16.7 s later.
- 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.
- 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
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:
- 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.
- LAD 2 / SBR 1 — Token-passing arbitration for every shared actuator (pick, X-traverse, Y-traverse, lift).
- 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.
- LAD 4 / SBR 3 — Bar 2 phase sequencer.
- LAD 5 / SBR 4 — Bar 3 phase sequencer.
- LAD 6 / SBR 5 — Dwell-preset loading block. One rung per phase transition copies D10x into T0-T9.
- LAD 7 / SBR 6 — HMI data exchange (data table → operator panel, e.g., D100 displayed as "Tank 1 dwell = 5 s").
- LAD 8 / SBR 7 — Fault handling (E-stop, home-prox lost, motor overload, bar-stuck timer).
- LAD 9 / SBR 8 — Manual / jog mode (training aid; isolated from auto-run by an M-coil guard).
- 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
- 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.
- Download the current signed driver directly from the chip vendor (WCH). Avoid the CD-ROM bundled with the cable if Windows refuses the signature.
- 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.
- 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.
- Record the COM number; GX Developer must be pointed at the same COM.
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
- Open the project. From the menu bar, select Online → Transfer Setup.
- 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).
- Set the COM port to the Device Manager COMx.
- 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.
- 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.
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
- 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).
- 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.
- 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.
- Disconnect the cable from the PLC, leaving the USB end in the workstation.
- Open PuTTY (or any terminal emulator) on the workstation, set it to the same COMx at 9600 7E1.
- 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).
- 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
- Confirm Device Manager shows "USB-SERIAL CH340" with no warning.
- 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
- Install CH340 driver from WCH, reboot, confirm COMx assignment.
- Connect SC-09 cable to FX1S programming port, power PLC, confirm POWER and RUN LEDs.
- Open GX Developer, set Transfer Setup to COMx at 9600 7E1, run Connection Test.
- Download the flight-bar program (LAD 1-10 / SBR 0-9). Place PLC in STOP before download.
- Set the PLC to RUN. Verify the operator panel echoes the dwell values from D100-D109.
- Trigger a manual pick request. Verify M200 (pick request) energises and only one bar's M21x ownership bit sets.
- Cycle one bar through all ten phases; confirm the timers tick from the D-register presets rather than from hard-coded K-values.
- Cycle all three bars simultaneously; confirm no double-energisation of any physical output by monitoring the relevant output LEDs on the base unit.
- Tune dwell values from the operator panel; confirm timers re-load with new presets without re-downloading the program.
- Test E-stop: assert mid-cycle, confirm all bars halt and all phase flags reset, confirm first-scan restore on release.
- 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.