[etherlab-users] DC, mode B not working

Miceli Jean-Pierre jean-pierre.miceli at heig-vd.ch
Tue Jan 22 19:00:50 CET 2019


Hi all,


I'm working on a kernel module which should control Beckhoff IN/OUT modules. The network is formed by a coupler (EK1100), digital inputs (EL1252) and digital outputs (EL2252).

For the EL2252, I have to make it work with DC in ModeB. I read most of the documentation/info available on this forum, but I cannot get a working configuration: or it does not work at all or there is a period glitch some time (the output switch on period to late).


Here is the my cyclic task only ethercat related function (full code attached):


while (!kthread_should_stop()) {
    usleep_range(period_time, period_time);

    // receive process data
    ecrt_master_receive(master);
    ecrt_domain_process(domain1);

    /* cyclic operations (read/write regs) */

    ecrt_domain_queue(domain1);
#if 1
    now = get_boot_time_ns();
    app_time += app_period + (now - sleep_time);
    ecrt_master_application_time(master, app_time);

    /* Get the reference clock from the DC master (first slave with DC) */
    ecrt_master_reference_clock_time(master, &ref_time);

    /* Sync other slaves with this reference time */
    ecrt_master_sync_slave_clocks(master);
#else
    /* Time method seem great but don't work... */

    /* Get the reference clock from the DC master (first slave with DC) */
    ecrt_master_reference_clock_time(master, &ref_time);

    /* Sync other slaves with this reference time */
    app_time += app_period + ref_time;
    ecrt_master_application_time(master, app_time);

    ecrt_master_sync_slave_clocks(master);
#endif

    ecrt_master_send(master);

    /* Update app_period... */


Any suggestion on what is wrong with my code/understanding ?


The way to toggle an output on the EL2252 is:

  1.  Set output state and Time the output should change
  2.  Activation

In my code, the output changes state each 10ms (just for the experiment)



Linux: RT-Preempt on Debian Wheezy (kernel 3.2)

Driver: e1000e


Thanks for your help

J-P
-------------- next part --------------
A non-text attachment was scrubbed...
Name: beckhoff_module_modeB.c
Type: text/x-csrc
Size: 12754 bytes
Desc: beckhoff_module_modeB.c
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20190122/a3918a4c/attachment.c>


More information about the etherlab-users mailing list