<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-NZ" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi Vincent,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">1) I think 4339:05 relates to CoE object
</span><span style="color:black">0x10F3:05.  Set the value to 0.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">Try setting it manually via the ethercat command line before starting your app to start with.  If that helps, set it via your app before going active.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">2) Some slave modules support diagnostic messages.  These are on the slave itself, under the 0x10F3 CoE index.  The EtherLab master doesn’t have a framework to automatically read them and It’s a
 reasonably big topic to get your head around.  Here’s a starting point:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><a href="https://infosys.beckhoff.com/english.php?content=../content/1033/el34x3/1859331211.html&id=210180382886825810">https://infosys.beckhoff.com/english.php?content=../content/1033/el34x3/1859331211.html&id=210180382886825810</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Note: a lot of diagnostic ID’s are module specific.  They can be found in the modules esi file (</span><span style="color:black">Beckhoff EL5xxx.xml) under the <DiagMessages> node.  There’s only
 around 11 for this module, but the page above lists common diag messages.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">3) I have found that for Beckhoff modules that only support fixed PDO entries, if you get the PDO configuration wrong (e.g. your cstruct was generated for an older revision of the module) you will get errors the
 first time you apply the config (listed in dmesg).  The modules PDO settings are however updated with the new, but incorrect information.  Internally the module will ignore these mistakes and use its fixed PDO config.  Note: this is why you should only use
 the cstruct command after a clean boot of a slave.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">If you restart your app, without repowering the slave, then no errors will be reported this second time because the PDO configuration you are applying now matches what the slave is reporting, even though it’s wrong.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">I have found some modules do not get to OP when they have these PDO config errors, though usually I find they get to SAFEOP + Error.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">I’m just speculating that this particular module may have an issue with applying an incorrect PDO configuration in combination with applying SDO configuration.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">4) As a new thought, what SDO configuration calls are you making?  This module supports CoE complete access.  If you are setting multiple subindex entries under one index, try setting it as a complete access call
 instead.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">Note: we also use the EL5101.  For this and most other modules we also call the reset command as our first SDO config item to ensure there are no unexpected configuration options set, e.g.:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">ecrt_slave_config_sdo32(dev->slaveConfig, 0x1011, 0x01, 0x64616F6C);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:black">Graeme.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> BUSSIERES Vincent <vincent.bussieres@hemeria-group.com>
