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 <gav...@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.

_______________________________________________
etherlab-users mailing list
etherlab-users@etherlab.org
http://lists.etherlab.org/mailman/listinfo/etherlab-users

Reply via email to