[etherlab-users] EL7041-1000 - AL status message 0x001E: "Invalid input configuration".

Jakob Flierl jakob.flierl at gmail.com
Fri May 8 21:15:24 CEST 2015


Hi,

I'm trying to write a driver for EL7041-1000 for LinuxCNC, I'm getting in dmesg:

[19022.235581] EtherCAT ERROR 0-3: Failed to set SAFEOP state, slave
refused state change (PREOP + ERROR).
[19022.239594] EtherCAT ERROR 0-3: AL status message 0x001E: "Invalid
input configuration".

The PDO mapping source code of the driver is here:

https://github.com/koppi/linuxcnc-ethercat/blob/add-el7041-1000/src/lcec_el7041_1000.c#L146-L228

Can't find the root cause and the drive refuses to go into OP:

$ ethercat slaves
0  0:0  OP     +  EK1100 EtherCAT-Koppler (2A E-Bus)
1  0:1  OP     +  EL2004 4K. Dig. Ausgang 24V, 0.5A
2  0:2  OP     +  EL1004 4K. Dig. Eingang 24V, 3ms
3  0:3  PREOP  E  EL7041-1000 1K. Schrittmotor-Endstufe (50V, 5A, standard)

For reference:

$ ethercat -p3 cstruct
/* Master 0, Slave 3, "EL7041-1000"
 * Vendor ID:       0x00000002
 * Product code:    0x1b813052
 * Revision number: 0x001403e8
 */

ec_pdo_entry_info_t slave_3_pdo_entries[] = {
    {0x0000, 0x00, 1},
    {0x7000, 0x02, 1},
    {0x7000, 0x03, 1},
    {0x7000, 0x04, 1},
    {0x0000, 0x00, 4},
    {0x0000, 0x00, 8},
    {0x7000, 0x11, 16},
    {0x7020, 0x01, 1},
    {0x7020, 0x02, 1},
    {0x7020, 0x03, 1},
    {0x0000, 0x00, 5},
    {0x0000, 0x00, 8},
    {0x7020, 0x21, 16},
    {0x0000, 0x00, 1},
    {0x6000, 0x02, 1},
    {0x6000, 0x03, 1},
    {0x6000, 0x04, 1},
    {0x6000, 0x05, 1},
    {0x0000, 0x00, 2},
    {0x6000, 0x08, 1},
    {0x6000, 0x09, 1},
    {0x6000, 0x0a, 1},
    {0x0000, 0x00, 1},
    {0x0000, 0x00, 1},
    {0x6000, 0x0d, 1},
    {0x1c32, 0x20, 1},
    {0x0000, 0x00, 1},
    {0x1800, 0x09, 1},
    {0x6000, 0x11, 16},
    {0x6000, 0x12, 16},
    {0x6020, 0x01, 1},
    {0x6020, 0x02, 1},
    {0x6020, 0x03, 1},
    {0x6020, 0x04, 1},
    {0x6020, 0x05, 1},
    {0x6020, 0x06, 1},
    {0x6020, 0x07, 1},
    {0x0000, 0x00, 1},
    {0x0000, 0x00, 3},
    {0x6020, 0x0c, 1},
    {0x6020, 0x0d, 1},
    {0x1c32, 0x20, 1},
    {0x0000, 0x00, 1},
    {0x1806, 0x09, 1},
    {0x6020, 0x11, 16},
    {0x6020, 0x12, 16},
};

ec_pdo_info_t slave_3_pdos[] = {
    {0x1600, 7, slave_3_pdo_entries + 0}, /* ENC RxPDO-Map Control compact */
    {0x1604, 5, slave_3_pdo_entries + 7}, /* STM RxPDO-Map Velocity */
    {0x1606, 1, slave_3_pdo_entries + 12},
    {0x1a00, 17, slave_3_pdo_entries + 13}, /* ENC TxPDO-Map Status compact */
    {0x1a06, 14, slave_3_pdo_entries + 30},
    {0x1a07, 2, slave_3_pdo_entries + 44},
};

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


More information about the etherlab-users mailing list