[etherlab-users] PDO writing problem at 1ms
blanchet at iram.fr
Thu Feb 6 10:24:47 CET 2020
I do not have Elmo servo drives, but I have Kollmorgen AKD servo drives running
with official IgH EtherLab EtherCAT master on Linux kernel 3.14 PREEMPT-RT
My control loop runs at 500Hz (but I have tested that it works also at 1 KHz)
I have noticed that in the DS402 state machine, the status word does not change
immediately when you send a new control word. Therefore, I have to check the
status word before sending a new control word.
It makes the control loop slightly more complex, but it works.
See my example for AKD servo drive in attachment
On 2/5/20 3:22 PM, BUSSIERES Vincent wrote:
> I’m using etherlab master with *Gavin **unofficial patch for kernel 4.9 *to
> command an Elmo servodrive using CiA DSP 402 protocol.
> I mapped useful PDOs to command the servodrive. These PDO include controlword
> and statusword objects below:
> The master cycle loop period is 1 ms.
> Reading object seems to be OK, I can read successfully encoder position
> (Position Actual Value).
> But when I change controlword value, it doesn’t seem to be any effect. The state
> in state machine below doesn’t change (statusword doesn’t change).
> However when I change controlword value using sdo download in ethercat command
> lines tool, statusword immediately change. It seems to be a problem with writing
> When I increase master cycle loop period to 100ms, controlword updates seem to
> be take into account after several send commands.
> You can see in attachement a part of my source code in C++ / Qt. Init method for
> PDO mapping and a while loop for send/receive PDO.
> Best regards
> *Vincent BUSSIERES*
> *Responsable Technique Logiciel*
> /24 Avenue de Pasleck/
> /16400 LA COURONNE/
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 10035 bytes
Desc: not available
More information about the etherlab-users