<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Thanks for the quick reply.  I hadn't
      discovered the ecrt_slave_config* functions yet but those look a
      lot easier to use then what I was imagining setting up with the
      ...request_write function and state monitoring.  Also thanks for
      the explanation of SDOs vs PDOs. This helps a lot.  <br>
       <br>
      <br>
      On 12/17/2015 04:29 PM, Gavin Lambert wrote:<br>
    </div>
    <blockquote
      cite="mid:000a01d13922$bcaf2040$360d60c0$@compacsort.com"
      type="cite">
      <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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 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;
        color:black;}
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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.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]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">SDOs
            are just objects that can be accessed via acyclic (mailbox)
            transfers.  Typically (if the slave supports CoE) all PDOs
            can be accessed as SDOs (though usually there’s little
            point) but only some SDOs can be accessed as PDOs.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Most
            of the time SDOs are used purely for configuration – values
            that you want to set once on startup and never change
            again.  For this case, simply use the ecrt_slave_config_sdo*
            family of functions during the configuration phase (when
            you’re registering PDOs) and the library will take care of
            sending this to the device.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">The
            ecrt_sdo_request family of functions are for the other kind
            of SDO access, where there is something that you want to
            read or modify during live operation.  This is rarer (except
            for things like diagnostic monitoring) as typically live
            changes are done via PDOs instead.  But sometimes these can
            be useful if it’s only extremely rare that you want to
            change something so you don’t want to “waste” space in the
            normal domain transfer.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">An
            SDO transfer will take multiple cycles to execute (absolute
            minimum is about 3, but it usually takes more); each slave
            can only process one transfer at a time; and the master has
            a small limit on the number of concurrent transfers it will
            actually issue, although it can hold extras in a queue.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;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
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
                    lang="EN-US">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
                  lang="EN-US"> etherlab-users
                  [<a class="moz-txt-link-freetext" href="mailto:etherlab-users-bounces@etherlab.org">mailto:etherlab-users-bounces@etherlab.org</a>] <b>On
                    Behalf Of </b>John Hubbard<br>
                  <b>Sent:</b> Friday, 18 December 2015 11:42<br>
                  <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:etherlab-users@etherlab.org">etherlab-users@etherlab.org</a><br>
                  <b>Subject:</b> [etherlab-users] EL6688 SDOs<o:p></o:p></span></p>
            </div>
          </div>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">Hello, <br>
            <br>
            I've not gotten my Beckhoff EL1252 and EL2252 modules mostly
            working (I've still got some confusion WRT distributed
            clocks, and I'm still seeing the warnings/errors I mentioned
            the other day).  I'm now working on trying to get the EL6688
            module (IEEE 1588/Precision Time Protocol) up and running. 
            From my reading of the Beckhoff documentation I'm under the
            impression that most of the setup options (e.g. Ethernet
            configuration and PTPv1 vs PTPv2 mode) need to be setup via
            SDOs instead of PDOs.  (Is this what others would expect?) 
            For reference I've attached the full SDO dictionary that I
            obtained via 'ethercat sdos'.  <br>
            <br>
            I'm a little unclear what the difference between SDOs and
            PDOs is.  Is the difference just the PDOs can be
            read/written every cycle, while SDOs can only be
            read/written when ecrt_sdo_request_state ==>
            EC_REQUEST_SUCCESS (following an ecrt_sdo_request_write when
            the state is UNUSED)?  Is there a limit to how many SDOs I
            can request writes per cycle?  From the example it looks
            like writing an SDO is done using the same macro as writing
            a PDO (i.e. EC_WRITE_U32(some_sdo)), is that correct?  <br>
            <br>
            From the mailing list it looks like there was someone that
            attempted to use an EL6688 module back in 2010.  Has anyone
            used one more recently (i.e. with etherlabs 1.5), and if so
            do they have any code snippets that they would be
            willing/able to share?  <br>
            <br>
            Thanks.  <br>
            <br>
            <br>
            <br>
            <o:p></o:p></p>
          <pre>-- <o:p></o:p></pre>
          <pre>-john<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>To be or not to be, that is the question<o:p></o:p></pre>
          <pre>                2b || !2b<o:p></o:p></pre>
          <pre>(0b10)*(0b1100010) || !(0b10)*(0b1100010)<o:p></o:p></pre>
          <pre>        0b11000100 || !0b11000100<o:p></o:p></pre>
          <pre>        0b11000100 ||  0b00111011<o:p></o:p></pre>
          <pre>               0b11111111<o:p></o:p></pre>
          <pre>255, that is the answer.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
        </div>
      </div>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
-john

To be or not to be, that is the question
                2b || !2b
(0b10)*(0b1100010) || !(0b10)*(0b1100010)
        0b11000100 || !0b11000100
        0b11000100 ||  0b00111011
               0b11111111
255, that is the answer.

</pre>
  </body>
</html>