<div dir="auto"><div>Hi all<div dir="auto"><br></div><div dir="auto">Maybe change slave sync info like that :</div><div dir="auto"><br></div><div dir="auto">{ 2, EC_DIR_OUTPUT, 2, slave_pdos + 0, EC_WD_DISABLE}</div><div dir="auto">{ 3, EC_DIR_INPUT, 1, slave_pdos + 2, EC_WD_DISABLE}</div><br>Best Regards</div><div dir="auto"><br></div><div dir="auto"><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Fri, Sep 18, 2020, 03:29 Richard Hacker <<a href="mailto:ha@igh.de">ha@igh.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Joachim<br>
<br>
Please send the output of the following commands:<br>
# ethercat rescan<br>
# ethercat sl -v<br>
# ethercat pdos<br>
# (start your application and keep it running for the next command)<br>
# ethercat config -v<br>
<br>
Maybe you can try to enable watchdog (although it is reported <br>
differently in the SII):<br>
<br>
     {2, EC_DIR_OUTPUT, 1, slave_0_pdos + 0, EC_WD_ENABLE},<br>
<br>
You could also have a look at the documentation to see whether there are <br>
any output PDOs (RxPDO) that are mandatory.<br>
<br>
Richard<br>
<br>
------------------------------------------------------------------------<br>
<br>
On 9/18/20 7:20 AM, Joachim Sällvin wrote:<br>
> Hi,<br>
> <br>
> My AKD drive slave refuses to go to operational. Any suggestions why?<br>
> <br>
> This is what dmesg tells me when trying:<br>
> [53271.293863] EtherCAT ERROR 0-0: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).<br>
> [53271.294126] EtherCAT ERROR 0-0: AL status message 0x001D: "Invalid output configuration".<br>
> <br>
> The AKD drive is the only slave on the bus<br>
> $ sudo ethercat slaves<br>
> 0  901:0  PREOP  E  AKD EtherCAT Drive (CoE)<br>
> <br>
> and I've configured it so that I get<br>
> <br>
> $ sudo ethercat cstruct -p0<br>
> /* Master 0, Slave 0, "AKD"<br>
>   * Vendor ID:       0x0000006a<br>
>   * Product code:    0x00414b44<br>
>   * Revision number: 0x00000002<br>
>   */<br>
> <br>
> ec_pdo_entry_info_t slave_0_pdo_entries[] = {<br>
>      {0x6040, 0x00, 16},<br>
>      {0x60c1, 0x01, 32},<br>
>      {0x6041, 0x00, 16},<br>
>      {0x3470, 0x04, 16},<br>
>      {0x60fd, 0x00, 32},<br>
>      {0x606c, 0x00, 32},<br>
>      {0x6063, 0x00, 32},<br>
> };<br>
> <br>
> ec_pdo_info_t slave_0_pdos[] = {<br>
>      {0x1600, 2, slave_0_pdo_entries + 0},<br>
>      {0x1a00, 3, slave_0_pdo_entries + 2},<br>
>      {0x1a01, 2, slave_0_pdo_entries + 5},<br>
> };<br>
> <br>
> ec_sync_info_t slave_0_syncs[] = {<br>
>      {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},<br>
>      {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},<br>
>      {2, EC_DIR_OUTPUT, 1, slave_0_pdos + 0, EC_WD_DISABLE},<br>
>      {3, EC_DIR_INPUT, 2, slave_0_pdos + 1, EC_WD_DISABLE},<br>
>      {0xff}<br>
> };<br>
> <br>
> <br>
> <br>
> I've tried with the command line tool...<br>
> $ sudo ethercat states OP<br>
> <br>
> ..and with my c-application. But the result is the same.<br>
> <br>
> One thing that puzzles me is the size of the synch managers SM2 and SM3:<br>
> <br>
> $ sudo ethercat pdos<br>
> SM0: PhysAddr 0x1800, DefaultSize 1024, ControlRegister 0x26, Enable 1<br>
> SM1: PhysAddr 0x1c00, DefaultSize 1024, ControlRegister 0x22, Enable 1<br>
> SM2: PhysAddr 0x1100, DefaultSize    0, ControlRegister 0x24, Enable 1<br>
>    RxPDO 0x1600 ""<br>
>      PDO entry 0x6040:00, 16 bit, ""<br>
>      PDO entry 0x60c1:01, 32 bit, ""<br>
> SM3: PhysAddr 0x1140, DefaultSize    0, ControlRegister 0x20, Enable 1<br>
>    TxPDO 0x1a00 ""<br>
>      PDO entry 0x6041:00, 16 bit, ""<br>
>      PDO entry 0x3470:04, 16 bit, ""<br>
>      PDO entry 0x60fd:00, 32 bit, ""<br>
>    TxPDO 0x1a01 ""<br>
>      PDO entry 0x606c:00, 32 bit, ""<br>
>      PDO entry 0x6063:00, 32 bit, ""<br>
> <br>
> Should they really have DefaultSize 0?<br>
> <br>
> $ sudo ethercat versionIgH EtherCAT master 1.5.2 53ce5e56d511<br>
> $ uname -a Linux ctrlPC1 5.4.54-rt32 #1 SMP PREEMPT_RT Wed Aug 12 12:59:33 CEST 2020 x86_64 x86_64 x86_64 GNU/Linux<br>
> <br>
> <br>
> <br>
> Detailed dmesg printout:<br>
> <br>
> <br>
> [54154.149923] EtherCAT: Master driver 1.5.2 53ce5e56d511<br>
> [54154.149991] EtherCAT: 1 master waiting for devices.<br>
> [54154.154118] ec_generic: EtherCAT master generic Ethernet device module 1.5.2 53ce5e56d511<br>
> [54154.154127] EtherCAT: Accepting 78:D0:04:27:52:E4 as main device for master 0.<br>
> [54154.154131] ec_generic: Binding socket to interface 4 (enp0s31f6).<br>
> [54154.189154] EtherCAT 0: Starting EtherCAT-IDLE thread.<br>
> [54154.189384] EtherCAT 0: Link state of ecm0 changed to UP.<br>
> [54154.197141] EtherCAT 0: 1 slave(s) responding on main device.<br>
> [54154.197149] EtherCAT 0: Slave states on main device: PREOP.<br>
> [54154.197613] EtherCAT 0: Scanning bus.<br>
> [54154.489005] EtherCAT 0: Bus scanning completed in 292 ms.<br>
> [54154.489006] EtherCAT 0: Using slave 0 as DC reference clock.<br>
> [54154.489007] EtherCAT 0: Starting EoE thread.<br>
> [54154.521934] EtherCAT ERROR 0-0: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).<br>
> [54154.522227] EtherCAT ERROR 0-0: AL status message 0x001D: "Invalid output configuration".<br>
> [54154.525166] EtherCAT 0-0: Acknowledged state PREOP.<br>
> <br>
> <br>
> Any ideas?<br>
> <br>
> Best Regards,<br>
> <br>
> Joachim Sällvin<br>
> <br>
> Software Developer<br>
> CorpowerOcean<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
-- <br>
Etherlab-users mailing list<br>
<a href="mailto:Etherlab-users@etherlab.org" target="_blank" rel="noreferrer">Etherlab-users@etherlab.org</a><br>
<a href="http://lists.etherlab.org/cgi-bin/mailman/listinfo/etherlab-users" rel="noreferrer noreferrer" target="_blank">http://lists.etherlab.org/cgi-bin/mailman/listinfo/etherlab-users</a><br>
</blockquote></div></div></div>