<html><head>
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr"><div>Dear Joachim,</div><div><br></div><div>No, that is not what I meant.</div><div><br></div><div>Take a simple Beckhoff terminal like EL1004</div><div>Do a </div><div><b style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">ethercat -m0 -p2 cstruct</b></div><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="font-size: 16px;"><b> </b></span></font></div><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="font-size: 16px;">on it.</span></font></div><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="font-size: 16px;">You will see some PDos and PDo-Entries.</span></font></div><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="font-size: 16px;"><br></span></font></div><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="font-size: 16px;">The cstruct output of the MTS sensor is empty. </span></font></div><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="font-size: 16px;">You will have to fill it with PDos and PDo-Entries in your C++ application.</span></font></div><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="font-size: 16px;">After this the master can configure the PDos on the slave automatically.</span></font></div><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="font-size: 16px;">So no need to configure it via sdo call.</span></font></div><div><b style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;"><br></b></div><div><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">Best regards</span></div><div><br></div><div>Andreas</div><div><br></div><div>Am Montag, dem 26.09.2022 um 08:35 +0000 schrieb Joachim Sällvin:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">Hi Andreas,</div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof"><br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">Thank you for your reply.<br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof"><br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">I've tried to configure from the c++ application (is this what you meant?) using:</div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof"><br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof"> ecrt_slave_config_sdo8( slave_config, 0x1C13, 0, 0 ); // clear sm pdo 0x1c13<div> ecrt_slave_config_sdo8( slave_config, 0x1A00, 0, 0 ); // clear TxPdo 0x1A00</div><div> // Define TxPdo <br></div><div> ecrt_slave_config_sdo32( slave_config, 0x1A00, 1, 0x31010010 ); // Status</div><div> ecrt_slave_config_sdo32( slave_config, 0x1A00, 2, 0x31010020 ); // Pos</div><div> ecrt_slave_config_sdo32( slave_config, 0x1A00, 3, 0x31010020 ); // Velocity</div><div> ecrt_slave_config_sdo8( slave_config, 0x1A00, 0, 3 ); // Number of PDO entries for 0x1A00</div><div> ecrt_slave_config_sdo16( slave_config, 0x1C13, 1, 0x1A00 ); // TxPdo in 0x1C13:1</div> ecrt_slave_config_sdo8( slave_config, 0x1C13, 0, 1 ); // Number of TxPDO<br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof"><br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">But I get this in the log:<br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof"><br></div><div><div class="elementToProof" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Sep 26 10:10:06 ctrlPC5 kernel: [253808.144369] EtherCAT ERROR 0-2: SDO download 0x1A00:00 (1 bytes) aborted.<div>Sep 26 10:10:06 ctrlPC5 kernel: [253808.144372] EtherCAT ERROR 0-2: SDO abort message 0x06010002: "Attempt to write a read-only object".</div><div>Sep 26 10:10:06 ctrlPC5 kernel: [253808.144373] EtherCAT ERROR 0-2: SDO configuration failed.</div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br></div><br><div>Is there something that needs to be enabled in order to configure?</div><div><br></div><div>The device seems to be configured for one magnet:</div><div>ethercat -m0 -p2 upload 0x2000 0x0b replies with 0x01 1<br><br></div><div><br></div><div>Best regards,</div><div><br></div><div>Joachim<br></div><br></div><div class="elementToProof" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div class="elementToProof" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div class="elementToProof" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div class="elementToProof" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0);"><br><hr tabindex="-1" style="display:inline-block; width:98%;"><b>Från:</b> Andreas Stewering-Bone<br><b>Skickat:</b> Måndag, 26 september 2022 08:30<br><b>Till:</b> Joachim Sällvin; etherlab-users@etherlab.org<br><b>Ämne:</b> Re: [Etherlab-users] Failing to configure PDOs of a MTS Temposonics V slave<div><br></div></div><div class="rps_f4f1"><div dir="ltr"><div>Dear Joachim,</div><div><br></div><div>The master configures the specific slaves during application startup. </div><div>So no need to do it manually.</div><div><br></div><div>The PDO mapping for this slave is dynamically, </div><div>because you can configure the number of measurment magnets.</div><div>Please read the sensor EtherCAT documentation and the XML slave description.</div><div>With this information you can extend the cstruct to configure the specific PDO mapping.</div><div>Please see the user space example in the master git repo.</div><div><br></div><div>Best regards</div><div><br></div><div>Andreas</div><div><br></div><div>Am Sonntag, dem 25.09.2022 um 17:08 +0000 schrieb Joachim Sällvin:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">Hi all,</div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">Any ideas on how to configure the pdos of a MTS Temposonics slave? A brand new linear position sensor that doesn't seem to have any default configuration. Shouldn't it be possible to configure it from the command line?<br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">When I try I get: <br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br><div class="x_elementToProof" style="font-size:12pt">SDO transfer aborted with code 0x08000000: General error (see details below), why?<br></div></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b><br></b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b>Some information about the system<br></b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b>ethercat slaves</b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><div>Master0</div><div> 0 1402:0 PREOP + ifm IO-Link Master AL1332</div><div> 1 1401:0 PREOP + S300/S400/S600/S700 EtherCAT Drive (CoE)</div><div> <i> 2 1403:0 PREOP + MTS Device V</i></div> 3 1444:0 PREOP + ifm IO-Link Master AL1332<br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b>ethercat -m0 -p2 cstruct</b><div>/* Master 0, Slave 2, "MTS Temposonics V"</div><div> * Vendor ID: 0x00000040</div><div> * Product code: 0x0000000f</div><div> * Revision number: 0x00000029</div><div> */</div><div><br></div><div>ec_sync_info_t slave_2_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, 0, NULL, EC_WD_ENABLE},</div><div> {3, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},</div><div> {0xff}</div>};<br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b>ethercat -m0 -p2 pdos</b><div>SM0: PhysAddr 0x1000, DefaultSize 128, ControlRegister 0x36, Enable 1</div><div>SM1: PhysAddr 0x1080, DefaultSize 128, ControlRegister 0x32, Enable 1</div><div>SM2: PhysAddr 0x1100, DefaultSize 0, ControlRegister 0x74, Enable 1</div><div>SM3: PhysAddr 0x1400, DefaultSize 448, ControlRegister 0x30, Enable 1</div></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b>ethercat -m0 -p2 sdos</b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">.....</div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">SDO 0x1a00, "Magnet 1"<div> 0x1a00:00, r-r-r-, uint8, 8 bit, "Number of elements"</div><div> 0x1a00:01, rwrwrw, uint16, 16 bit, "Status"</div><div> 0x1a00:02, rwrwrw, uint32, 32 bit, "Position"</div><div> 0x1a00:03, rwrwrw, uint32, 32 bit, "Velocity"</div></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"> 0x1a00:04, rwrwrw, uint32, 32 bit, "Acceleration"<b><br></b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b>......<br></b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">SDO 0x1c13, "Sync Manager TxPDO Assign"<div> 0x1c13:00, rwrwrw, uint8, 8 bit, "Number of elements"</div><div> 0x1c13:01, rwrwrw, uint16, 16 bit, ""</div><div> 0x1c13:02, rwrwrw, uint16, 16 bit, ""</div><div> 0x1c13:03, rwrwrw, uint16, 16 bit, ""</div><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b>I thought I could do like this </b><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">sudo ethercat -m0 -p2 download 0x1C13 0 -tuint8 0 # Clear SM PDO 0x1c13<br>sudo ethercat -m0 -p2 download 0x1A00 0 -tuint8 0 # Clear TxPDO 0x1A00<br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">ethercat -m0 -p2 download 0x1A00 2 -tuint32 0x31010020<br>SDO transfer aborted with code 0x08000000: General error</div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b>dmesg</b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"> Failed to process SDO request.<div> EtherCAT ERROR 0-2: SDO download 0x1A00:02 (4 bytes) aborted.</div><div> EtherCAT ERROR 0-2: SDO abort message 0x08000000: "General error".</div><div> EtherCAT ERROR 0-2: Failed to process SDO request.</div><b><br></b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b><br></b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">Thanks,<br><br>Joachim Sällvin<br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">Joachim Sällvin<b><br></b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><b><br></b></div><div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)"><br></div></blockquote><div><br></div><div><span></span></div></div></div></div></blockquote><div><br></div><div><span></span></div></body></html>