I have AMK servos with an integrated EtherCAT controller. They work with SoE protocol.
Older AMK iDT5 servos need Distributed Clocks for their operation. They don't work at all without DC. Newer AMK ihX servos run with or without DC.
The problem is that when the DC si turned on, servos occasionally crash (roughly every 20-30 seconds) and stop. They start again within 2 seconds. If DC is off (which is only possible on the ihX servo), this does not happen.
I also tried to set the PLL mode, where the master should synchronize with the DC (refClockSyncCycles = "-1"), but it's even worse. Then it falls every about 5 seconds.
I assume that the problem is that the servo does not get a PDO in time due to jitter and so it drops out.
So I set the servo-thread cycle in LinuxCNC to 0.98ms instead of 1ms. The setting of the NC-cycle and Sercos-cycle in the servo remained 1ms.
And at that moment the servo does not fall and runs without problems.
But I don't know what it will do with reading the feedback from the encoder, which probably takes place according to the settings of the Sercos-cycle still with a period of 1ms.
I tried it on different servos (iDT5, ihX) and on different platforms (PC, RPi4). The same problem is everywhere.
LCNC 2.8.2 and 2.9pre, EtherCAT master is patched version
github.com/ribalda/ethercat
.
Does anyone have a tip, please, what might be the problem?
Thanks in advance.