I think it's something to do with clocks and drives not synchronising.
If I power the drives, but leave 2 and 3 disconnected (unplug CAT cable from drive 1 out), load up LinuxCNC, nothing works. Trying jog any axis results in a following error.
If I then reconnect the CAT cable, drives 2 and 3 (Y and Z) get configured, and are controllable under LinuxCNC.
This is the dmesg output -
Code:
[Dec 6 23:56]
[ +0.000006] EtherCAT 0: Starting EtherCAT-OP thread.
[ +0.169449] EtherCAT 0: Domain 0: Working counter changed to 2/9.
[ +0.308421] EtherCAT 0: Slave states on main device: OP.
[ +0.692942] EtherCAT 0: Domain 0: Working counter changed to 3/9.
[Dec 6 23:57] EtherCAT 0: 3 slave(s) responding on main device.
[ +0.000005] EtherCAT 0: Slave states on main device: INIT, OP.
[ +0.002685] EtherCAT 0: Scanning bus.
[ +1.533575] EtherCAT 0: Bus scanning completed in 1532 ms.
[ +0.000005] EtherCAT 0: Using slave 0 as DC reference clock.
[ +0.012266] EtherCAT 0: Slave states on main device: PREOP, OP.
[ +5.086653] EtherCAT WARNING 0-1: Slave did not sync after 5000 ms.
[ +0.004006] EtherCAT 0: Domain 0: Working counter changed to 6/9.
[ +1.004464] EtherCAT 0: Domain 0: Working counter changed to 9/9.
[ +0.039295] EtherCAT 0: Slave states on main device: OP.
LinuxCNC triggers the ethercat master to start.
Master finds the first slave, and the working counter stops at 3/9.
I then plug in the extra two slaves, the master realises all 3 slaves are now online, then scans/configures them, at which point I can control those two drives/axes with LinuxCNC.
The warning about Slaves not syncing appears quite often. Is this likely to be related to the problem?
db1982,
0x60C1 comes up as an invalid dictionary object. I tried various sub-registers, but always the same response.
I've had a quick search of the manufacturer supplied XML for sync (180 hits!), and it looks like the 1C32 and 1C33 registers have various sync/time variables.