[etherlab-users] DC sync1 shift time
Philippe Leuba
pleuba at swissonline.ch
Tue Mar 14 20:39:46 CET 2017
This is a little confusing, but with your help I think I was able to configure it…
The <ShiftTimeSync1> taken from the Beckhoff XML file must be put in the ‘sync1_cycle' parameter of ecrt_slave_config_dc method, and not in 'sync1_shift’ parameter that is ignored, so given:
<OpMode>
<Name>DC</Name>
<Desc>DC-Synchron</Desc>
<AssignActivate>#x700</AssignActivate>
<CycleTimeSync0 Factor="1">0</CycleTimeSync0>
<ShiftTimeSync0 Input="0">0</ShiftTimeSync0>
<CycleTimeSync1 Factor="1">0</CycleTimeSync1>
<ShiftTimeSync1>140000</ShiftTimeSync1>
</OpMode>
results in:
ecrt_slave_config_dc(sc, 0x700, cycleTime, 0, 140000, 0);
So the value 140000 is written into ESC register 0x9A4: Sync1 cycle time (Time between SYNC1 pulses and SYNC0 pulse in ns)...
Philippe Leuba
> On 13 Mar 2017, at 23:32, Gavin Lambert <gavinl at compacsort.com> wrote:
>
> Ah, ok. That setting actually modifies the SYNC1 cycle time (which is a parameter of ecrt_slave_config_dc) based on your actual cycle time – similarly you need to fill in the “real” cycle time values for those that have Factor=”1” in the XML.
>
> The appropriate calculations are given in ETG2000, section Types -> DeviceType -> Dc -> OpMode. Your application will need to calculate this itself based on your target cycle interval; the master library doesn’t do this for you.
>
> Also note that only the Cycle Times are written to the slaves, not the Shift Times. (The Sync0 shift time is however used to calculate the DC Start time.) For most slaves this is ok but for some you might need to explicitly configure 0x1C32/33 as well. You could try configuring it in TwinCAT and see what settings it uses for confirmation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20170314/4250b0c8/attachment-0004.htm>
More information about the Etherlab-users
mailing list