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.