<br>
<b>Sent:</b> Friday, 15 October 2021 12:00<br>
<b>To:</b> Graeme Foot <Graeme.Foot@touchcut.com>; etherlab-users@etherlab.org<br>
<b>Subject:</b> RE: strange behaviour with sdo configuration<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div id="divtagdefaultwrapper">
<p><span style="font-size:12.0pt;color:black">Thank you Graeme for these thoughts.<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">I used a similar module (EL5101), I hadn't this problem but pdo assignment was different. I used cstruct command to get pdo informations.<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
<p><span style="font-size:12.0pt;color:black">1) With which value should I set the value in index 4339:5 ?
<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
<p><span style="font-size:12.0pt;color:black">2) How can I see diagnostic messages ? with dmesg?
<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
<p><span style="font-size:12.0pt;color:black">3) Is it possible to encounter PDO error only during sdo configuration? I don't understand why at the second start there is no PDO error ?<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
<p><span style="font-size:12.0pt;color:black">Regards<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
<div>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:12.0pt;color:black">
<hr size="2" width="98%" align="center">
</span></div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">De :</span></b><span style="color:black"> Graeme Foot <</span><a href="mailto:Graeme.Foot@touchcut.com">Graeme.Foot@touchcut.com</a><span style="color:black">><br>
<b>Envoyé :</b> jeudi 14 octobre 2021 23:36<br>
<b>À :</b> BUSSIERES Vincent; </span><a href="mailto:etherlab-users@etherlab.org">etherlab-users@etherlab.org</a><span style="color:black"><br>
<b>Objet :</b> RE: strange behaviour with sdo configuration</span><span style="font-size:12.0pt;color:black">
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"> <o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p><span style="color:black">Hi Vincent,<o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black">I don’t have a module to play with so no real idea.  But here’s some thoughts:<o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black">1) The Beckhoff esi file “Beckhoff EL5xxx.xml” file shows setting the value in index 4339:5 to 0000 on transition from Init to PreOp:<o:p></o:p></span></p>
<p><span style="font-family:"Courier New";color:black">            <InitCmd></span><span style="color:black"><o:p></o:p></span></p>
<p><span style="font-family:"Courier New";color:black">              <Transition>IP</Transition></span><span style="color:black"><o:p></o:p></span></p>
<p><span style="font-family:"Courier New";color:black">              <Index>4339</Index></span><span style="color:black"><o:p></o:p></span></p>
<p><span style="font-family:"Courier New";color:black">              <SubIndex>5</SubIndex></span><span style="color:black"><o:p></o:p></span></p>
<p><span style="font-family:"Courier New";color:black">              <Data AdaptAutomatically="1">0000</Data></span><span style="color:black"><o:p></o:p></span></p>
<p><span style="font-family:"Courier New";color:black">            </InitCmd></span><span style="color:black"><o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black">You could try setting this value before activating your master.  I think 4339 is decimal so relates to 0x10F3:05.<o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black">0x10F3:05 is the Diagnostics Flags value.  This is 0x0001 by default which reports the presence of a DiagMessage as an emergency.<o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black">2) The module supports diagnostics.  Check the Diagnostic messages for issues during the startup with and without the SDO configs.<o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black">3) On first application start from a cold boot, without any of the SDO config calls, check the dmesg log for any errors with assigning the PDO’s for the module.  It may be that if PDO errors are encountered along with the SDO config
 calls the module stays in PREOP + Error.  But without the SDO config calls it may get to OP OK.<o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black">On the second start the PDO’s will already have been changed so the master / slave won’t report any errors (even though the module will ignore the changes internally as they are fixed PDO’s).  Due to no PDO errors being reported
 the second time it may be why the SDO config calls succeed.<o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black">Regards,<o:p></o:p></span></p>
<p><span style="color:black">Graeme.<o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<p><span style="color:black"> <o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p><b><span lang="EN-US" style="color:black">From:</span></b><span lang="EN-US" style="color:black"> Etherlab-users <</span><a href="mailto:etherlab-users-bounces@etherlab.org"><span lang="EN-US">etherlab-users-bounces@etherlab.org</span></a><span lang="EN-US" style="color:black">>
<b>On Behalf Of </b>BUSSIERES Vincent<br>
<b>Sent:</b> Friday, 15 October 2021 09:11<br>
<b>To:</b> </span><a href="mailto:etherlab-users@etherlab.org"><span lang="EN-US">etherlab-users@etherlab.org</span></a><span lang="EN-US" style="color:black"><br>
<b>Subject:</b> [Etherlab-users] strange behaviour with sdo configuration</span><span style="color:black"><o:p></o:p></span></p>
</div>
</div>
<p><span style="color:black"> <o:p></o:p></span></p>
<div id="divtagdefaultwrapper">
<div>
<p><span style="font-size:12.0pt;color:black">Dear Etherlab users, </span><span style="color:black"><o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"> <o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">I bought a Beckhoff EtherCAT Terminal, 2-channel encoder interface EL5102. This product has just been released.<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">I encounter problems when I configure sdos with « ecrt_slave_config_sdo8 » or « ecrt_slave_config_create_sdo_request » functions called before « ecrt_master_activate » as for my other slaves.<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">This slave doesn’t switch at the OP State and stay in PRE-OP State with error « E » :<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"> <o:p></o:p></span></p>
<p><i><span style="font-size:12.0pt;color:black">"1 0:1 PREOP E EK5102 2K. Inc. Encoder 5V (RS422, TTL)"</span></i><span style="font-size:12.0pt;color:black"><o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"> <o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">I noticed that when I comment sdo configuration methods and run my application, slave switches to OP State.<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">After being switched one time to OP, if I uncomment configuration methods and run once again my application, slave behaviour seems to be OK, slave switches to OP State.<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"> <o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">I don’t understand why after the fisrt boot, there is such a problem ?<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"> <o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">Could you help solving this problem ?<o:p></o:p></span></p>
</div>
<p><span style="font-size:12.0pt;color:black"> <o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">Best regards<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>