Ralph Oosterveld | 1 Apr 16:54 2014
Picon
Picon

Simulink compile error using Beckhoff EtherLab library blocks

hello,

I want to control a Beckhoff EL2008 module using the EtherLab library in Simulink. For this I am running MATLAB R2013b and EtherLab 2.1.0 on a Linux Mint Debian 64bit (201403) operating system. By using the terminal I can run the EtherCAT 1.5.2 protocol and I can see which modules are connected. Now I want to make a Simulink model using the Beckhoff blocks from the EtherLab library. When I have one Beckhoff digital output block in my Simulink model, I get the following error message during compiling.

Block error: 
Error reported by S-function 'ec_slave3' in 'test_program1/EL2xxx_0':
Variable context: PORT_CONFIG.output(1).pdo_data_type
Unknown data type 

Can anyone help me solve this problem?

Thank you in advance,
Ralph Oosterveld
<div><div dir="ltr">
<div>hello,</div>
<div><br></div>
<div>I want to control a Beckhoff EL2008 module using the EtherLab library in Simulink. For this I am running MATLAB R2013b and EtherLab 2.1.0 on a Linux Mint Debian 64bit (201403) operating system. By using the terminal I can run the EtherCAT 1.5.2 protocol and I can see which modules are connected. Now I want to make a Simulink model using the Beckhoff blocks from the EtherLab library. When I have one Beckhoff digital output block in my Simulink model, I get the following error message during compiling.</div>
<div><br></div>
<blockquote><blockquote class="gmail_quote">
Block error:&nbsp;</blockquote></blockquote>
<blockquote><blockquote class="gmail_quote">
Error reported by S-function 'ec_slave3' in 'test_program1/EL2xxx_0':<br>Variable context: PORT_CONFIG.output(1).pdo_data_type<br>Unknown data type&nbsp;</blockquote></blockquote>
<div><br></div>
<div>Can anyone help me solve this problem?</div>
<br clear="all"><div><div dir="ltr">
<div><span>Thank you in advance,</span></div>
<div>Ralph Oosterveld</div>
</div></div>
</div></div>
Lazaros Penteridis | 13 Mar 17:33 2014
Picon

Duplicated values bug, when measuring external frequency generator signal, with beckhoff EL3064 &EL3062 slaves and etherlab

Hello,

I have etherlab(the latest versions of all the components) installed, under a 3.4.69-rt85 linux kernel, in 3 different computers, which I connected with beckhoff EL3064 or EL3062 slave, via ethernet using the beckhoff EK1100 coupler.

