<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=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><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;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
@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"><div class=WordSection1><p class=MsoNormal>First off, note that using printfs inside your cyclic task is going to kill your latency. By itself this shouldn’t cause any issues with SDOs, unless it’s sufficient to trigger the timeout.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The master does support a limited number of concurrent SDO requests, provided that they are always to different slaves. By default it will only process up to 16 concurrent requests at a time, however. So if you might have larger networks it’s a good idea to allow some downtime, perhaps only scheduling a read request once per second or even slower (depending how many slaves you have and how often you really need the data).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I didn’t spot anything obviously wrong in your code. To diagnose further you should probably set “ethercat debug 1” and then examine your syslog after running your application; this will contain additional information about the progress of requests.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Another thing you might want to consider is trying out the unofficial patchset at <a href="https://sourceforge.net/u/uecasm/etherlab-patches/ci/default/tree/#readme">https://sourceforge.net/u/uecasm/etherlab-patches/ci/default/tree/#readme</a>; this includes a number of patches to enhance mailbox stability and increase slave concurrency.<o:p></o:p></p><p class=MsoNormal> <span style='font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US'><o:p></o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><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 style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Jordan Palacios<br><b>Sent:</b> Wednesday, 30 August 2017 02:03<br><b>To:</b> etherlab-users@etherlab.org<br><b>Subject:</b> [etherlab-users] Multiple SDO requests<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><span style='font-size:9.5pt'>Dear Etherlab users,</span><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I have a setup with some Elmo Gold boards where I wish to access some data objects that unfortunately are not mappable. The information from these data objects is not really required each cycle, though it should be requested regularly.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I'm attaching a sample test code where I try to read the same data object in three different slaves each cycle. The result is that the sdo request for the third slave is never successful.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>It is as if the master could not serve more than one SDO request at a time. Is this correct? I am doing something wrong?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Kinds regards.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Jordán.<o:p></o:p></p></div></div></div></div></body></html>