<div dir="ltr">Hello Etherlab experts,<div><br></div><div>I can't register a PDO entry at index 6000:11 that the 'ethercat cstruct' command tells me should be possible for a Beckhoff EL3356-0010:</div><div><br></div><div><div>/* Master 0, Slave 2, "EL3356-0010"</div><div> * Vendor ID:       0x00000002</div><div> * Product code:    0x0d1c3052</div><div> * Revision number: 0x0013000a</div><div> */</div></div><div><br></div><div><div>static ec_pdo_entry_info_t EL3356_pdo_entries[] = {</div><div>    {0x7000, 0x01, 1}, /* Start calibration */</div><div>    {0x7000, 0x02, 1}, /* Disable calibration */</div><div>    {0x7000, 0x03, 1}, /* Input freeze */</div><div>    {0x7000, 0x04, 1}, /* Sample mode */</div><div>    {0x7000, 0x05, 1}, /* Tare */</div><div>    {0x0000, 0x00, 11}, /* Gap */</div><div>    {0x0000, 0x00, 1}, /* Gap */</div><div>    {0x6000, 0x02, 1}, /* Overrange */</div><div>    {0x0000, 0x00, 1}, /* Gap */</div><div>    {0x6000, 0x04, 1}, /* Data invalid */</div><div>    {0x0000, 0x00, 2}, /* Gap */</div><div>    {0x6000, 0x07, 1}, /* Error */</div><div>    {0x6000, 0x08, 1}, /* Calibration in progress */</div><div>    {0x6000, 0x09, 1}, /* Steady state */</div><div>    {0x0000, 0x00, 4}, /* Gap */</div><div>    {0x1c32, 0x20, 1}, /* Sync error */</div><div>    {0x0000, 0x00, 1}, /* Gap */</div><div>    {0x1800, 0x09, 1},</div><div>    {0x6000, 0x11, 32}, /* Value */</div><div>};</div><div><br></div><div>static ec_pdo_info_t EL3356_pdos[] = {</div><div>    {0x1600, 6, EL3356_pdo_entries + 0}, /* RMB RxPDO-Map Control */</div><div>    {0x1a00, 12, EL3356_pdo_entries + 6}, /* RMB TxPDO-Map Status */</div><div>    {0x1a01, 1, EL3356_pdo_entries + 18}, /* RMB TxPDO-Map Value (INT32) */</div><div>};</div><div><br></div><div>static ec_sync_info_t EL3356_syncs[] = {</div><div>    {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},</div><div>    {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},</div><div>    {2, EC_DIR_OUTPUT, 1, EL3356_pdos + 0, EC_WD_DISABLE},</div><div>    {3, EC_DIR_INPUT, 2, EL3356_pdos + 1, EC_WD_DISABLE},</div><div>    {0xff}</div><div>};</div></div><div><br></div><div>I use the following code to try to register it:</div><div><br></div><div><div> if (!(el3356_ana_in_sc = ecrt_master_slave_config(master, EL3356Pos, Beckhoff_EL3356))) {</div><div>        fprintf(stderr, "Failed to get slave configuration.\n");</div><div>        return -1;</div><div>    }</div><div><br></div><div>    printf("Attempting to register the pain-in-the-ass PDO entry\n");</div><div>    off_el3356_value = ecrt_slave_config_reg_pdo_entry(el3356_ana_in_sc,</div><div>            0x6000, 11, domain1, NULL);</div><div>    if (off_el3356_value < 0)</div><div>    <span class="" style="white-space:pre">       </span>fprintf(stderr, "Failed to register PDO entry 0x6000 0x11.");</div><div>        return -1;</div></div><div><br></div><div>and I get: </div><div><br></div><div>Failed to register PDO entry: No such file or directory</div><div><br></div><div>When I try 0x6000:02 I get: </div><div><br></div><div>PDO entry 0x6000:02 does not byte-align in config 0:2.</div><div><br></div><div><br></div><div>I have triple checked to make sure all fields in my code snippet are correct. How is it still failing to register? Could my SII be corrupted?</div><div><br></div><div>I have attached full code to this email.</div><div>I have also attached the SII.bin and xml output from using etherlab sii_read and xml commands</div><div><br></div><div>Thanks for the help!</div><div>-Will</div><div><br></div></div>