Using this set up, I measure, as input to the EL3064 or EL3062 slaves, a sine wave signal with 40ms period, produced from a frequency generator. I performed this experiment using different sampling frequencies and I notice in the measured signals that some sample values are duplicated(two adjacent samples have the same value). The frequency that this duplicating error occurs varies relative to the sampling frequency that I choose for the slaves(the errors occur more rarely the higher the sampling period goes until the point that, with 1300us sampling period, I get a mean error occurrence frequency of approximately 1 per day.

Bellow you will find attached an image showing these duplications, for a signal that was measured with sampling period of 1000us. For the logging of the measured data both test manager scope and dls from igh where used, with no difference in the results of course.

The frequency of the duplications is not related to which of the 3 computers is being used, under the same sampling frequency, so I'm assuming it's not related to the computational power and the performance of my real-time systems.

Could you suggest what the reason for these duplications might be(beckhoff hardware problem, software bug) and if there is something I could do to get rid of it?

Thank you in advance,
Lazaros

<div><div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>Hello,<br><br>
</div>I have etherlab(the latest versions of all the components) installed, under a 3.4.69-rt85 linux kernel, in 3 different computers, which I connected with beckhoff EL3064 or EL3062 slave, via ethernet using the beckhoff EK1100 coupler.<br><br>Using this set up, I measure, as input to the EL3064 or EL3062 slaves, a sine wave signal with 40ms period, produced from a frequency generator. I performed this experiment using different sampling frequencies and I notice in the measured signals that some sample values are duplicated(two adjacent samples have the same value). The frequency that this duplicating error occurs varies relative to the sampling frequency that I choose for the slaves(the errors occur more rarely the higher the sampling period goes until the point that, with 1300us sampling period, I get a mean error occurrence frequency of approximately 1 per day.<br><br>
</div>Bellow you will find attached an image showing these duplications, for a signal that was measured with sampling period of 1000us. For the logging of the measured data both test manager scope and dls from igh where used, with no difference in the results of course.<br><br>
</div>The frequency of the duplications is not related to which of the 3 computers is being used, under the same sampling frequency, so I'm assuming it's not related to the computational power and the performance of my real-time systems.<br><br>
</div>Could you suggest what the reason for these duplications might be(beckhoff hardware problem, software bug) and if there is something I could do to get rid of it?<br><br>
</div>Thank you in advance,<br>
</div>Lazaros<br><div><div><br></div></div>
</div></div>
Steve Hartmann | 12 Mar 17:04 2014

Version tags

Today I was just curious to see what, if any,  changes had been committed since the 1.5.2 release.  I cloned the mercurial repository, switched over the the stable-1.5 branch and looked for tags.  There seems to be only one tag in that branch: version-1.3.2.

So, my question is:  Are releases tagged?  Am I missing something?  I have exactly no prior experience with mercurial, so ignorance on my part is a definite possibility.


Thanks,

Steve
<div>
<div>Today I was just curious to see what, if any, &nbsp;changes had been committed since the 1.5.2 release. &nbsp;I cloned the mercurial repository, switched over the the stable-1.5 branch and looked for tags. &nbsp;There seems to be only one tag in that branch: version-1.3.2.</div>
<div><br></div>
<div>So, my question is: &nbsp;Are releases tagged? &nbsp;Am I missing something? &nbsp;I have exactly no prior experience with mercurial, so ignorance on my part is a definite possibility.</div>
<div><br></div>
<div><br></div>
<div>Thanks,</div>
<div><br></div>
<div>Steve</div>
</div>
Jun Yuan | 12 Mar 12:46 2014

Re: Fwd: Help for the slave restart

Hello,

maybe you can give us your name the next time. You didn't sign your name in your last email.

Basically you didn't give enough information about what your problem is. Give the full information, otherwise, don't be surprised if your mail got ignored by the others.

If the slave can run after the re-power, what bothers you exactly? What do you mean by "I think it is not in CSP mode"? Could you tell us what makes you to THINK that the slave is not in CSP mode? Can you check it out whether or not your slave is in CSP mode? Does your slave have the object 0x6061/0 "modes of operation display"? There're hundreds of different servos in the market, and you didn't tell us which servo you're using.

Which version of Etherlabmaster are you using? The register 0x92c of the first slave stays 0 could be quite normal if you use SYNC_MASTER_TO_REF in the rtai_rtdm_dc example. So I didn't see your problem.

Souce code and log files can save a lot of time to find out where the problem is. Please also have them attached.

Regards,
Jun

I modified the example "rtai_rtdm_dc" , and can control a servo in CSP mode.
./ethercat reg_read -p0 -tsm32 0x92c
shows a good sync status.

But when the slave re-power ,.
./ethercat reg_read -p0 -tsm32 0x92c 
shows "0".
The slave also can run ,but I think it is not in CSP mode.
I don't know how to deal with the situation which slave re-power .

who can tell me how to do it in your programme .Thanks.



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

<div><div dir="ltr">
<p dir="ltr">Hello,</p>
<p dir="ltr">maybe you can give us your name the next time. You didn't sign your name in your last email.</p>
<p dir="ltr">Basically you didn't give enough information about what your problem is. <span name="ronaldo.mercado@..." class="">Give the full information, otherwise, don't be surprised if your mail got ignored by the others.<br></span></p>

<p dir="ltr">If the slave can run after the re-power, what bothers you exactly? What do you mean by "I think it is not in CSP mode"? Could you tell us what makes you to THINK that the slave is not in CSP mode? Can you check it out whether or not your slave is in CSP mode?  Does your slave have the object 0x6061/0 "modes of operation display"? There're hundreds of different servos in the market, and you didn't tell us which servo you're using.</p>

<p dir="ltr">Which version of Etherlabmaster are you using? The register 0x92c of the first slave stays 0 could be quite normal if you use SYNC_MASTER_TO_REF in the rtai_rtdm_dc example. So I didn't see your problem.<br></p>
<p dir="ltr">Souce code and log files can save a lot of time to find out where the problem is. Please also have them attached.<br></p>
<p dir="ltr">Regards,<br>
Jun</p>
<div>
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr">I modified the example "rtai_rtdm_dc" , and can control a servo in CSP mode.<div>

<span>./ethercat reg_read -p0 -tsm32 0x92c</span><br>
</div>
<div><span>shows a good sync status.</span></div>
<div><span><br></span></div>
<div><span>But when the slave re-power ,.</span></div>
<div><span>./ethercat reg_read -p0 -tsm32 0x92c&nbsp;</span></div>

<div><span>shows "0".</span></div>
<div><span>The slave also can run ,but I think it is not in CSP mode.</span></div>

<div>
<span>I don't know how to deal with the&nbsp;</span><span>situation which&nbsp;</span><span>slave re-power .</span>
</div>

<div><br></div>
<div><span>who can tell me how to do it in your programme .Thanks.</span></div>
<div>

<span><br></span>
</div>
</div>
</div>
<br>
</div>
<br>_______________________________________________<br>
etherlab-users mailing list<br><a href="mailto:etherlab-users@..." target="_blank">etherlab-users@...</a><br><a href="http://lists.etherlab.org/mailman/listinfo/etherlab-users" target="_blank">http://lists.etherlab.org/mailman/listinfo/etherlab-users</a><br><br>
</div>
</div></div>
ronaldo.mercado | 11 Mar 19:13 2014
Picon

Beckhoff EL2595 AL status message 0x001E: "Invalid input configuration"

Hello,

 

I am struggling with the control the constant current output slave EL2595.

 

The unit provides a few PDOs by default, to control the on/off

state. I wish to control the current output, (I believe at address 0x7000:11

"Output Current"). This should allow a slider to control the dimming of

an LED. This is not on the default PDO set.

 

I know it's supported because it was demonstrated with TwinCAT. TwinCAT

adds it to sync manager 2 with a check box.

 

My attempt with the attached c source program fails to set the slave

in the "OP" state, and the messages report "Invalid input

configuration".

 

Could you suggest what to do differently?

How do I add the PDO for the current control to the slave?

 

Thanks,

 

Ronaldo

 

 


 

-- 

This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
 



Mar 11 17:39:28 pc0074 kernel: EtherCAT: Requesting master 0...
Mar 11 17:39:28 pc0074 kernel: EtherCAT: Successfully requested master 0.
Mar 11 17:39:28 pc0074 kernel: EtherCAT 0: Domain0: Logical address 0x00000000, 12 byte, expected
working counter 1.
Mar 11 17:39:28 pc0074 kernel: EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 12 byte,
type LWR.
Mar 11 17:39:28 pc0074 kernel: EtherCAT 0: Master thread exited.
Mar 11 17:39:28 pc0074 kernel: EtherCAT 0: Starting EtherCAT-OP thread.
Mar 11 17:39:28 pc0074 kernel: EtherCAT WARNING 0: 1 datagram UNMATCHED!
Mar 11 17:39:28 pc0074 kernel: EtherCAT WARNING 0: No app_time received up to now, but master already active.
Mar 11 17:39:29 pc0074 kernel: EtherCAT ERROR 0-1: Failed to set SAFEOP state, slave refused state change
(PREOP + ERROR).
Mar 11 17:39:29 pc0074 kernel: EtherCAT ERROR 0-1: AL status message 0x001E: "Invalid input configuration".
Mar 11 17:39:29 pc0074 kernel: EtherCAT 0-1: Acknowledged state PREOP.
Mar 11 17:39:29 pc0074 kernel: EtherCAT 0: Slave states on main device: PREOP, OP.
Mar 11 17:39:33 pc0074 kernel: EtherCAT 0: Releasing master...
Mar 11 17:39:33 pc0074 kernel: EtherCAT 0: Master thread exited.
Mar 11 17:39:33 pc0074 kernel: EtherCAT 0: Starting EtherCAT-IDLE thread.
Mar 11 17:39:33 pc0074 kernel: EtherCAT 0: Released.
Mar 11 17:39:33 pc0074 kernel: EtherCAT ERROR 0-0: Failed to receive AL state datagram: Datagram initialized.
Mar 11 17:39:33 pc0074 kernel: EtherCAT 0: Slave states on main device: PREOP.
Mar 11 17:39:34 pc0074 kernel: EtherCAT WARNING: Datagram ffff88012a128678 (master-fsm) was SKIPPED 1 time.
#include <errno.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/resource.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <time.h>
#include <assert.h>


#include "ecrt.h"


static ec_master_t *master = NULL;
static ec_master_state_t master_state = {};

static ec_domain_t *domain1 = NULL;
static ec_domain_state_t domain1_state = {};

static ec_slave_config_t *sc_ledcontroller;
static ec_slave_config_state_t sc_ledcontroller_state = {};


// Timer
static unsigned int sig_alarms = 0;
static unsigned int user_alarms = 0;


// process data
static uint8_t *domain1_pd = NULL;

unsigned int pdo_offset[20];
unsigned int bit_position[20];

static unsigned int counter = 0;

// EL2595

static ec_pdo_entry_info_t slave_1_pdo_entries[] = {
    /* 7 entries */
    {0x0000, 0x00, 1}, /* Gap */
    {0x7000, 0x02, 1}, /* Output */
    {0x0000, 0x00, 1}, /* Gap */
    {0x7000, 0x04, 1}, /* Input trigger enable */
    {0x0000, 0x00, 3}, /* Gap */
    {0x7000, 0x08, 1}, /* Reset */
    {0x0000, 0x00, 8}, /* Gap */
    /* 3 entries */
    {0x7000, 0x11, 16}, 
    {0x7000, 0x12, 32}, 
    {0x7000, 0x13, 32}, 
    /* 9 entries */
    {0x6000, 0x01, 1}, /* Ready to activate */
    {0x6000, 0x02, 1}, /* Output active */
    {0x0000, 0x00, 4}, /* Gap */
    {0x6000, 0x07, 1}, /* Warning */
    {0x6000, 0x08, 1}, /* Error */
    {0x0000, 0x00, 3}, /* Gap */
    {0x6000, 0x0c, 1}, /* Digital input */
    {0x0000, 0x00, 3}, /* Gap */
    {0x6000, 0x10, 1}, /* TxPDO Toggle */

};

ec_pdo_info_t slave_1_pdos[] = {
    {0x1600, 7, slave_1_pdo_entries + 0}, /* DOX RxPDO-Map Control */
    {0x1601, 3, slave_1_pdo_entries + 7}, /* DOX RxPDO-Map Control */
    {0x1a00, 9, slave_1_pdo_entries + 10}, /* DOX TxPDO-Map Status */
};

ec_sync_info_t slave_1_syncs[] = {
    {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
    {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
    {2, EC_DIR_OUTPUT, 2, slave_1_pdos + 0, EC_WD_DISABLE},
    {3, EC_DIR_INPUT, 1, slave_1_pdos + 1, EC_WD_DISABLE},
    {0xff}
};


void check_domain1_state(void)
{
    ec_domain_state_t ds;

    ecrt_domain_state(domain1, &ds);

    if (ds.working_counter != domain1_state.working_counter)
        printf("Domain1: WC %u.\n", ds.working_counter);
    if (ds.wc_state != domain1_state.wc_state)
        printf("Domain1: State %u.\n", ds.wc_state);

    domain1_state = ds;
}

/*****************************************************************************/

void check_master_state(void)
{
    ec_master_state_t ms;

    ecrt_master_state(master, &ms);

    if (ms.slaves_responding != master_state.slaves_responding)
        printf("%u slave(s).\n", ms.slaves_responding);
    if (ms.al_states != master_state.al_states)
        printf("AL states: 0x%02X.\n", ms.al_states);
    if (ms.link_up != master_state.link_up)
        printf("Link is %s.\n", ms.link_up ? "up" : "down");

    master_state = ms;
}

/*****************************************************************************/

void check_slave_config_states(void)
{
    ec_slave_config_state_t s;
    static int initial_run = 1;

    ecrt_slave_config_state(sc_ledcontroller, &s);
    if (initial_run)
    {
        printf("Slave1: State 0x%02X.\n", s.al_state);
        
        printf("Slave1: %s.\n", s.online ? "online" : "offline");
        
        printf("Slave1: %soperational.\n",
                   s.operational ? "" : "Not ");
        initial_run = 0;
    }
    else
    {
        if (s.al_state != sc_ledcontroller_state.al_state)
            printf("Slave1: State 0x%02X.\n", s.al_state);
        if (s.online != sc_ledcontroller_state.online)
            printf("Slave1: %s.\n", s.online ? "online" : "offline");
        if (s.operational != sc_ledcontroller_state.operational)
            printf("Slave1: %soperational.\n",
                   s.operational ? "" : "Not ");
    }
    
    sc_ledcontroller_state = s;
}

static int tick_counter;

void cyclic_task()
{
    printf(".");

    const int FREQUENCY = 1000;
    const int TICK_PERIOD = 5000;
    // receive process data
    ecrt_master_receive(master);
    ecrt_domain_process(domain1);

    // check process data state (optional)
    check_domain1_state();

    if (counter) {
        counter--;
    } else { // do this at 1 Hz
        counter = FREQUENCY;

        // check for master state (optional)
        check_master_state();

        // check for islave configuration state(s) (optional)
        check_slave_config_states();
    }

    if (tick_counter) {
        tick_counter--;
    }
    else {
        tick_counter = TICK_PERIOD ;
    }
    
    // send process data
    ecrt_domain_queue(domain1);
    ecrt_master_send(master);
}

/****************************************************************************/

void signal_handler(int signum) {
    switch (signum) {
        case SIGALRM:
            sig_alarms++;
            break;
    }
}

#define VENDORID_BECKHOFF 0x00000002
#define PRODCODE_EK1101 0x044d2c52
#define PRODCODE_EL2595 0x0a233052

/****************************************************************************/

int main(int argc, char **argv)
{
 
    ec_pdo_entry_reg_t ek1101_registration;
    ec_pdo_entry_reg_t el2595_registration;

    struct sigaction sa;
    struct itimerval tv;
    
    ek1101_registration.alias = 0;
    ek1101_registration.position = 0;
    ek1101_registration.vendor_id = VENDORID_BECKHOFF;
    ek1101_registration.product_code = PRODCODE_EK1101;
    ek1101_registration.index = 0;
    ek1101_registration.subindex = 0;
    ek1101_registration.offset = &(pdo_offset[0]);
    ek1101_registration.bit_position = NULL;

    el2595_registration.alias = 0;
    el2595_registration.position = 1;
    el2595_registration.vendor_id = VENDORID_BECKHOFF;
    el2595_registration.product_code = PRODCODE_EL2595;
    el2595_registration.index = 0x7000;
    el2595_registration.subindex = 0x2;
    el2595_registration.offset = &(pdo_offset[1]);
    el2595_registration.bit_position = &(bit_position[1]);

    master = ecrt_request_master(0);
    if (!master)
        return -1;

    domain1 = ecrt_master_create_domain(master);
    if (!domain1)
    {
        printf("ecrt_master_create_domain returned null\n");
        return -1;
    }

    if (!(sc_ledcontroller = 
          ecrt_master_slave_config(
                                   master, 
                                   el2595_registration.alias,
                                   el2595_registration.position,
                                   el2595_registration.vendor_id,
                                   el2595_registration.product_code) 
          )) {
        fprintf(stderr, "Failed to get slave configuration.\n");
        return -1;
    }

    printf("Configuring PDOs...\n");
    if (ecrt_slave_config_pdos(sc_ledcontroller, EC_END, slave_1_syncs)) {
        fprintf(stderr, "Fa iled to configure PDOs.\n");
        return -1;
    }

    if (ecrt_domain_reg_pdo_entry_list(domain1, &el2595_registration)) {
        fprintf(stderr, "PDO entry registration failed!\n");
        return -1;
    }

    printf("Activating master...\n");
    int result = ecrt_master_activate(master);
    if (result)
    {
        printf("ecrt_master_activate result not zero: %d\n",
               result);
        return -1;
    }
    
    if (!(domain1_pd = ecrt_domain_data(domain1))) 
    {
        printf("ecrt_domain_data result NULL\n");
        return -1;
    }

    pid_t pid = getpid();
    if (setpriority(PRIO_PROCESS, pid, -19))
        fprintf(stderr, "Warning: Failed to set priority: %s\n",
                strerror(errno));
    
    printf("installing signal handler \n");
    sa.sa_handler = signal_handler;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;
    if (sigaction(SIGALRM, &sa, 0)) {
        fprintf(stderr, "Failed to install signal handler!\n");
        return -1;
    }

    printf("Starting timer...\n");
    tv.it_interval.tv_sec = 0;
    tv.it_interval.tv_usec = 10000;
    tv.it_value.tv_sec = 0;
    tv.it_value.tv_usec = 1000;
    if (setitimer(ITIMER_REAL, &tv, NULL)) {
        fprintf(stderr, "Failed to start timer: %s\n", strerror(errno));
        return 1;
    }

    printf("Started sig_alarms %d user_alarms %d\n", 
           sig_alarms, user_alarms);
    while (1)
    {
       pause();
       
       cyclic_task();
       user_alarms++;
       if (user_alarms % 100 == 0)
           printf("sig/user = %f\n", (float) sig_alarms/(float) user_alarms);
       
    }
    printf("Exit sig_alarms %d user_alarms %d\n", 
           sig_alarms, user_alarms);

    return 0;
}
$ ./el2595-1
Configuring PDOs...
Activating master...
Warning: Failed to set priority: Permission denied
installing signal handler 
Starting timer...
Started sig_alarms 0 user_alarms 0
.3 slave(s).
AL states: 0x02.
Link is up.
Slave1: State 0x02.
Slave1: online.
Slave1: Not
operational.
...................................................................................................sig/user
=
1.000000
....................................................................................................sig/user
=
1.000000
....................................................................................................sig/user
= 1.000000
^C
=== Master 0, Slave 1 ===
SDO 0x1000, "Device type"
  0x1000:00, r-r-r-, uint32, 32 bit, "Device type"
SDO 0x1008, "Device name"
  0x1008:00, r-r-r-, string, 48 bit, "Device name"
SDO 0x1009, "Hardware version"
  0x1009:00, r-r-r-, string, 16 bit, "Hardware version"
SDO 0x100a, "Software version"
  0x100a:00, r-r-r-, string, 16 bit, "Software version"
SDO 0x1011, "Restore default parameters"
  0x1011:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1011:01, rwrwrw, uint32, 32 bit, "SubIndex 001"
SDO 0x1018, "Identity"
  0x1018:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1018:01, r-r-r-, uint32, 32 bit, "Vendor ID"
  0x1018:02, r-r-r-, uint32, 32 bit, "Product code"
  0x1018:03, r-r-r-, uint32, 32 bit, "Revision"
  0x1018:04, r-r-r-, uint32, 32 bit, "Serial number"
SDO 0x10f0, "Backup parameter handling"
  0x10f0:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x10f0:01, r-r-r-, uint32, 32 bit, "Checksum"
SDO 0x10f3, "Diagnosis History"
  0x10f3:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x10f3:01, r-r-r-, uint8, 8 bit, "Maximum Messages"
  0x10f3:02, r-r-r-, uint8, 8 bit, "Newest Message"
  0x10f3:03, rwrwrw, uint8, 8 bit, "Newest Acknowledged Message"
  0x10f3:04, r-r-r-, bool, 1 bit, "New Messages Available"
  0x10f3:05, rwrwrw, uint16, 16 bit, "Flags"
  0x10f3:06, r-r-r-, octet_string, 224 bit, "Diagnosis Message 001"
  0x10f3:07, r-r-r-, octet_string, 224 bit, "Diagnosis Message 002"
  0x10f3:08, r-r-r-, octet_string, 224 bit, "Diagnosis Message 003"
  0x10f3:09, r-r-r-, octet_string, 224 bit, "Diagnosis Message 004"
  0x10f3:0a, r-r-r-, octet_string, 224 bit, "Diagnosis Message 005"
  0x10f3:0b, r-r-r-, octet_string, 224 bit, "Diagnosis Message 006"
  0x10f3:0c, r-r-r-, octet_string, 224 bit, "Diagnosis Message 007"
  0x10f3:0d, r-r-r-, octet_string, 224 bit, "Diagnosis Message 008"
  0x10f3:0e, r-r-r-, octet_string, 224 bit, "Diagnosis Message 009"
  0x10f3:0f, r-r-r-, octet_string, 224 bit, "Diagnosis Message 010"
  0x10f3:10, r-r-r-, octet_string, 224 bit, "Diagnosis Message 011"
  0x10f3:11, r-r-r-, octet_string, 224 bit, "Diagnosis Message 012"
  0x10f3:12, r-r-r-, octet_string, 224 bit, "Diagnosis Message 013"
  0x10f3:13, r-r-r-, octet_string, 224 bit, "Diagnosis Message 014"
  0x10f3:14, r-r-r-, octet_string, 224 bit, "Diagnosis Message 015"
  0x10f3:15, r-r-r-, octet_string, 224 bit, "Diagnosis Message 016"
  0x10f3:16, r-r-r-, octet_string, 224 bit, "Diagnosis Message 017"
  0x10f3:17, r-r-r-, octet_string, 224 bit, "Diagnosis Message 018"
  0x10f3:18, r-r-r-, octet_string, 224 bit, "Diagnosis Message 019"
  0x10f3:19, r-r-r-, octet_string, 224 bit, "Diagnosis Message 020"
  0x10f3:1a, r-r-r-, octet_string, 224 bit, "Diagnosis Message 021"
  0x10f3:1b, r-r-r-, octet_string, 224 bit, "Diagnosis Message 022"
  0x10f3:1c, r-r-r-, octet_string, 224 bit, "Diagnosis Message 023"
  0x10f3:1d, r-r-r-, octet_string, 224 bit, "Diagnosis Message 024"
  0x10f3:1e, r-r-r-, octet_string, 224 bit, "Diagnosis Message 025"
  0x10f3:1f, r-r-r-, octet_string, 224 bit, "Diagnosis Message 026"
  0x10f3:20, r-r-r-, octet_string, 224 bit, "Diagnosis Message 027"
  0x10f3:21, r-r-r-, octet_string, 224 bit, "Diagnosis Message 028"
  0x10f3:22, r-r-r-, octet_string, 224 bit, "Diagnosis Message 029"
  0x10f3:23, r-r-r-, octet_string, 224 bit, "Diagnosis Message 030"
  0x10f3:24, r-r-r-, octet_string, 224 bit, "Diagnosis Message 031"
  0x10f3:25, r-r-r-, octet_string, 224 bit, "Diagnosis Message 032"
  0x10f3:26, r-r-r-, octet_string, 224 bit, "Diagnosis Message 033"
  0x10f3:27, r-r-r-, octet_string, 224 bit, "Diagnosis Message 034"
  0x10f3:28, r-r-r-, octet_string, 224 bit, "Diagnosis Message 035"
  0x10f3:29, r-r-r-, octet_string, 224 bit, "Diagnosis Message 036"
  0x10f3:2a, r-r-r-, octet_string, 224 bit, "Diagnosis Message 037"
  0x10f3:2b, r-r-r-, octet_string, 224 bit, "Diagnosis Message 038"
  0x10f3:2c, r-r-r-, octet_string, 224 bit, "Diagnosis Message 039"
  0x10f3:2d, r-r-r-, octet_string, 224 bit, "Diagnosis Message 040"
  0x10f3:2e, r-r-r-, octet_string, 224 bit, "Diagnosis Message 041"
  0x10f3:2f, r-r-r-, octet_string, 224 bit, "Diagnosis Message 042"
  0x10f3:30, r-r-r-, octet_string, 224 bit, "Diagnosis Message 043"
  0x10f3:31, r-r-r-, octet_string, 224 bit, "Diagnosis Message 044"
  0x10f3:32, r-r-r-, octet_string, 224 bit, "Diagnosis Message 045"
  0x10f3:33, r-r-r-, octet_string, 224 bit, "Diagnosis Message 046"
  0x10f3:34, r-r-r-, octet_string, 224 bit, "Diagnosis Message 047"
  0x10f3:35, r-r-r-, octet_string, 224 bit, "Diagnosis Message 048"
  0x10f3:36, r-r-r-, octet_string, 224 bit, "Diagnosis Message 049"
  0x10f3:37, r-r-r-, octet_string, 224 bit, "Diagnosis Message 050"
SDO 0x10f8, "Actual Time Stamp"
  0x10f8:00, r-r-r-, uint64, 64 bit, "Actual Time Stamp"
SDO 0x1600, "DOX RxPDO-Map Control"
  0x1600:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1600:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
  0x1600:02, r-r-r-, uint32, 32 bit, "SubIndex 002"
  0x1600:03, r-r-r-, uint32, 32 bit, "SubIndex 003"
  0x1600:04, r-r-r-, uint32, 32 bit, "SubIndex 004"
  0x1600:05, r-r-r-, uint32, 32 bit, "SubIndex 005"
  0x1600:06, r-r-r-, uint32, 32 bit, "SubIndex 006"
  0x1600:07, r-r-r-, uint32, 32 bit, "SubIndex 007"
SDO 0x1601, "DOX RxPDO-Map Current"
  0x1601:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1601:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
SDO 0x1602, "DOX RxPDO-Map Impulse length"
  0x1602:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1602:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
SDO 0x1603, "DOX RxPDO-Map Trigger delay"
  0x1603:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1603:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
SDO 0x1604, "DC RxPDO-Map Sync"
  0x1604:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1604:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
  0x1604:02, r-r-r-, uint32, 32 bit, "SubIndex 002"
  0x1604:03, r-r-r-, uint32, 32 bit, "SubIndex 003"
SDO 0x1a00, "DOX TxPDO-Map Status"
  0x1a00:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1a00:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
  0x1a00:02, r-r-r-, uint32, 32 bit, "SubIndex 002"
  0x1a00:03, r-r-r-, uint32, 32 bit, "SubIndex 003"
  0x1a00:04, r-r-r-, uint32, 32 bit, "SubIndex 004"
  0x1a00:05, r-r-r-, uint32, 32 bit, "SubIndex 005"
  0x1a00:06, r-r-r-, uint32, 32 bit, "SubIndex 006"
  0x1a00:07, r-r-r-, uint32, 32 bit, "SubIndex 007"
  0x1a00:08, r-r-r-, uint32, 32 bit, "SubIndex 008"
  0x1a00:09, r-r-r-, uint32, 32 bit, "SubIndex 009"
SDO 0x1a01, "DOX TxPDO-Map Synchron info data"
  0x1a01:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1a01:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
  0x1a01:02, r-r-r-, uint32, 32 bit, "SubIndex 002"
SDO 0x1a02, "DC TxPDO-Map Feedback"
  0x1a02:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1a02:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
  0x1a02:02, r-r-r-, uint32, 32 bit, "SubIndex 002"
SDO 0x1c00, "Sync manager type"
  0x1c00:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1c00:01, r-r-r-, uint8, 8 bit, "SubIndex 001"
  0x1c00:02, r-r-r-, uint8, 8 bit, "SubIndex 002"
  0x1c00:03, r-r-r-, uint8, 8 bit, "SubIndex 003"
  0x1c00:04, r-r-r-, uint8, 8 bit, "SubIndex 004"
SDO 0x1c12, "RxPDO assign"
  0x1c12:00, rwr-r-, uint8, 8 bit, "SubIndex 000"
  0x1c12:01, rwr-r-, uint16, 16 bit, "SubIndex 001"
  0x1c12:02, rwr-r-, uint16, 16 bit, "SubIndex 002"
  0x1c12:03, rwr-r-, uint16, 16 bit, "SubIndex 003"
  0x1c12:04, rwr-r-, uint16, 16 bit, "SubIndex 004"
  0x1c12:05, rwr-r-, uint16, 16 bit, "SubIndex 005"
SDO 0x1c13, "TxPDO assign"
  0x1c13:00, rwr-r-, uint8, 8 bit, "SubIndex 000"
  0x1c13:01, rwr-r-, uint16, 16 bit, "SubIndex 001"
  0x1c13:02, rwr-r-, uint16, 16 bit, "SubIndex 002"
  0x1c13:03, rwr-r-, uint16, 16 bit, "SubIndex 003"
SDO 0x1c32, "SM output parameter"
  0x1c32:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1c32:01, rwrwrw, uint16, 16 bit, "Sync mode"
  0x1c32:02, rwrwrw, uint32, 32 bit, "Cycle time"
  0x1c32:03, r-r-r-, uint32, 32 bit, "Shift time"
  0x1c32:04, r-r-r-, uint16, 16 bit, "Sync modes supported"
  0x1c32:05, r-r-r-, uint32, 32 bit, "Minimum cycle time"
  0x1c32:06, r-r-r-, uint32, 32 bit, "Calc and copy time"
  0x1c32:07, r-r-r-, uint32, 32 bit, "Minimum delay time"
  0x1c32:08, rwrwrw, uint16, 16 bit, "Command"
  0x1c32:09, r-r-r-, uint32, 32 bit, "Maximum delay time"
  0x1c32:0a, r-r-r-, type 0000, 32 bit, "SubIndex 010"
  0x1c32:0b, r-r-r-, uint16, 16 bit, "SM event missed counter"
  0x1c32:0c, r-r-r-, uint16, 16 bit, "Cycle exceeded counter"
  0x1c32:0d, r-r-r-, uint16, 16 bit, "Shift too short counter"
  0x1c32:0e, r-r-r-, type 0000, 16 bit, "SubIndex 014"
  0x1c32:0f, r-r-r-, type 0000, 0 bit, "SubIndex 015"
  0x1c32:10, r-r-r-, type 0000, 0 bit, "SubIndex 016"
  0x1c32:11, r-r-r-, type 0000, 0 bit, "SubIndex 017"
  0x1c32:12, r-r-r-, type 0000, 0 bit, "SubIndex 018"
  0x1c32:13, r-r-r-, type 0000, 0 bit, "SubIndex 019"
  0x1c32:14, r-r-r-, type 0000, 0 bit, "SubIndex 020"
  0x1c32:15, r-r-r-, type 0000, 0 bit, "SubIndex 021"
  0x1c32:16, r-r-r-, type 0000, 0 bit, "SubIndex 022"
  0x1c32:17, r-r-r-, type 0000, 0 bit, "SubIndex 023"
  0x1c32:18, r-r-r-, type 0000, 0 bit, "SubIndex 024"
  0x1c32:19, r-r-r-, type 0000, 0 bit, "SubIndex 025"
  0x1c32:1a, r-r-r-, type 0000, 0 bit, "SubIndex 026"
  0x1c32:1b, r-r-r-, type 0000, 0 bit, "SubIndex 027"
  0x1c32:1c, r-r-r-, type 0000, 0 bit, "SubIndex 028"
  0x1c32:1d, r-r-r-, type 0000, 0 bit, "SubIndex 029"
  0x1c32:1e, r-r-r-, type 0000, 0 bit, "SubIndex 030"
  0x1c32:1f, r-r-r-, type 0000, 0 bit, "SubIndex 031"
  0x1c32:20, r-r-r-, bool, 1 bit, "Sync error"
SDO 0x1c33, "SM input parameter"
  0x1c33:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1c33:01, rwrwrw, uint16, 16 bit, "Sync mode"
  0x1c33:02, rwrwrw, uint32, 32 bit, "Cycle time"
  0x1c33:03, r-r-r-, uint32, 32 bit, "Shift time"
  0x1c33:04, r-r-r-, uint16, 16 bit, "Sync modes supported"
  0x1c33:05, r-r-r-, uint32, 32 bit, "Minimum cycle time"
  0x1c33:06, r-r-r-, uint32, 32 bit, "Calc and copy time"
  0x1c33:07, r-r-r-, uint32, 32 bit, "Minimum delay time"
  0x1c33:08, rwrwrw, uint16, 16 bit, "Command"
  0x1c33:09, r-r-r-, uint32, 32 bit, "Maximum delay time"
  0x1c33:0a, r-r-r-, type 0000, 32 bit, "SubIndex 010"
  0x1c33:0b, r-r-r-, uint16, 16 bit, "SM event missed counter"
  0x1c33:0c, r-r-r-, uint16, 16 bit, "Cycle exceeded counter"
  0x1c33:0d, r-r-r-, uint16, 16 bit, "Shift too short counter"
  0x1c33:0e, r-r-r-, type 0000, 16 bit, "SubIndex 014"
  0x1c33:0f, r-r-r-, type 0000, 0 bit, "SubIndex 015"
  0x1c33:10, r-r-r-, type 0000, 0 bit, "SubIndex 016"
  0x1c33:11, r-r-r-, type 0000, 0 bit, "SubIndex 017"
  0x1c33:12, r-r-r-, type 0000, 0 bit, "SubIndex 018"
  0x1c33:13, r-r-r-, type 0000, 0 bit, "SubIndex 019"
  0x1c33:14, r-r-r-, type 0000, 0 bit, "SubIndex 020"
  0x1c33:15, r-r-r-, type 0000, 0 bit, "SubIndex 021"
  0x1c33:16, r-r-r-, type 0000, 0 bit, "SubIndex 022"
  0x1c33:17, r-r-r-, type 0000, 0 bit, "SubIndex 023"
  0x1c33:18, r-r-r-, type 0000, 0 bit, "SubIndex 024"
  0x1c33:19, r-r-r-, type 0000, 0 bit, "SubIndex 025"
  0x1c33:1a, r-r-r-, type 0000, 0 bit, "SubIndex 026"
  0x1c33:1b, r-r-r-, type 0000, 0 bit, "SubIndex 027"
  0x1c33:1c, r-r-r-, type 0000, 0 bit, "SubIndex 028"
  0x1c33:1d, r-r-r-, type 0000, 0 bit, "SubIndex 029"
  0x1c33:1e, r-r-r-, type 0000, 0 bit, "SubIndex 030"
  0x1c33:1f, r-r-r-, type 0000, 0 bit, "SubIndex 031"
  0x1c33:20, r-r-r-, bool, 1 bit, "Sync error"
SDO 0x6000, "DOX Inputs Ch.1"
  0x6000:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x6000:01, r-r-r-, bool, 1 bit, "Ready to activate"
  0x6000:02, r-r-r-, bool, 1 bit, "Output active"
  0x6000:03, r-r-r-, type 0000, 1 bit, "SubIndex 003"
  0x6000:04, r-r-r-, type 0000, 3 bit, "SubIndex 004"
  0x6000:05, r-r-r-, type 0000, 0 bit, "SubIndex 005"
  0x6000:06, r-r-r-, type 0000, 0 bit, "SubIndex 006"
  0x6000:07, r-r-r-, bool, 1 bit, "Warning"
  0x6000:08, r-r-r-, bool, 1 bit, "Error"
  0x6000:09, r-r-r-, type 0000, 3 bit, "SubIndex 009"
  0x6000:0a, r-r-r-, type 0000, 0 bit, "SubIndex 010"
  0x6000:0b, r-r-r-, type 0000, 0 bit, "SubIndex 011"
  0x6000:0c, r-r-r-, bool, 1 bit, "Digital input"
  0x6000:0d, r-r-r-, type 0000, 3 bit, "SubIndex 013"
  0x6000:0e, r-r-r-, type 0000, 0 bit, "SubIndex 014"
  0x6000:0f, r-r-r-, type 0000, 0 bit, "SubIndex 015"
  0x6000:10, r-r-r-, bool, 1 bit, "TxPDO Toggle"
  0x6000:11, r-r-r-, uint16, 16 bit, "Info data 1"
  0x6000:12, r-r-r-, uint16, 16 bit, "Info data 2"
SDO 0x7000, "DOX Outputs Ch.1"
  0x7000:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x7000:01, r-r-r-, type 0000, 1 bit, "SubIndex 001"
  0x7000:02, r-r-r-, bool, 1 bit, "Output"
  0x7000:03, r-r-r-, type 0000, 1 bit, "SubIndex 003"
  0x7000:04, r-r-r-, bool, 1 bit, "Input trigger enable"
  0x7000:05, r-r-r-, type 0000, 3 bit, "SubIndex 005"
  0x7000:06, r-r-r-, type 0000, 0 bit, "SubIndex 006"
  0x7000:07, r-r-r-, type 0000, 0 bit, "SubIndex 007"
  0x7000:08, r-r-r-, bool, 1 bit, "Reset"
  0x7000:09, r-r-r-, type 0000, 8 bit, "SubIndex 009"
  0x7000:0a, r-r-r-, type 0000, 0 bit, "SubIndex 010"
  0x7000:0b, r-r-r-, type 0000, 0 bit, "SubIndex 011"
  0x7000:0c, r-r-r-, type 0000, 0 bit, "SubIndex 012"
  0x7000:0d, r-r-r-, type 0000, 0 bit, "SubIndex 013"
  0x7000:0e, r-r-r-, type 0000, 0 bit, "SubIndex 014"
  0x7000:0f, r-r-r-, type 0000, 0 bit, "SubIndex 015"
  0x7000:10, r-r-r-, type 0000, 0 bit, "SubIndex 016"
  0x7000:11, r-r-r-, uint16, 16 bit, "Output current"
  0x7000:12, r-r-r-, uint32, 32 bit, "Impulse length"
  0x7000:13, r-r-r-, uint32, 32 bit, "Trigger delay"
SDO 0x8000, "DOX Settings Ch.1"
  0x8000:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x8000:01, rwrwrw, type 0000, 16 bit, "SubIndex 001"
  0x8000:02, rwrwrw, uint16, 16 bit, "Hold current"
  0x8000:03, rwrwrw, uint16, 16 bit, "Supply voltage"
  0x8000:04, rwrwrw, uint16, 16 bit, "Output voltage"
  0x8000:05, rwrwrw, type 0000, 16 bit, "SubIndex 005"
  0x8000:06, rwrwrw, type 0000, 16 bit, "SubIndex 006"
  0x8000:07, rwrwrw, type 0000, 16 bit, "SubIndex 007"
  0x8000:08, rwrwrw, type 0000, 16 bit, "SubIndex 008"
  0x8000:09, rwrwrw, uint32, 32 bit, "Pulse on time (max.)"
  0x8000:0a, rwrwrw, uint32, 32 bit, "Pulse off time (min.)"
  0x8000:0b, rwrwrw, uint32, 32 bit, "Trigger delay (switch on)"
  0x8000:0c, rwrwrw, type 0000, 0 bit, "SubIndex 012"
  0x8000:0d, rwrwrw, type 0000, 0 bit, "SubIndex 013"
  0x8000:0e, rwrwrw, type 0000, 0 bit, "SubIndex 014"
  0x8000:0f, rwrwrw, type 0000, 0 bit, "SubIndex 015"
  0x8000:10, rwrwrw, type 0000, 0 bit, "SubIndex 016"
  0x8000:11, rwrwrw, uint8, 8 bit, "Warning level (supply voltage)"
  0x8000:12, rwrwrw, uint8, 8 bit, "Error level (supply voltage)"
  0x8000:13, rwrwrw, uint8, 8 bit, "Warning level (output voltage)"
  0x8000:14, rwrwrw, uint8, 8 bit, "Error level (output voltage)"
SDO 0x8001, "DOX Controller Settings Ch.1"
  0x8001:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x8001:01, rwrwrw, uint16, 16 bit, "Kp factor (curr.)"
  0x8001:02, rwrwrw, uint16, 16 bit, "Ki factor (curr.)"
  0x8001:03, rwrwrw, uint16, 16 bit, "Kd factor (curr.)"
SDO 0x8002, "DOX Features Ch.1"
  0x8002:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x8002:01, rwrwrw, type 0000, 1 bit, "SubIndex 001"
  0x8002:02, rwrwrw, type 0000, 1 bit, "SubIndex 002"
  0x8002:03, rwrwrw, type 0000, 1 bit, "SubIndex 003"
  0x8002:04, rwrwrw, bool, 1 bit, "Enable emergency flash"
  0x8002:05, rwrwrw, bool, 1 bit, "Enable automatic reset on error"
  0x8002:06, rwrwrw, bool, 1 bit, "Enable automatic saving of counter"
  0x8002:07, rwrwrw, type 0000, 2 bit, "SubIndex 007"
  0x8002:08, rwrwrw, type 0000, 0 bit, "SubIndex 008"
  0x8002:09, rwrwrw, type 0000, 4 bit, "SubIndex 009"
  0x8002:0a, rwrwrw, type 0000, 0 bit, "SubIndex 010"
  0x8002:0b, rwrwrw, type 0000, 0 bit, "SubIndex 011"
  0x8002:0c, rwrwrw, type 0000, 0 bit, "SubIndex 012"
  0x8002:0d, rwrwrw, type 0000, 4 bit, "SubIndex 013"
  0x8002:0e, rwrwrw, type 0000, 0 bit, "SubIndex 014"
  0x8002:0f, rwrwrw, type 0000, 0 bit, "SubIndex 015"
  0x8002:10, rwrwrw, type 0000, 0 bit, "SubIndex 016"
  0x8002:11, rwrwrw, type 0803, 8 bit, "Select info data 1"
  0x8002:12, rwrwrw, type 0000, 0 bit, "SubIndex 018"
  0x8002:13, rwrwrw, type 0000, 0 bit, "SubIndex 019"
  0x8002:14, rwrwrw, type 0000, 0 bit, "SubIndex 020"
  0x8002:15, rwrwrw, type 0000, 0 bit, "SubIndex 021"
  0x8002:16, rwrwrw, type 0000, 0 bit, "SubIndex 022"
  0x8002:17, rwrwrw, type 0000, 0 bit, "SubIndex 023"
  0x8002:18, rwrwrw, type 0000, 0 bit, "SubIndex 024"
  0x8002:19, rwrwrw, type 0804, 8 bit, "Select info data 2"
  0x8002:1a, rwrwrw, type 0000, 0 bit, "SubIndex 026"
  0x8002:1b, rwrwrw, type 0000, 0 bit, "SubIndex 027"
  0x8002:1c, rwrwrw, type 0000, 0 bit, "SubIndex 028"
  0x8002:1d, rwrwrw, type 0000, 0 bit, "SubIndex 029"
  0x8002:1e, rwrwrw, type 0000, 0 bit, "SubIndex 030"
  0x8002:1f, rwrwrw, type 0000, 0 bit, "SubIndex 031"
  0x8002:20, rwrwrw, type 0000, 0 bit, "SubIndex 032"
  0x8002:21, rwrwrw, type 0000, 8 bit, "SubIndex 033"
  0x8002:22, rwrwrw, type 0000, 0 bit, "SubIndex 034"
  0x8002:23, rwrwrw, type 0000, 0 bit, "SubIndex 035"
  0x8002:24, rwrwrw, type 0000, 0 bit, "SubIndex 036"
  0x8002:25, rwrwrw, type 0000, 0 bit, "SubIndex 037"
  0x8002:26, rwrwrw, type 0000, 0 bit, "SubIndex 038"
  0x8002:27, rwrwrw, type 0000, 0 bit, "SubIndex 039"
  0x8002:28, rwrwrw, type 0000, 0 bit, "SubIndex 040"
  0x8002:29, rwrwrw, type 0000, 7 bit, "SubIndex 041"
  0x8002:2a, rwrwrw, type 0000, 0 bit, "SubIndex 042"
  0x8002:2b, rwrwrw, type 0000, 0 bit, "SubIndex 043"
  0x8002:2c, rwrwrw, type 0000, 0 bit, "SubIndex 044"
  0x8002:2d, rwrwrw, type 0000, 0 bit, "SubIndex 045"
  0x8002:2e, rwrwrw, type 0000, 0 bit, "SubIndex 046"
  0x8002:2f, rwrwrw, type 0000, 0 bit, "SubIndex 047"
  0x8002:30, rwrwrw, bool, 1 bit, "Invert digital input"
  0x8002:31, rwrwrw, type 0000, 1 bit, "SubIndex 049"
  0x8002:32, rwrwrw, type 0801, 4 bit, "Function for input"
  0x8002:33, rwrwrw, type 0000, 3 bit, "SubIndex 051"
  0x8002:34, rwrwrw, type 0000, 8 bit, "SubIndex 052"
SDO 0x8003, "DOX Flash timing Ch.1"
  0x8003:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x8003:01, rwrwrw, uint16, 16 bit, "ON-Time 1"
  0x8003:02, rwrwrw, uint16, 16 bit, "OFF-Time 1"
  0x8003:03, rwrwrw, uint16, 16 bit, "ON-Time 2"
  0x8003:04, rwrwrw, uint16, 16 bit, "OFF-Time 2"
  0x8003:05, rwrwrw, uint16, 16 bit, "ON-Time 3"
  0x8003:06, rwrwrw, uint16, 16 bit, "OFF-Time 3"
  0x8003:07, rwrwrw, uint16, 16 bit, "ON-Time 4"
  0x8003:08, rwrwrw, uint16, 16 bit, "OFF-Time 4"
  0x8003:09, rwrwrw, uint16, 16 bit, "ON-Time 5"
  0x8003:0a, rwrwrw, uint16, 16 bit, "OFF-Time 5"
  0x8003:0b, rwrwrw, uint16, 16 bit, "ON-Time 6"
  0x8003:0c, rwrwrw, uint16, 16 bit, "OFF-Time 6"
SDO 0x800f, "DOX Vendor data"
  0x800f:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x800f:01, rwrwrw, int16, 16 bit, "Offset (output voltage)"
  0x800f:02, rwrwrw, uint16, 16 bit, "Gain (output voltage)"
  0x800f:03, rwrwrw, int16, 16 bit, "Offset (output current)"
  0x800f:04, rwrwrw, uint16, 16 bit, "Gain (output current)"
SDO 0x9000, "DOX Info data Ch.1"
  0x9000:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x9000:01, r-r-r-, uint16, 16 bit, "Status word"
  0x9000:02, r-r-r-, type 0000, 16 bit, "SubIndex 002"
  0x9000:03, r-r-r-, type 0000, 16 bit, "SubIndex 003"
  0x9000:04, r-r-r-, type 0000, 0 bit, "SubIndex 004"
  0x9000:05, r-r-r-, type 0000, 0 bit, "SubIndex 005"
  0x9000:06, r-r-r-, type 0000, 8 bit, "SubIndex 006"
  0x9000:07, r-r-r-, type 0000, 8 bit, "SubIndex 007"
  0x9000:08, r-r-r-, uint16, 16 bit, "Output voltage"
  0x9000:09, r-r-r-, uint16, 16 bit, "Output current"
  0x9000:0a, r-r-r-, type 0000, 0 bit, "SubIndex 010"
  0x9000:0b, r-r-r-, type 0000, 0 bit, "SubIndex 011"
  0x9000:0c, r-r-r-, type 0000, 0 bit, "SubIndex 012"
  0x9000:0d, r-r-r-, type 0000, 0 bit, "SubIndex 013"
  0x9000:0e, r-r-r-, type 0000, 0 bit, "SubIndex 014"
  0x9000:0f, r-r-r-, type 0000, 0 bit, "SubIndex 015"
  0x9000:10, r-r-r-, type 0000, 0 bit, "SubIndex 016"
  0x9000:11, r-r-r-, uint32, 32 bit, "Operating hour counter"
  0x9000:12, r-r-r-, uint32, 32 bit, "Switching operation counter"
SDO 0xa000, "DOX Diag data Ch.1"
  0xa000:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xa000:01, r-r-r-, bool, 1 bit, "Saturated"
  0xa000:02, r-r-r-, bool, 1 bit, "Over temperature"
  0xa000:03, r-r-r-, type 0000, 1 bit, "SubIndex 003"
  0xa000:04, r-r-r-, bool, 1 bit, "Under voltage (Supply)"
  0xa000:05, r-r-r-, bool, 1 bit, "Over voltage (Supply)"
  0xa000:06, r-r-r-, bool, 1 bit, "Short circuit"
  0xa000:07, r-r-r-, type 0000, 1 bit, "SubIndex 007"
  0xa000:08, r-r-r-, bool, 1 bit, "No control power"
  0xa000:09, r-r-r-, bool, 1 bit, "Misc error"
  0xa000:0a, r-r-r-, bool, 1 bit, "Under voltage (Output)"
  0xa000:0b, r-r-r-, bool, 1 bit, "Over voltage (Output)"
  0xa000:0c, r-r-r-, type 0000, 5 bit, "SubIndex 012"
SDO 0xf000, "Modular device profile"
  0xf000:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf000:01, r-r-r-, uint16, 16 bit, "Module index distance"
  0xf000:02, r-r-r-, uint16, 16 bit, "Maximum number of modules"
SDO 0xf008, "Code word"
  0xf008:00, rwrwrw, uint32, 32 bit, "Code word"
SDO 0xf010, "Module list"
  0xf010:00, rwr-r-, uint8, 8 bit, "SubIndex 000"
  0xf010:01, rwr-r-, uint32, 32 bit, "SubIndex 001"
SDO 0xf600, "DC Inputs"
  0xf600:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf600:01, r-r-r-, uint8, 8 bit, "Feedback"
  0xf600:02, r-r-r-, type 0000, 8 bit, "SubIndex 002"
SDO 0xf700, "DC Outputs"
  0xf700:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf700:01, r-r-r-, uint8, 8 bit, "Activate"
  0xf700:02, r-r-r-, type 0000, 8 bit, "SubIndex 002"
  0xf700:03, r-r-r-, uint64, 64 bit, "Start time"
SDO 0xf80f, "DOX Vendor data"
  0xf80f:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf80f:01, rwrwrw, uint32, 32 bit, "PWM Frequency"
  0xf80f:02, rwrwrw, uint16, 16 bit, "Deadtime"
  0xf80f:03, rwrwrw, uint16, 16 bit, "Deadtime space"
  0xf80f:04, rwrwrw, int8, 8 bit, "Warning temperature"
  0xf80f:05, rwrwrw, int8, 8 bit, "Switch off temperature"
  0xf80f:06, rwrwrw, uint16, 16 bit, "Analog trigger point"
  0xf80f:07, rwrwrw, int16, 16 bit, "SYNC 0 shift time"
SDO 0xf900, "DOX Info data"
  0xf900:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf900:01, r-r-r-, string, 16 bit, "Software version (driver)"
  0xf900:02, r-r-r-, int8, 8 bit, "Internal temperature"
  0xf900:03, r-r-r-, type 0000, 0 bit, "SubIndex 003"
  0xf900:04, r-r-r-, type 0000, 8 bit, "SubIndex 004"
  0xf900:05, r-r-r-, uint16, 16 bit, "Supply voltage"
  0xf900:06, r-r-r-, uint16, 16 bit, "Supply current"
SDO 0xfb00, "DOX Command"
  0xfb00:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xfb00:01, rwrwrw, octet_string, 16 bit, "Request"
  0xfb00:02, r-r-r-, uint8, 8 bit, "Status"
  0xfb00:03, r-r-r-, octet_string, 32 bit, "Response"
  0xfb00:04, ------, type 0000, 8 bit, "SubIndex 004"
=== Master 0, Slave 0 ===
Device: Main
State: OP
Flag: +
Identity:
  Vendor Id:       0x00000002
  Product code:    0x044d2c52
  Revision number: 0x00110000
  Serial number:   0x000055ff
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 0 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  MII   up    open    yes             -   3185523370           0           0
   1  EBUS  up    open    yes             1   3185523680         310         155
   2  MII   down  closed  no              -            -           -           -
   3  N/A   down  closed  no              -            -           -           -
General:
  Group: SystemBk
  Image name: 
  Order number: EK1101
  Device name: EK1101 EtherCAT-Koppler (2A E-Bus, ID-Switch)
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: -2000 mA
=== Master 0, Slave 1 ===
Device: Main
State: PREOP
Flag: E
Identity:
  Vendor Id:       0x00000002
  Product code:    0x0a233052
  Revision number: 0x00120000
  Serial number:   0x000060ce
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 155 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  EBUS  up    open    yes             0   3185630910           0         155
   1  EBUS  down  closed  no              -            -           -           -
   2  N/A   down  closed  no              -            -           -           -
   3  N/C   down  closed  no              -            -           -           -
Mailboxes:
  Bootstrap RX: 0x1000/244, TX: 0x10f4/244
  Standard  RX: 0x1000/128, TX: 0x1080/128
  Supported protocols: CoE, FoE
General:
  Group: DigOut
  Image name: 
  Order number: EL2595
  Device name: EL2595 1K. LED-Konstantstromklemme
  CoE details:
    Enable SDO: yes
    Enable SDO Info: yes
    Enable PDO Assign: yes
    Enable PDO Configuration: no
    Enable Upload at startup: no
    Enable SDO complete access: yes
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: 110 mA
0  0:0  OP     +  EK1101 EtherCAT-Koppler (2A E-Bus, ID-Switch)
1  0:1  PREOP  E  EL2595 1K. LED-Konstantstromklemme
=== Master 0, Slave 0 ===
SM0: PhysAddr 0x1000, DefaultSize    0, ControlRegister 0x00, Enable 0
  TxPDO 0x1a00 "ID"
    PDO entry 0x6000:01, 16 bit, "ID"
=== Master 0, Slave 1 ===
SM0: PhysAddr 0x1000, DefaultSize  128, ControlRegister 0x26, Enable 1
SM1: PhysAddr 0x1080, DefaultSize  128, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1100, DefaultSize    2, ControlRegister 0x24, Enable 1
  RxPDO 0x1600 "DOX RxPDO-Map Control"
    PDO entry 0x0000:00,  1 bit, "Gap"
    PDO entry 0x7000:02,  1 bit, "Output"
    PDO entry 0x0000:00,  1 bit, "Gap"
    PDO entry 0x7000:04,  1 bit, "Input trigger enable"
    PDO entry 0x0000:00,  3 bit, "Gap"
    PDO entry 0x7000:08,  1 bit, "Reset"
    PDO entry 0x0000:00,  8 bit, "Gap"
SM3: PhysAddr 0x1200, DefaultSize    2, ControlRegister 0x20, Enable 1
  TxPDO 0x1a00 "DOX TxPDO-Map Status"
    PDO entry 0x6000:01,  1 bit, "Ready to activate"
    PDO entry 0x6000:02,  1 bit, "Output active"
    PDO entry 0x0000:00,  4 bit, "Gap"
    PDO entry 0x6000:07,  1 bit, "Warning"
    PDO entry 0x6000:08,  1 bit, "Error"
    PDO entry 0x0000:00,  3 bit, "Gap"
    PDO entry 0x6000:0c,  1 bit, "Digital input"
    PDO entry 0x0000:00,  3 bit, "Gap"
    PDO entry 0x6000:10,  1 bit, "TxPDO Toggle"
=== Master 0, Slave 0 ===
SM0: PhysAddr 0x1000, DefaultSize    0, ControlRegister 0x00, Enable 0
  TxPDO 0x1a00 "ID"
    PDO entry 0x6000:01, 16 bit, "ID"
=== Master 0, Slave 1 ===
SM0: PhysAddr 0x1000, DefaultSize  128, ControlRegister 0x26, Enable 1
SM1: PhysAddr 0x1080, DefaultSize  128, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1100, DefaultSize    2, ControlRegister 0x24, Enable 1
  RxPDO 0x1600 "DOX RxPDO-Map Control"
    PDO entry 0x0000:00,  1 bit, "Gap"
    PDO entry 0x7000:02,  1 bit, "Output"
    PDO entry 0x0000:00,  1 bit, "Gap"
    PDO entry 0x7000:04,  1 bit, "Input trigger enable"
    PDO entry 0x0000:00,  3 bit, "Gap"
    PDO entry 0x7000:08,  1 bit, "Reset"
    PDO entry 0x0000:00,  8 bit, "Gap"
SM3: PhysAddr 0x1200, DefaultSize    2, ControlRegister 0x20, Enable 1
  TxPDO 0x1a00 "DOX TxPDO-Map Status"
    PDO entry 0x6000:01,  1 bit, "Ready to activate"
    PDO entry 0x6000:02,  1 bit, "Output active"
    PDO entry 0x0000:00,  4 bit, "Gap"
    PDO entry 0x6000:07,  1 bit, "Warning"
    PDO entry 0x6000:08,  1 bit, "Error"
    PDO entry 0x0000:00,  3 bit, "Gap"
    PDO entry 0x6000:0c,  1 bit, "Digital input"
    PDO entry 0x0000:00,  3 bit, "Gap"
    PDO entry 0x6000:10,  1 bit, "TxPDO Toggle"
JL Z | 10 Mar 09:51 2014
Picon

Fwd: Help for the slave restart

I modified the example "rtai_rtdm_dc" , and can control a servo in CSP mode.
./ethercat reg_read -p0 -tsm32 0x92c
shows a good sync status.

But when the slave re-power ,.
./ethercat reg_read -p0 -tsm32 0x92c 
shows "0".
The slave also can run ,but I think it is not in CSP mode.
I don't know how to deal with the situation which slave re-power .

who can tell me how to do it in your programme .Thanks.


<div><div dir="ltr">
<div class="gmail_quote">
<div dir="ltr">I modified the example "rtai_rtdm_dc" , and can control a servo in CSP mode.<div>
<span>./ethercat reg_read -p0 -tsm32 0x92c</span><br>
</div>
<div><span>shows a good sync status.</span></div>
<div><span><br></span></div>
<div><span>But when the slave re-power ,.</span></div>
<div><span>./ethercat reg_read -p0 -tsm32 0x92c&nbsp;</span></div>

<div><span>shows "0".</span></div>
<div><span>The slave also can run ,but I think it is not in CSP mode.</span></div>

<div>
<span>I don't know how to deal with the&nbsp;</span><span>situation which&nbsp;</span><span>slave re-power .</span>
</div>

<div><br></div>
<div><span>who can tell me how to do it in your programme .Thanks.</span></div>
<div>

<span><br></span>
</div>
</div>
</div>
<br>
</div></div>
Picon

Re: Ethercat Lenze 8400 Driver Interface... newer version...


Dear Wilhelm.

Here is the result of ethercat -p 0 xml

<?xml version="1.0" ?>
<EtherCATInfo>
  <!-- Slave 0 -->
  <Vendor>
    <Id>59</Id>
  </Vendor>
  <Descriptions>
    <Devices>
      <Device>
        <Type ProductCode="#x000cd156" RevisionNo="#x00000002"></Type>
      </Device>
    </Devices>
  </Descriptions>
</EtherCATInfo>

The Previuous Working Version is 1.05  while this not Working in Version 2.0

Best Regards

Pierfrancesco Tateo

---- Messaggio originale ----
Da : hm@...
Data : 28/02/2014 - 13:03 (CET)
A : etherlab-users@..., perlsoft@...
Oggetto : Re: [etherlab-users] Ethercat Lenze 8400 Driver Interface... newer version...

Hallo,

most likely the content of the EEPROM is faulty or missing.
Please post the output of: ethercat -p 0 xml

If this is the case:
You have to contact Lenze because they have to fix this.

Meanwhile you can try to copy the EEPROM-content from the old module to 
the new module using ethercat ssi_read and ssi_write, but there is NO 
guaranty that this will work!

Regards Wilhelm.

Am 28.02.2014 11:41, schrieb pier:
>
> Dear helper
>
> We would like  to use last version of Lenze ethercat module for Servo Drives
>
> We have tried the last 1.5.2  etherlab version but something is not
> accessible when
>
> setup is done...
>
>
> This is the states when it works with previus version :
> Here is the config for the one  that works (actually there 17 Lenze
> servos and all work):
> 0  0:0   OP  +  Lenze 8400 Device
>   1  0:1   OP  +  Lenze 8400 Device
>
>
> With the newer :
>
> Here is the configuration with the Lenze drive having the EtherCAT
> module that does not work:
> 0  0:0  PREOP  E  0x0000003b:0x000cd156
> 1  0:1  OP     +  EK1100 EtherCAT-Koppler (2A E-Bus)
>
>   For this test I have only initialized ID 0, 1 . The unit at ID 0 has
> an error because configuration failed. I have got the following
> Warnings/Error for ID 0:
> Feb 24 21:28:26 (none) kernel: [ 2251.893111] EtherCAT WARNING 0-0: PDOs
> configured for SM2, but slave does not provide the sync manager information!
> Feb 24 21:28:26 (none) kernel: [ 2251.893114] EtherCAT WARNING 0-0: PDOs
> configured for SM3, but slave does not provide the sync manager information!
> Feb 24 21:28:26 (none) kernel: [ 2251.893116] EtherCAT ERROR 0-0: Failed
> to determine PDO sync manager for FMMU!
>
>
> Any Idea what is possible to do ?
>
>
> Best Regards
>
> Pierfrancesco Tateo
>
>
>
> --
>
> Perlsoft GmbH
> Sennereigasse 27
> 3900 Brig
> Switzerland
>
> Tel. +41977022933
>
>
>
> _______________________________________________
> etherlab-users mailing list
> etherlab-users@...
> http://lists.etherlab.org/mailman/listinfo/etherlab-users
>

pier | 28 Feb 11:41 2014
Picon

Ethercat Lenze 8400 Driver Interface... newer version...


Dear helper

We would like  to use last version of Lenze ethercat module for Servo Drives

We have tried the last 1.5.2  etherlab version but something is not accessible when

setup is done...


This is the states when it works with previus version :
Here is the config for the one  that works (actually there 17 Lenze servos and all work):
0  0:0   OP  +  Lenze 8400 Device
 1  0:1   OP  +  Lenze 8400 Device


With the newer :

Here is the configuration with the Lenze drive having the EtherCAT module that does not work:
0  0:0  PREOP  E  0x0000003b:0x000cd156
1  0:1  OP     +  EK1100 EtherCAT-Koppler (2A E-Bus)

 For this test I have only initialized ID 0, 1 . The unit at ID 0 has an error because configuration failed. I have got the following Warnings/Error for ID 0:
Feb 24 21:28:26 (none) kernel: [ 2251.893111] EtherCAT WARNING 0-0: PDOs configured for SM2, but slave does not provide the sync manager information!
Feb 24 21:28:26 (none) kernel: [ 2251.893114] EtherCAT WARNING 0-0: PDOs configured for SM3, but slave does not provide the sync manager information!
Feb 24 21:28:26 (none) kernel: [ 2251.893116] EtherCAT ERROR 0-0: Failed to determine PDO sync manager for FMMU!


Any Idea what is possible to do ?


Best Regards

Pierfrancesco Tateo



-- Perlsoft GmbH Sennereigasse 27 3900 Brig Switzerland Tel. +41977022933
<div>
    <br>
    Dear helper<br><br>
    We would like&nbsp; to use last version of Lenze ethercat module for
    Servo Drives<br><br>
    We have tried the last 1.5.2&nbsp; etherlab version but something is not
    accessible when <br><br>
    setup is done...<br><br><br>
    This is the states when it works with previus version :<br><div>Here is the config for the one &nbsp;that works&nbsp;<span>(actually there 17 Lenze servos and all
        work)</span><span>:</span>
</div>
    <div>0 &nbsp;0:0 &nbsp; OP &nbsp;+ &nbsp;Lenze 8400 Device</div>
    <div>&nbsp;1 &nbsp;0:1 &nbsp; OP &nbsp;+ &nbsp;Lenze 8400 Device</div>
    <br><br>
    With the newer :<br><br><div><span>Here is the configuration with the
        Lenze drive having the EtherCAT module that does not work:</span></div>
    <div>0 &nbsp;0:0 &nbsp;PREOP &nbsp;E
      &nbsp;0x0000003b:0x000cd156</div>
    <div>1 &nbsp;0:1 &nbsp;OP &nbsp; &nbsp; + &nbsp;EK1100
      EtherCAT-Koppler (2A E-Bus)<br><br><div>&nbsp;For this test I have only initialized ID 0, 1 . The unit at
        ID 0 has an error because configuration failed. I have got the
        following Warnings/Error for ID 0:<br clear="none">
</div>
      <div>
        <div>Feb 24 21:28:26 (none) kernel: [ 2251.893111] EtherCAT
          WARNING 0-0: PDOs configured for SM2, but slave does not
          provide the sync manager information!</div>
        <div>Feb 24 21:28:26 (none) kernel: [ 2251.893114] EtherCAT
          WARNING 0-0: PDOs configured for SM3, but slave does not
          provide the sync manager information!</div>
        <div>Feb 24 21:28:26 (none) kernel: [ 2251.893116] EtherCAT
          ERROR 0-0: Failed to determine PDO sync manager for FMMU!</div>
      </div>
      <div><br clear="none"></div>
      <br>
</div>
    Any Idea what is possible to do ?<br><br><br>
    Best Regards<br><br>
    Pierfrancesco Tateo<br><br><br><br>-- 

Perlsoft GmbH
Sennereigasse 27
3900 Brig
Switzerland

Tel. +41977022933

  </div>
javier | 28 Feb 01:56 2014
Picon

Linux hal + EtherCat

Hi,

Somebody knows about an a example of a hal config file for connect to 
EtherCAT devices how EL1004.

Best Regards
Javier Gomez
Fredrik Viksten | 27 Feb 14:34 2014

How to only use one adapter for EtherCAT??

Hi all!

New user and first post here :) Hi all! And thanks for this EtherCAT
implementation!

The problem / question:
How would I go about setting the system up so I can A) use NIC eth0 for
normal network traffic and B) use an EtherCAT-optimized kernel driver for
NIC eth1 when they are both using the same chipset?

Some background:
I've been poking around with the EtherCAT master on and off during the
last few weeks. I'm still on a regular kernel (3.5.0-45-generic #68-Ubuntu
SMP x86_64) under Linux Mint 14 Nadia (i.e. no RT extensions).
I've been successful in communicating with a Beckhoff EK1100 and some DIO
and relays attached using a program I wrote. This I have managed to do
using both the generic driver of EtherCAT master 1.5.2 and using a native
driver (I merged the EtherCAT-specifics of the r8169 module for 3.4 into
the kernel driver for 3.5, which I attach here if someone else wants to
use it. I can not guarantee that this is working though!).

