<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<div>I've developed an application using etherlab to control an 8-axis robot prototype. Everything works fine but dmesg return a long list of messages like the ones below (the complete output is attached in the txt file) for all the pdo entries of each slave.
 These messages are returned once only when the realtime cycle starts and ethercat data begins to be received, processed and sent.<br>
</div>
<div><br>
</div>
<div>[  304.761920] EtherCAT ERROR 0-0: SDO download 0x160A:00 (1 bytes) aborted.</div>
<div>[  304.761923] EtherCAT ERROR 0-0: SDO abort message 0x06010002: "Attempt to write a read-only object".</div>
<div>[  304.761924] EtherCAT WARNING 0-0: Failed to clear PDO mapping.</div>
<div>[  304.761925] EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x6040:00/16. Entries to map: 0x6040:00/16</div>
<div>[  304.761928] EtherCAT WARNING 0-0: Failed to configure mapping of PDO 0x160A.<br>
</div>
<div>[.....]<br>
</div>
<div><br>
</div>
<div>I followed the "user example" to develop my application and I'm using Elmo Drives with this pdo configuration:<br>
</div>
<div><br>
</div>
<div>
<div>ec_pdo_entry_info_t slave_pdo_entries[] = {</div>
<div>    {0x6040, 0x00, 16}, /* Controlword */</div>
<div>    {0x6060, 0x00, 8},  /* Modes of operation */</div>
<div>    {0x0000, 0x00, 8},  /* Gap */</div>
<div>    {0x6071, 0x00, 16}, /* Target torque */</div>
<div>    {0x607a, 0x00, 32}, /* Target position */</div>
<div>    {0x60b1, 0x00, 32}, /* Offset velocity */</div>
<div>    {0x60fe, 0x01, 32}, /* Physical outputs */</div>
<div>    {0x6041, 0x00, 16}, /* Statusword */</div>
<div>    {0x6061, 0x00, 8},  /* Modes of operation display */</div>
<div>    {0x0000, 0x00, 8},  /* Gap */<br>
</div>
<div>    {0x6064, 0x00, 32}, /* Position actual value */</div>
<div>    {0x6069, 0x00, 32}, /* Velocity sensor actual value */</div>
<div>    {0x6077, 0x00, 16}, /* Torque value */</div>
<div>    {0x60f4, 0x00, 32}, /* Following error actual value */</div>
<div>    {0x60fd, 0x00, 32}, /* Digital inputs */</div>
<div>};</div>
<div><br>
</div>
<div>ec_pdo_info_t slave_pdos[] = {</div>
<div>        {0x160a, 1, slave_pdo_entries + 0}, /* RPDO_160A Mapping */</div>
<div>        {0x160b, 2, slave_pdo_entries + 1}, /* RPDO_160B Mapping */</div>
<div>        {0x160c, 1, slave_pdo_entries + 3}, /* RPDO_160C Mapping */</div>
<div>        {0x160f, 1, slave_pdo_entries + 4}, /* RPDO_160F Mapping */</div>
<div>        {0x1617, 1, slave_pdo_entries + 5}, /* RPDO_1617 Mapping */</div>
<div>        {0x161d, 1, slave_pdo_entries + 6}, /* RPDO_161D Mapping */</div>
<div>        {0x1a0a, 1, slave_pdo_entries + 7}, /* TPD0A Mapping */</div>
<div>        {0x1a0b, 2, slave_pdo_entries + 8}, /* TPD0B Mapping */</div>
<div>        {0x1a0e, 1, slave_pdo_entries + 10}, /* TPD0E Mapping */</div>
<div>        {0x1a0f, 1, slave_pdo_entries + 11}, /* TPD0F Mapping */</div>
<div>        {0x1a13, 1, slave_pdo_entries + 12}, /* TPD13 Mapping */</div>
<div>        {0x1a19, 1, slave_pdo_entries + 13}, /* TPD19 Mapping */</div>
<div>        {0x1a1c, 1, slave_pdo_entries + 14}, /* TPD1C Mapping */</div>
<div>};</div>
<div><br>
</div>
<div>ec_sync_info_t slave_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, 6, slave_pdos + 0, EC_WD_ENABLE},</div>
<div>    {3, EC_DIR_INPUT, 7, slave_pdos + 6, EC_WD_DISABLE},</div>
<div>    {0xff}</div>
<div>};<br>
</div>
<br>
</div>
<p>How can I solve this issue? <br>
</p>
<p><br>
</p>
<p>Thank you,<br>
</p>
<p><br>
</p>
<p>Alessandro<br>
</p>
</body>
</html>