[etherlab-users] Cyclic Synchronous Position mode

Michael Ruder rudermi at gmx.de
Tue May 15 18:51:47 CEST 2018


Hello,

I am currently experimenting with the Cyclic Synchronous Position mode of 
ELMO drives. I am using EtherLab 1.5.2 from the 1.5.2 branch with 
ec_generic on a PREEMPT RT system (kernel 4.14.28). 

If I compare the current position the drive reports in the frame I receive 
after I send a frame with a new target position, I see a certain offset 
between this current position and the new target position that I do not 
understand. If I divide the offset by the current velocity, I receive a 
constant time delay of about 3.45 ms (which means 3.45 cycles, as we have 
1 ms cycle time).

>From my understanding, the new target position should become active some 
time after the frame has been received (depending on several 0x1c32 
values), while the inputs are sampled at some other moment (depending on 
serveral 0x1c33 values). This could explain the 0.45 cycles as being the 
delay between input sampling and activating the output value.

However, this still does not explain the 3 cycle delay. One cycle I could 
understand because I compare the just sent target position with the right 
afterwards received current position, which is from the previous cycle. 
But where do the other 2 come from? I could not find any documentation 
about a FIFO like buffer in the drives.

Also, for precise synchronisation, I would need to know the 0.45 ms delay 
not just approximately by measureing it. Unfortunately, all 0x1c32/0x1c33 
(index 6 and 9) are 0 for my slaves. Is there some "general" information 
on those delays?

I am using SYNC0 (with period 1 ms like my cycle). The SYNC0 offset does 
not affect the above offset, which seems however understandable as all 
0x1c3x-delays are relative to the SYNC0 moment. The SYNC0 offset however 
does of course affect the real time moment the axis reaches the position.

Thanks for any help,
-- 
.      -Michael



More information about the Etherlab-users mailing list