From what I understand it should be possible to have more than one
Ethernet NIC installed and have EtherCAT only reserve one of thoes through
setting in /etc/sysconfig/ethercat ??? Is this true also for two NICs
using the same chip/driver? I'm guessing it is, what is otherwise the use
of the MASTER0_DEVICE setting in /etc/sysconfig/ethercat?

Anyway, I'm using two r8169 NICs in my system. NIC eth0 is managed by
NetworkManager and eth1 is not managed by NM. NIC eth0 has hw-address
00:24:1d:bf:c8:9f and eth1 has hw-address 00:e0:4c:68:17:62. When I set
MASTER0_DEVICE="00:e0:4c:68:17:62" and DEVICE_MODULES="generic" the
EtherCAT master only uses eth1 and I can still read email, surf the web
etc through my primary eth0 interface. IF however, I change to
DEVICE_MODULES="r8169" the EtherCAT communication will still work through
eth1 but my normal network connection through eth0 gets dropped since the
EtherCAT master steals this interface too! Is this supposed to happen?

This is the relevant part of /var/log/syslog for the case of
DEVICE_MODULES="r8169" after running "sudo /etc/init.d/ethercat start":

Feb 27 14:08:06 bumblebee kernel: [  285.271658] EtherCAT: Master driver
1.5.2 2eff7c993a63
Feb 27 14:08:06 bumblebee kernel: [  285.271807] EtherCAT: 1 master
waiting for devices.
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): carrier now
OFF (device state 100, deferring action for 4 seconds)
Feb 27 14:08:06 bumblebee dhclient: receive_packet failed on eth0: Network
is down
Feb 27 14:08:06 bumblebee NetworkManager[879]:    SCPlugin-Ifupdown:
devices removed (path:
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/eth0, iface: eth0)
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): now unmanaged
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): device state
change: activated -> unmanaged (reason 'removed') [100 10 36]
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): deactivating
device (reason 'removed') [36]
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): canceled
DHCP transaction, DHCP client pid 2264
Feb 27 14:08:06 bumblebee NetworkManager[879]: <warn> (6) failed to find
interface name for index
Feb 27 14:08:06 bumblebee NetworkManager[879]:
nm_system_iface_flush_routes: assertion `iface != NULL' failed
Feb 27 14:08:06 bumblebee NetworkManager[879]: <warn> (6) failed to find
interface name for index
Feb 27 14:08:06 bumblebee NetworkManager[879]: <warn> DNS: plugin dnsmasq
update failed
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> ((null)): removing
resolv.conf from /sbin/resolvconf
Feb 27 14:08:06 bumblebee dnsmasq[1378]: setting upstream servers from DBus
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): cleaning up...
Feb 27 14:08:06 bumblebee NetworkManager[879]: <warn> (6) failed to find
interface name for index
Feb 27 14:08:06 bumblebee NetworkManager[879]:
(nm-system.c:769):nm_system_iface_get_flags: runtime check failed: (iface
!= NULL)
Feb 27 14:08:06 bumblebee NetworkManager[879]: <error> [1393506486.624702]
[nm-system.c:771] nm_system_iface_get_flags(): (unknown): failed to get
interface link object
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> Unmanaged Device
found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> Unmanaged Device
found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Feb 27 14:08:06 bumblebee dbus[767]: [system] Activating service
name='org.freedesktop.nm_dispatcher' (using servicehelper)
Feb 27 14:08:06 bumblebee dbus[767]: [system] Successfully activated
service 'org.freedesktop.nm_dispatcher'
Feb 27 14:08:07 bumblebee NetworkManager[879]:    SCPlugin-Ifupdown:
devices removed (path:
/sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/net/eth1, iface: eth1)
Feb 27 14:08:07 bumblebee NetworkManager[879]:    Ifupdown: get unmanaged
devices count: 0
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): now managed
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): device state
change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> (5) failed to find
interface name for index
Feb 27 14:08:07 bumblebee NetworkManager[879]:
(nm-system.c:769):nm_system_iface_get_flags: runtime check failed: (iface
!= NULL)
Feb 27 14:08:07 bumblebee NetworkManager[879]: <error> [1393506487.658396]
[nm-system.c:771] nm_system_iface_get_flags(): (unknown): failed to get
interface link object
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): bringing up
device.
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): deactivating
device (reason 'managed') [2]
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> (5) failed to find
interface name for index
Feb 27 14:08:07 bumblebee NetworkManager[879]:
nm_system_iface_flush_routes: assertion `iface != NULL' failed
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> (5) failed to find
interface name for index
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): now unmanaged
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): device state
change: unavailable -> unmanaged (reason 'removed') [20 10 36]
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> (5) failed to find
interface name for index
Feb 27 14:08:07 bumblebee NetworkManager[879]:
(nm-system.c:769):nm_system_iface_get_flags: runtime check failed: (iface
!= NULL)
Feb 27 14:08:07 bumblebee NetworkManager[879]: <error> [1393506487.663503]
[nm-system.c:771] nm_system_iface_get_flags(): (unknown): failed to get
interface link object
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> Unmanaged Device
found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> Unmanaged Device
found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Feb 27 14:08:07 bumblebee kernel: [  286.587558] ec_r8169 Gigabit Ethernet
driver 2.3LK-NAPI loaded
Feb 27 14:08:07 bumblebee kernel: [  286.587673] ec_r8169 0000:02:00.0:
irq 43 for MSI/MSI-X
Feb 27 14:08:07 bumblebee kernel: [  286.587698] EtherCAT: Accepting
00:E0:4C:68:17:62 as main device for master 0.
Feb 27 14:08:07 bumblebee kernel: [  286.587706] ec_r8169 0000:02:00.0:
(unregistered net_device): RTL8168c/8111c at 0xffffc90000614000,
00:e0:4c:68:17:62, XID 1c4000c0 IRQ 43
Feb 27 14:08:07 bumblebee kernel: [  286.587710] ec_r8169 0000:02:00.0:
(unregistered net_device): jumbo features [frames: 6128 bytes, tx
checksumming: ko]
Feb 27 14:08:07 bumblebee kernel: [  286.595747] EtherCAT 0: Starting
EtherCAT-IDLE thread.
Feb 27 14:08:07 bumblebee kernel: [  286.595855] ec_r8169 Gigabit Ethernet
driver 2.3LK-NAPI loaded
Feb 27 14:08:07 bumblebee kernel: [  286.595980] ec_r8169 0000:03:00.0:
irq 44 for MSI/MSI-X
Feb 27 14:08:07 bumblebee kernel: [  286.600181] ec_r8169 0000:03:00.0:
eth0: RTL8168c/8111c at 0xffffc90000650000, 00:24:1d:bf:c8:9f, XID
1c4000c0 IRQ 44
Feb 27 14:08:07 bumblebee kernel: [  286.600188] ec_r8169 0000:03:00.0:
eth0: jumbo features [frames: 6128 bytes, tx checksumming: ko]
Feb 27 14:08:07 bumblebee kernel: [  286.603182] genirq: Flags mismatch
irq 0. 00000000 (eth0) vs. 00015a20 (timer)
Feb 27 14:08:07 bumblebee NetworkManager[879]:    SCPlugin-Ifupdown:
devices added (path:
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/eth0, iface: eth0)
Feb 27 14:08:07 bumblebee NetworkManager[879]:    SCPlugin-Ifupdown:
device added (path:
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/eth0, iface: eth0):
no ifupdown configuration found.
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> failed to allocate
link cache: (-10) Operation not supported
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): carrier is OFF
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): new Ethernet
device (driver: 'ec_r8169' ifindex: 7)
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): exported as
/org/freedesktop/NetworkManager/Devices/5
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): now managed
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): device state
change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): bringing up
device.
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): deactivating
device (reason 'managed') [2]
Feb 27 14:08:07 bumblebee kernel: [  286.607050] IPv6:
ADDRCONF(NETDEV_UP): eth0: link is not ready
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> Added default wired
connection 'Wired connection 2' for
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/eth0
Feb 27 14:08:09 bumblebee kernel: [  288.584997] EtherCAT 0: Link state of
ecm0 changed to UP.
Feb 27 14:08:09 bumblebee kernel: [  288.589019] EtherCAT 0: 3 slave(s)
responding on main device.
Feb 27 14:08:09 bumblebee kernel: [  288.589022] EtherCAT 0: Slave states
on main device: PREOP.
Feb 27 14:08:09 bumblebee kernel: [  288.589073] EtherCAT 0: Scanning bus.
Feb 27 14:08:09 bumblebee kernel: [  288.801674] EtherCAT 0: Bus scanning
completed in 212 ms.
Feb 27 14:08:09 bumblebee kernel: [  288.801678] EtherCAT 0: Using slave 0
as DC reference clock.

