WindLDR and FC6A PLC: Pitfalls, Safety Notes, and Debugging Techniques
Key Takeaway
A consolidated troubleshooting reference for IDEC FC6A and WindLDR deployments, covering the most common failure modes — unsafe workflows, address format confusion, register overlap, and communication setup errors — with structured debugging techniques tied to official FC6A error codes and diagnostics.
Overview
This article consolidates the most common failure modes encountered in FC6A + WindLDR deployments: unsafe download/forcing workflows, misunderstanding address formats, register overlap (especially module allocations and special registers), and communication setup errors. It provides a structured troubleshooting playbook built on FC6A special data registers for error codes, WindLDR online monitoring features (batch monitor, PLC status), and deterministic test procedures.
Prerequisites
- You understand the FC6A device address map and the special data register concept.
- You can place the controlled machine in a safe state, including use of external emergency-stop and interlocking circuits.
- You have at least one online connection path working (USB, serial, or Ethernet).
Safety-First Diagnostic Posture
- Implement and verify external safety circuits. IDEC manuals stress that emergency stop and interlocking circuits must be configured outside the controller, and that output devices can fail "stuck on" or "stuck off," requiring external monitoring for high-consequence signals.
- Power down for wiring and maintenance. Manuals instruct powering off before installation, removal, wiring, maintenance, and inspection to avoid shock and fire hazards.
Common Pitfalls
Pitfall A — Misreading Device Addresses (Octal Least-Significant Digit)
- Symptom: "Wrong input bit" or "wrong output coil" energizes, especially around boundary addresses (…7 to …10).
- Root cause: The least significant digit of FC6A I/O addresses is octal (0–7). There is no address ending in 8 or 9.
- Fix: Explicitly document the octal rule, and require I/O maps to include both physical terminal ID and logical device address.
Pitfall B — Overlapping Data-Register Allocations
- Symptom: Parameters change indefinitely, scaled values are nonsensical, or values change when unrelated code executes.
- Root cause: Analog modules consume multiple consecutive data-register words; SCALE consumes 8 words (S2) and 6 words (D1). Overlaps corrupt these control blocks.
- Fix: Enforce a register-map review gate where every feature has an assigned, non-overlapping block with a recorded size.
Pitfall C — Writing Into Reserved Special Data Registers
- Symptom: Unpredictable system behavior, configuration corruption, invalid diagnostics.
- Root cause: The manual warns — do not write to reserved entries in the special data register list; otherwise the system may not operate correctly.
- Fix: Treat D8000–D8899 as the "system namespace." Only write where the manual explicitly defines a write function (e.g., calendar/clock new data registers).
Pitfall D — Trying to Change Function Area Settings During Online Edit
- Symptom: Configuration changes appear to be ignored, or you cannot apply them while the PLC is running.
- Root cause: During Online Edit, function area settings and expansion data register settings cannot be changed.
- Fix: Download the entire project (not just an online edit) when function area or expansion settings must change.
Pitfall E — Intermittent Ethernet Maintenance Connection
- Symptom: Intermittent connection — can ping the PLC but cannot connect or monitor.
- Fix: Follow the deterministic Ethernet setup validation:
verify IP address values appear correctly in
D8330–D8333via batch monitor, then check that PLC Status shows the correct module type and system software version.
Debugging Techniques
Technique A — Read Error Codes from Special Data Registers
The special data register list defines D8005 as "General Error
Code" and D8006 as "User Program Execution Error Code." SCALE
failures also store error codes in D8006 and stop updating
outputs.
Technique B — Structured Error Capture Rung
Create a rung that latches an internal relay when an error code is detected,
then copies D8005/D8006 into a history region for
service diagnostics:
// Rung: Latch error present and snapshot error codes.
// Implement with compare + move instructions per your standards.
(D8005 != 0) OR (D8006 != 0) ----[ ]----( )---- M_ERR_LATCH
// When latched, copy D8005/D8006 into history registers (e.g., D0500...).
Technique C — Online Monitoring of Configuration Truth
- Ethernet setup: Use batch monitor and confirm IP values
in
D8330–D8333as part of the official procedure. - Version check: Read
D8029(System Software Version) and record it in the service log.
Technique D — SCALE-Specific Validation Harness
Drive S1 through known values, initialize with a pulse (e.g.,
M8120), confirm output registers update correctly, and verify
D8006 remains 0 in the non-error case.
Debugging Workflow
flowchart TD
A[Symptom observed] --> B{Safety state confirmed?}
B -- No --> B1[Make safe: external E-stop/interlocks, de-energize as needed]
B1 --> C
B -- Yes --> C[Connect online via USB/Serial/Ethernet]
C --> D[Read D8005 + D8006]
D --> E{Nonzero error code?}
E -- Yes --> F[Interpret code source: General vs User Program Execution]
F --> G[Check recent changes: SCALE params, module allocations, reserved registers]
G --> I[Apply fix + full download if settings changed]
E -- No --> H[Verify comm/config truth: Ethernet D8330-D8333, PLC Status, D8029 version]
H --> I
I --> J[Test with controlled inputs + monitor]
Key Registers for Debugging
| Register | Why It Matters |
|---|---|
D8005 |
General Error Code — first register to check when behavior is unexpected. |
D8006 |
User Program Execution Error Code — SCALE errors and other instruction faults are stored here. |
D8029 |
System Software Version — critical for determining which behavior is expected. |
D8330–D8333 |
Ethernet IP address validation during setup — confirms correct network configuration. |
D8002 |
CPU Module Type Information — confirms you are connected to the expected hardware. |
Quick Checklist
- Confirm external safety circuits and safe-machine state before monitoring, forcing, or downloading.
- If behavior is unexpected: read
D8005andD8006first and record evidence. - For scaling failures: check
D8006, verify S2 block validity (min/max ordering), and ensure SCALE isn't in an interrupt program. - If configuration changes are needed: avoid Online Edit for function area settings and expansion allocation — do a full download instead.
- For Ethernet issues: validate IP in
D8330–D8333and verify PLC status andD8029system software version.
Frequently Asked Questions
The most common pitfalls are: misreading device addresses due to the octal least-significant digit rule, overlapping data-register allocations between analog modules and instruction blocks like SCALE, accidentally writing into reserved special data registers (D8000–D8899), attempting to change function area settings during Online Edit, and intermittent Ethernet connections due to incomplete maintenance server configuration.
Read special data register D8005 for the general error code and D8006 for the user program execution error code. These are the primary diagnostic registers. A best practice is to create a latching error-capture rung that copies D8005/D8006 into a history region when a nonzero value is detected, so errors can be reviewed after the fact.
IDEC manuals require that emergency stop and interlocking circuits be configured outside the controller, since output devices can fail stuck-on or stuck-off. You must power down before installation, removal, wiring, maintenance, and inspection. Never rely solely on the PLC's internal logic for safety-critical functions.
D8006 stores the User Program Execution Error Code. When instructions like SCALE encounter invalid parameters (such as input range violations or min >= max conditions), the error code is written to D8006 and the instruction's outputs are not updated. It is also triggered when SCALE is used in an interrupt program, which is not allowed.
The FC6A user manual states that function area settings and expansion data register settings cannot be changed during Online Edit. To modify these, you must perform a full project download. This is a common pitfall where changes appear to be ignored because the engineer expects Online Edit to apply them.