I am pretty sure the slave doesn't have 6 SyncManagers! Your PDO configuration is incorrect somewhere. I don't have the documentation to check.

On 11/1/22 09:42, Oguz Dilmac wrote:
   Hi,

One of our customer wants to use Beckhoff servo drive on their machine. The problem is we can't switch to OP mode.

We get the PDO info with cstruct. Oddly, although this device supports 2 drives, we only see one drive's PDOS.

When we want to switch to OP mode,

Etherlab master gives following error:

     Etherlab -> unknown al status code 0x0003

Also When we use Twincat 2.0 this error is displayed:

    'Drive 2 (AX8206-0000-0104)' (1002): 'PREOP to SAFEOP' failed! Error: 'check device state for SAFEOP'. AL Status '0x0012' read and '0x0004' expected. AL Status Code '0x001d - Invalid SM OUT cfg'

We are using Gavin's patch set on linux kernel 4.9.178 64 bit.

Here is the cstruct output:

/* Master 0, Slave 1, "AX8206-0000-0104"
  * Vendor ID:       0x00000002
  * Product code:    0x200e6012
  * Revision number: 0x00680000
  */

ec_pdo_entry_info_t slave_1_pdo_entries[] = {
     {0x2c00, 0x01, 16},
     {0x6040, 0x00, 16},
     {0x607a, 0x00, 32},
     {0x60ff, 0x00, 32},
     {0x6840, 0x00, 16},
     {0x687a, 0x00, 32},
     {0x68ff, 0x00, 32},
     {0x0000, 0x00, 1},
     {0x603e, 0x02, 1},
     {0x603e, 0x03, 1},
     {0x0000, 0x00, 5},
     {0x6041, 0x00, 16},
     {0x6064, 0x00, 32},
     {0x60f4, 0x00, 32},
     {0x0000, 0x00, 1},
     {0x683e, 0x02, 1},
     {0x683e, 0x03, 1},
     {0x0000, 0x00, 5},
     {0x6841, 0x00, 16},
     {0x6864, 0x00, 32},
     {0x68f4, 0x00, 32},
};

ec_pdo_info_t slave_1_pdos[] = {
     {0x1600, 1, slave_1_pdo_entries + 0},
     {0x1620, 1, slave_1_pdo_entries + 1},
     {0x1623, 2, slave_1_pdo_entries + 2},
     {0x1640, 1, slave_1_pdo_entries + 4},
     {0x1643, 2, slave_1_pdo_entries + 5},
     {0x1a20, 6, slave_1_pdo_entries + 7},
     {0x1a26, 1, slave_1_pdo_entries + 13},
     {0x1a40, 6, slave_1_pdo_entries + 14},
     {0x1a46, 1, slave_1_pdo_entries + 20},
};

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, 5, slave_1_pdos + 0, EC_WD_ENABLE},
     {3, EC_DIR_INPUT, 4, slave_1_pdos + 5, EC_WD_DISABLE},
     {4, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
     {5, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
     {0xff}
};

What can you suggest to check, set or try?

Best regards,

Oguz.



Mit freundlichem Gruß

Richard Hacker

--
------------------------------------------------------------------------

Richard Hacker M.Sc.
richard.hac...@igh.de
Tel.: +49 201 / 36014-16

Ingenieurgemeinschaft IgH
Gesellschaft für Ingenieurleistungen mbH
Nordsternstraße 66
D-45329 Essen

Amtsgericht Essen HRB 11500
USt-Id.-Nr.: DE 174 626 722
Geschäftsführung:
- Dr.-Ing. Siegfried Rotthäuser
- Dr. Sven Beermann, Prokurist
Tel.: +49 201 / 360-14-0
http://www.igh.de

------------------------------------------------------------------------
--
Etherlab-users mailing list
Etherlab-users@etherlab.org
https://lists.etherlab.org/mailman/listinfo/etherlab-users

Reply via email to