Please help!

Cheers
Fredrik
Attachment (r8169-3.5-ethercat.c): text/x-csrc, 164 KiB
Hi all!

New user and first post here :) Hi all! And thanks for this EtherCAT
implementation!

The problem / question:
How would I go about setting the system up so I can A) use NIC eth0 for
normal network traffic and B) use an EtherCAT-optimized kernel driver for
NIC eth1 when they are both using the same chipset?

Some background:
I've been poking around with the EtherCAT master on and off during the
last few weeks. I'm still on a regular kernel (3.5.0-45-generic #68-Ubuntu
SMP x86_64) under Linux Mint 14 Nadia (i.e. no RT extensions).
I've been successful in communicating with a Beckhoff EK1100 and some DIO
and relays attached using a program I wrote. This I have managed to do
using both the generic driver of EtherCAT master 1.5.2 and using a native
driver (I merged the EtherCAT-specifics of the r8169 module for 3.4 into
the kernel driver for 3.5, which I attach here if someone else wants to
use it. I can not guarantee that this is working though!).

From what I understand it should be possible to have more than one
Ethernet NIC installed and have EtherCAT only reserve one of thoes through
setting in /etc/sysconfig/ethercat ??? Is this true also for two NICs
using the same chip/driver? I'm guessing it is, what is otherwise the use
of the MASTER0_DEVICE setting in /etc/sysconfig/ethercat?

