Troubleshooting
Startup issues
- EtherCAT validation fails: verify slave order/ids, confirm process image matches hardware, and check for missing power/ESTOP on drives.
- IOC won’t start after partial hardware failure: fix cabling/power first; restarting with missing slaves leaves the IOC unusable.
Motion issues
- Axis won’t enable: ensure auto-enable is configured in
axis.autoEnable (or motor record disabled), check STO and brake signals, and confirm SDOs downloaded for each drive channel. - Moves in wrong direction: prefer inverting at the slave via SDO; alternatives are encoder scaling sign or motor record
DIR (last resort). - Homing stalls: confirm homing sequence type, switch polarity, and latch wiring; use homing monitoring/tolerances and check limit override logic.
- Soft limits not respected: enable target/lag monitoring and confirm motor record soft limits are synced (if enabled).
PLC/scripting
- Limit logic overrides: when using
plcOverride for limits, write ax<id>.mon.lowlim/highlim in PLC code (1 = OK). - Command scripts: run through
SCRIPTEXEC macros carefully; mismatched macros often break SDO verification.
Diagnostics
- Use
read_el70xx_diag.sh or read_el5042_diag.sh for Beckhoff drives/encoders. - Check
iocsh output for YAML lint/schema errors (v8+). - If live reload in docs fails, ensure
hugo server is running and port is free.