EtherCAT + CiA402 Servo: OP-State erreicht, aber keine Bewegung – nur Following

  • aDm1N
  • aDm1N's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
15 Nov 2025 22:52 #338477 by aDm1N
Hello everyone,I am currently trying to commission an EtherCAT servo drive (LC10E series) using LinuxCNC + LCEC + CiA402.
The slave enters OP-state correctly, torque is enabled, the shaft is held, but the servo never moves.
Any motion command (homing or G0/G1) results instantly in a following error.Below is a complete summary of everything that was tried so far.System Setup
  • LinuxCNC 2.10~pre0 (uspace), clean installation via .deb packages
  • EtherCAT master working
  • Slave recognized:
    ethercat slaves
    → PREOP / SAFEOP / OP all fine
  • Servo drive: LC10E series (Chinese EtherCAT servo)
  • EtherCAT mapping generated via
    lcec_configgen
  • CiA402 component compiled and installed from GitHub
  • Motor shaft is energized and held when LinuxCNC is activated
  • Mechanical disturbance triggers an error from the drive → feedback works
What has already been done1. XML generated correctly
  • Using
    lcec_configgen > ethercat-conf.xml
  • lcec_conf ethercat-conf.xml
    loads fine
  • halrun → show pin lcec
    shows all available pins
2. CiA402 integration
  • CiA402 compiled successfully
  • Configuration created with:
    • cia402.ini
    • cia402.hal
    • ethercat-conf.xml
  • CSP mode enabled:
    setp cia402.0.csp-mode 1
  • Controlword / Statusword / Velocity pins linked correctly
3. HAL issues fixed
  • A type mismatch (
    drv-fault
    bit vs u32) was fixed by removing the problematic nets
  • Removed unused or nonexistent pins (e.g. the LC10E offers no
    srv-actual-position
    PDO)
4. halrun diagnostics
  • EtherCAT pins work
  • OP-state reached
  • srv-actual-velocity
    ,
    srv-cia-controlword
    etc. update correctly
  • But actual velocity always stays 0
5. LinuxCNC behavior
  • Servo enables and holds torque
  • But no movement at all
  • Homing → following error
  • MDI:
    G0 X50
    → immediate following error
  • Trying to use the servo as spindle (
    M3 S1000
    ) → same issue
6. OP-state OK but drive ignores SetpointsThe drive goes to OP without issues, but does not react to:
  • target position
  • target velocity
  • target torque (CST tested)
The setpoints are written by LCEC, but the servo does not act on them.Current suspicionThe LC10E likely does not accept the setpoint PDOs generated by default, or requires:
  • additional manufacturer-specific objects
  • a different operation mode (CSV instead of CSP?)
  • special enable sequence
  • special mapping not included in the ESI
At the moment, the servo provides status feedback, but does not process any motion commands.QuestionsHas anyone successfully used:
  • LC10E, LC-EH, or similar Chinese EtherCAT servos with LinuxCNC?
  • CiA402 with CSP on these drives?
  • CSV or PP mode on such drives?
  • Custom PDO configuration?
Also helpful would be a minimal example of:
  • which PDOs are absolutely required for movement
  • how to modify
    ethercat-conf.xml
    for this family of drives
Any input is greatly appreciated – I am stuck at this very last step.Thanks,
MatthiasHallo zusammen,ich versuche derzeit, einen EtherCAT-Servotreiber (LC10E-Serie) mit LinuxCNC + LCEC + CiA402 in Betrieb zu nehmen.
Der Servo geht korrekt in den OP-Zustand, das Haltemoment ist da, aber er bewegt sich nicht.
Jeder Bewegungsbefehl (Homen oder G0/G1) führt sofort zu einem Schleppfehler.Hier eine vollständige Übersicht über alles, was bisher getestet wurde.System
  • LinuxCNC 2.10~pre0 (uspace), frisch installiert
  • EtherCAT läuft
  • Slave wird korrekt erkannt
  • Servotreiber: LC10E-Serie
  • XML generiert mit
    lcec_configgen
  • CiA402 kompiliert und installiert
  • Motorwelle wird gehalten
  • Bei manuellem Verdrehen erkennt der Treiber einen Fehler → Rückmeldung vorhanden
Bereits getestete Schritte1. XML korrekt erzeugt
  • lcec_configgen > ethercat-conf.xml
  • lcec_conf
    lädt die Datei ohne Fehler
  • halrun → show pin lcec
    listet alle Pins
2. CiA402 korrekt eingebunden
  • CSP-Modus aktiviert:
    setp cia402.0.csp-mode 1
  • Statusword, Controlword, Velocity usw. verknüpft
  • Nicht vorhandene Pins (z. B. actual-position) entfernt
3. HAL-Fehler behoben
  • Typfehler bei drv-fault (bit vs. u32) korrigiert
  • Fehlerhafte nets entfernt
4. Diagnose mit halrun
  • OP-State erreicht
  • EtherCAT-Pins aktiv
  • tatsächliche Geschwindigkeit bleibt allerdings immer 0
5. Verhalten in LinuxCNC
  • Servo geht in Betrieb
  • Homen → sofort Schleppfehler
  • G0 X50
    → sofort Schleppfehler
  • Test als Spindel (
    M3 S1000
    ) → ebenfalls keine Bewegung
6. GrundverhaltenDer Treiber arbeitet grundsätzlich,
aber reagiert nicht auf:
  • Soll-Geschwindigkeit
  • Soll-Position
  • Soll-Drehmoment
VermutungDer LC10E benötigt vermutlich:
  • spezielle PDO-Konfiguration
  • CSV statt CSP
  • zusätzliche Hersteller-spezifische Objekte
  • besondere Freigabesequenz
Momentan liefert der Servo Statusmeldungen,
führt aber keine Sollwerte aus.FragenHat jemand diesen oder ähnliche chinesische EtherCAT-Servotreiber erfolgreich mit LinuxCNC betrieben?Speziell:
  • LC10E / LC-EH / ähnliche Modelle
  • CiA402 im CSP-Modus
  • CSV / PP als Alternativen
  • angepasstes PDO-Mapping
Und:
Welche minimalen PDOs sind zwingend notwendig, damit Bewegung möglich ist?Jede Hilfe ist willkommen – ich bin jetzt sehr tief in der Konfiguration drin, aber komme an diesem Punkt nicht weiter.Danke,
Matthias
Attachments:

Please Log in or Create an account to join the conversation.

More
15 Nov 2025 23:41 #338480 by Hakan
I see there wasn't an "actual-position" pdo. There absolutely must be an actual-position PDO when using csp.
I think lcec_configgen didn't do a good job this time and maybe selected wrong PDOs.

There is a long thread about Lichuan LC10E and problems to get that to work.
On page 7 forum.linuxcnc.org/ethercat/52341-proble...rive?start=60#304887
they come to a working setup, a working ethercat-conf.xml
And when I look at it, it's just a standard setup with configurable PDOs, often used.
Combine the ethercat-conf.xml with the hal file from cia402 component github.com/dbraun1981/hal-cia402/blob/main/example/cia402.hal
and I think it should move.

Please Log in or Create an account to join the conversation.

Time to create page: 0.186 seconds
Powered by Kunena Forum