Anyway, I'm using two r8169 NICs in my system. NIC eth0 is managed by
NetworkManager and eth1 is not managed by NM. NIC eth0 has hw-address
00:24:1d:bf:c8:9f and eth1 has hw-address 00:e0:4c:68:17:62. When I set
MASTER0_DEVICE="00:e0:4c:68:17:62" and DEVICE_MODULES="generic" the
EtherCAT master only uses eth1 and I can still read email, surf the web
etc through my primary eth0 interface. IF however, I change to
DEVICE_MODULES="r8169" the EtherCAT communication will still work through
eth1 but my normal network connection through eth0 gets dropped since the
EtherCAT master steals this interface too! Is this supposed to happen?

This is the relevant part of /var/log/syslog for the case of
DEVICE_MODULES="r8169" after running "sudo /etc/init.d/ethercat start":

Feb 27 14:08:06 bumblebee kernel: [  285.271658] EtherCAT: Master driver
1.5.2 2eff7c993a63
Feb 27 14:08:06 bumblebee kernel: [  285.271807] EtherCAT: 1 master
waiting for devices.
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): carrier now
OFF (device state 100, deferring action for 4 seconds)
Feb 27 14:08:06 bumblebee dhclient: receive_packet failed on eth0: Network
is down
Feb 27 14:08:06 bumblebee NetworkManager[879]:    SCPlugin-Ifupdown:
devices removed (path:
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/eth0, iface: eth0)
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): now unmanaged
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): device state
change: activated -> unmanaged (reason 'removed') [100 10 36]
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): deactivating
device (reason 'removed') [36]
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): canceled
DHCP transaction, DHCP client pid 2264
Feb 27 14:08:06 bumblebee NetworkManager[879]: <warn> (6) failed to find
interface name for index
Feb 27 14:08:06 bumblebee NetworkManager[879]:
nm_system_iface_flush_routes: assertion `iface != NULL' failed
Feb 27 14:08:06 bumblebee NetworkManager[879]: <warn> (6) failed to find
interface name for index
Feb 27 14:08:06 bumblebee NetworkManager[879]: <warn> DNS: plugin dnsmasq
update failed
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> ((null)): removing
resolv.conf from /sbin/resolvconf
Feb 27 14:08:06 bumblebee dnsmasq[1378]: setting upstream servers from DBus
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> (eth0): cleaning up...
Feb 27 14:08:06 bumblebee NetworkManager[879]: <warn> (6) failed to find
interface name for index
Feb 27 14:08:06 bumblebee NetworkManager[879]:
(nm-system.c:769):nm_system_iface_get_flags: runtime check failed: (iface
!= NULL)
Feb 27 14:08:06 bumblebee NetworkManager[879]: <error> [1393506486.624702]
[nm-system.c:771] nm_system_iface_get_flags(): (unknown): failed to get
interface link object
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> Unmanaged Device
found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Feb 27 14:08:06 bumblebee NetworkManager[879]: <info> Unmanaged Device
found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Feb 27 14:08:06 bumblebee dbus[767]: [system] Activating service
name='org.freedesktop.nm_dispatcher' (using servicehelper)
Feb 27 14:08:06 bumblebee dbus[767]: [system] Successfully activated
service 'org.freedesktop.nm_dispatcher'
Feb 27 14:08:07 bumblebee NetworkManager[879]:    SCPlugin-Ifupdown:
devices removed (path:
/sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/net/eth1, iface: eth1)
Feb 27 14:08:07 bumblebee NetworkManager[879]:    Ifupdown: get unmanaged
devices count: 0
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): now managed
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): device state
change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> (5) failed to find
interface name for index
Feb 27 14:08:07 bumblebee NetworkManager[879]:
(nm-system.c:769):nm_system_iface_get_flags: runtime check failed: (iface
!= NULL)
Feb 27 14:08:07 bumblebee NetworkManager[879]: <error> [1393506487.658396]
[nm-system.c:771] nm_system_iface_get_flags(): (unknown): failed to get
interface link object
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): bringing up
device.
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): deactivating
device (reason 'managed') [2]
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> (5) failed to find
interface name for index
Feb 27 14:08:07 bumblebee NetworkManager[879]:
nm_system_iface_flush_routes: assertion `iface != NULL' failed
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> (5) failed to find
interface name for index
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): now unmanaged
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth1): device state
change: unavailable -> unmanaged (reason 'removed') [20 10 36]
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> (5) failed to find
interface name for index
Feb 27 14:08:07 bumblebee NetworkManager[879]:
(nm-system.c:769):nm_system_iface_get_flags: runtime check failed: (iface
!= NULL)
Feb 27 14:08:07 bumblebee NetworkManager[879]: <error> [1393506487.663503]
[nm-system.c:771] nm_system_iface_get_flags(): (unknown): failed to get
interface link object
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> Unmanaged Device
found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> Unmanaged Device
found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Feb 27 14:08:07 bumblebee kernel: [  286.587558] ec_r8169 Gigabit Ethernet
driver 2.3LK-NAPI loaded
Feb 27 14:08:07 bumblebee kernel: [  286.587673] ec_r8169 0000:02:00.0:
irq 43 for MSI/MSI-X
Feb 27 14:08:07 bumblebee kernel: [  286.587698] EtherCAT: Accepting
00:E0:4C:68:17:62 as main device for master 0.
Feb 27 14:08:07 bumblebee kernel: [  286.587706] ec_r8169 0000:02:00.0:
(unregistered net_device): RTL8168c/8111c at 0xffffc90000614000,
00:e0:4c:68:17:62, XID 1c4000c0 IRQ 43
Feb 27 14:08:07 bumblebee kernel: [  286.587710] ec_r8169 0000:02:00.0:
(unregistered net_device): jumbo features [frames: 6128 bytes, tx
checksumming: ko]
Feb 27 14:08:07 bumblebee kernel: [  286.595747] EtherCAT 0: Starting
EtherCAT-IDLE thread.
Feb 27 14:08:07 bumblebee kernel: [  286.595855] ec_r8169 Gigabit Ethernet
driver 2.3LK-NAPI loaded
Feb 27 14:08:07 bumblebee kernel: [  286.595980] ec_r8169 0000:03:00.0:
irq 44 for MSI/MSI-X
Feb 27 14:08:07 bumblebee kernel: [  286.600181] ec_r8169 0000:03:00.0:
eth0: RTL8168c/8111c at 0xffffc90000650000, 00:24:1d:bf:c8:9f, XID
1c4000c0 IRQ 44
Feb 27 14:08:07 bumblebee kernel: [  286.600188] ec_r8169 0000:03:00.0:
eth0: jumbo features [frames: 6128 bytes, tx checksumming: ko]
Feb 27 14:08:07 bumblebee kernel: [  286.603182] genirq: Flags mismatch
irq 0. 00000000 (eth0) vs. 00015a20 (timer)
Feb 27 14:08:07 bumblebee NetworkManager[879]:    SCPlugin-Ifupdown:
devices added (path:
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/eth0, iface: eth0)
Feb 27 14:08:07 bumblebee NetworkManager[879]:    SCPlugin-Ifupdown:
device added (path:
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/eth0, iface: eth0):
no ifupdown configuration found.
Feb 27 14:08:07 bumblebee NetworkManager[879]: <warn> failed to allocate
link cache: (-10) Operation not supported
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): carrier is OFF
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): new Ethernet
device (driver: 'ec_r8169' ifindex: 7)
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): exported as
/org/freedesktop/NetworkManager/Devices/5
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): now managed
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): device state
change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): bringing up
device.
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> (eth0): deactivating
device (reason 'managed') [2]
Feb 27 14:08:07 bumblebee kernel: [  286.607050] IPv6:
ADDRCONF(NETDEV_UP): eth0: link is not ready
Feb 27 14:08:07 bumblebee NetworkManager[879]: <info> Added default wired
connection 'Wired connection 2' for
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/eth0
Feb 27 14:08:09 bumblebee kernel: [  288.584997] EtherCAT 0: Link state of
ecm0 changed to UP.
Feb 27 14:08:09 bumblebee kernel: [  288.589019] EtherCAT 0: 3 slave(s)
responding on main device.
Feb 27 14:08:09 bumblebee kernel: [  288.589022] EtherCAT 0: Slave states
on main device: PREOP.
Feb 27 14:08:09 bumblebee kernel: [  288.589073] EtherCAT 0: Scanning bus.
Feb 27 14:08:09 bumblebee kernel: [  288.801674] EtherCAT 0: Bus scanning
completed in 212 ms.
Feb 27 14:08:09 bumblebee kernel: [  288.801678] EtherCAT 0: Using slave 0
as DC reference clock.

Please help!

Cheers
Fredrik
Thomas Paoloni | 25 Feb 18:30 2014
Picon

Sending SDO to CAN Open slaves behind a Beckhoff master EL6751

Hi all,

as from subject, I need to know how to send SDO to a slave connected to 
a can network managed by a EL6751.
Reading the 6751 documentation seems like this is possible only at node 
boot time or runtime trought Beckhoff ADS protocol which, if I'm not 
wrong, is not implemented on etherlab master.
Is this right or there is any other way to send SDO to canopen slaves ?

Thanks in advance,

Thomas.

Gmane