<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0"></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
Hi Gavin,</p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<br>
</p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
thanks a lot for your reply. </p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<br>
</p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
I have done some tests based on your suggestions:</p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 12pt;"><br>
</span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 12pt;"><i>> </i></span><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 14.6667px;"><i>You’re specifying a 5ms cyclic period, which in itself may be ok, but it’s a bit slower than is typical.</i></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 14.6667px;">I have tried with the cyclic time from 0.5 ms to 2 ms. The error stays the same  "AL status message 0x001B: "Sync manager watchdog"</span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 14.6667px;"><br>
</span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 14.6667px;"><i>> </i><span style="font-size: 14.6667px;"><i>You’re also not reading any of the slave’s inputs.  This usually doesn’t trigger a watchdog error ....</i></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<font face="Calibri, sans-serif"><span style="font-size: 14.6667px;">Yes, you are right. If I plug only one Digital INPUT module with the Omron Ethercat coupler EC201, it works fine, I can read the values.</span></font></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<font face="Calibri, sans-serif"><span style="font-size: 14.6667px;"></span></font><span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;">But, if I add one Digital OUTPUT module  with this <span style="font-size: 14.6667px;"> Digital
 INPUT module, I got the same error message: <span style="font-size: 14.6667px;">"AL status message 0x001B: "Sync manager watchdog"</span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"> And if I use only one <span style="font-size: 14.6667px;">Digital OUTPUT module with the Ethercat
 coupler, the error stays the same<span style="font-size: 14.6667px;">: </span><span style="font-size: 14.6667px;">"AL status message 0x001B: "Sync manager watchdog"</span></span></span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><br>
</span></span></span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><i>>Consider either increasing
 the rate of your cyclic loop or calling ecrt_slave_config_watchdog ...</i></span></span></span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;">   I have tried to increase
 the watchdog timer and also tried to disable it (set output as EC_WD_DISABLE). The error message comes longer than before, but I still got it: <span style="font-size: 14.6667px;">"AL status message</span></span></span></span></span></span></p>
<span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 14.6667px;">0x001B: "Sync manager watchdog". "</span><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;"></span>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"></span></span></span></span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><br>
</span></span></span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><br>
</span></span></span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;">Something that I am still not
 sure are:</span></span></span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 14.6667px; font-family: Calibri, sans-serif, serif, EmojiFont;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"><span style="font-size: 14.6667px;"></span></span></span></span></span><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 14.6667px;">(1) If
 I use only the DIgital </span><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 14.6667px;"> OUTPUT module with the Ethercat coupler, the original CSTRUCT shows that there are 2 outputs:</span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
</p>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
    
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont;">    <span style="font-size: 11pt;">ec_sync_info_t slave_0_syncs[] = {</span></span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 11pt;">         {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},</span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 11pt;">         {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},</span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 11pt;">         {2, EC_DIR_OUTPUT, 2, slave_0_pdos + 0, EC_WD_ENABLE},</span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 11pt;">         {3, EC_DIR_INPUT, 3, slave_0_pdos + 2, EC_WD_DISABLE},</span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 11pt;">         {0xff}</span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont; font-size: 11pt;">    };</span></p>
</div>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
But I have only defined one output (4 bit digital output module) in my oc3256_syncs and the pdo entrys, as I think the other one is just a  (12 bit) "Gap", will it be a problem?</div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont;"></span></p>
</div>
   <span style="font-size: 11pt;"> </span><span style="font-size: 11pt;">static ec_sync_info_t oc3256_syncs[] = {</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 11pt;">           </span><span style="font-size: 11pt;">{2, EC_DIR_OUTPUT, 1, oc3256_pdos, EC_WD_ENABLE}    </span></div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<span style="font-size: 11pt;">     }</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
     and I have defined only one entry in the code:</div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
    
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, sans-serif, serif, EmojiFont;">   <span style="font-size: 11pt; font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont;"> if (ecrt_slave_config_pdos(sc_digit_out, 1, oc3256_syncs)) {</span></span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 11pt;">         fprintf(stderr, "Failed to configure PDOs.\n");</span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 11pt;">         return -1;</span></p>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p class="x_x_MsoNormal"><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 11pt;">    }</span></p>
</div>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
</div>
<br style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
<p style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
</p>
<span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">(2) I have got the following warings before the error message, are they meaning something?</span>
<div style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">
       "WARNING 0: 1 datagram UNMATCHED!" message in the debug info, is it "
<div>       <span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;"> "</span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">WARNING
 0:</span> No app_time received up to now, but master already active."</div>
<div><br>
</div>
<div>Thanks again.</div>
<div><br>
</div>
<div>Best, Kai</div>
</div>
<br>
<p></p>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>发件人:</b> Gavin Lambert <gavin.lambert@tomra.com><br>
<b>发送时间:</b> 2018年11月5日 9:08<br>
<b>收件人:</b> jiangjiang kai; etherlab-users@etherlab.org<br>
<b>主题:</b> RE: AL status message 0x001B: "Sync manager watchdog" error with digital output module</font>
<div> </div>
</div>
<div lang="EN-NZ" link="#0563C1" vlink="#954F72">
<div class="x_WordSection1">
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif">A “sync manager watchdog” error means that the slave did not receive an EtherCAT packet within the configured timeout.</span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif"> </span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif">You’re specifying a 5ms cyclic period, which in itself may be ok, but it’s a bit slower than is typical.  You might want to check what the default EtherCAT timeout is for
 the slave – perhaps it is expecting a faster cycle by default and is thus timing out because you’re talking to it too slowly.  Consider either increasing the rate of your cyclic loop or calling ecrt_slave_config_watchdog to specify a longer timeout interval,
 if that is the case.</span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif"> </span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif">You’re also not reading any of the slave’s inputs.  This usually doesn’t trigger a watchdog error, but again it might depend on the specific slave’s defaults.</span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri",sans-serif"> </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="x_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"> jiangjiang kai<br>
<b>Sent:</b> Saturday, 3 November 2018 20:25<br>
<b>To:</b> etherlab-users@etherlab.org<br>
<b>Subject:</b> [etherlab-users] AL status message 0x001B: "Sync manager watchdog" error with digital output module</span></p>
</div>
</div>
<p class="x_MsoNormal"> </p>
<div id="x_divtagdefaultwrapper">
<p><span style="font-family:"Calibri",sans-serif; color:black">Dear all,</span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">I have tried to bring up the Omron ethercat coupler with some digital inputs and outputs modules. With the help of the example code I can read out the value from digital input modules. But with
 the digital output module, I always get the error msg: "AL status message 0x001B: "Sync manager watchdog"."  </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">I have read some messages from the other users, it looks like that related to the settings of SM2 sync manager watchdog, and I have tried to do  "PDO writting" in each cycle time. But I still get
 this error. Maybe some one can help me with this.  </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">Thanks in advance.</span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">Below is the code which is based on the "user" sample code and some debug Info:</span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">(1)   PDO structure</span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[developer:~]$ sudo ethercat cstruct                                                                                                                                         
                         18:17</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[sudo] password for developer: </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/* Master 0, Slave 0, "NX-ECC201"</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> * Vendor ID:       0x00000083</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> * Product code:    0x00000083</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> * Revision number: 0x00010002</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">ec_pdo_entry_info_t slave_0_pdo_entries[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x7000, 0x01, 1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x7000, 0x02, 1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x7000, 0x03, 1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x7000, 0x04, 1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x0000, 0x00, 12}, /* Gap */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x3003, 0x04, 128},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x3006, 0x04, 128},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x300a, 0x02, 64},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x2002, 0x01, 8},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x0000, 0x00, 8}, /* Gap */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">ec_pdo_info_t slave_0_pdos[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x1600, 4, slave_0_pdo_entries + 0},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x17f6, 1, slave_0_pdo_entries + 4},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x1bf8, 3, slave_0_pdo_entries + 5},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x1bff, 1, slave_0_pdo_entries + 8},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x1bf4, 1, slave_0_pdo_entries + 9},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">ec_sync_info_t slave_0_syncs[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {2, EC_DIR_OUTPUT, 2, slave_0_pdos + 0, EC_WD_ENABLE},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {3, EC_DIR_INPUT, 3, slave_0_pdos + 2, EC_WD_DISABLE},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0xff}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">};</span></p>
</div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">********************************************************</span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[developer:~]$ sudo ethercat pdos                                                                                                                                             
                        18:19</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">SM0: PhysAddr 0x2800, DefaultSize  256, ControlRegister 0x26, Enable 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">SM1: PhysAddr 0x2a00, DefaultSize  256, ControlRegister 0x22, Enable 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">SM2: PhysAddr 0x1000, DefaultSize    0, ControlRegister 0x64, Enable 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">  RxPDO 0x1600 ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x7000:01,  1 bit, ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x7000:02,  1 bit, ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x7000:03,  1 bit, ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x7000:04,  1 bit, ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">  RxPDO 0x17f6 ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x0000:00, 12 bit, "Gap"</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">SM3: PhysAddr 0x1c00, DefaultSize    0, ControlRegister 0x20, Enable 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">  TxPDO 0x1bf8 ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x3003:04, 128 bit, ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x3006:04, 128 bit, ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x300a:02, 64 bit, ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">  TxPDO 0x1bff ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x2002:01,  8 bit, ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">  TxPDO 0x1bf4 ""</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    PDO entry 0x0000:00,  8 bit, "Gap"</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">(2)  The code:</span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <errno.h></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <signal.h></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <stdio.h></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <string.h></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <sys/resource.h></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <sys/time.h></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <sys/types.h></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <unistd.h></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <time.h> /* clock_gettime() */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <sys/mman.h> /* mlockall() */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include <sched.h> /* sched_setscheduler() */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#include "ecrt.h"</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/** Task period in ns. */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#define PERIOD_NS   (5000000)    // 5ms</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#define MAX_SAFE_STACK (8 * 1024) /* The maximum stack size which is</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">                                     guranteed safe to access without</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">                                     faulting */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/* Constants */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#define NSEC_PER_SEC (1000000000)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#define FREQUENCY (NSEC_PER_SEC / PERIOD_NS)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// EtherCAT</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_master_t *master = NULL;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_master_state_t master_state = {};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_domain_t *domain1 = NULL;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_domain_state_t domain1_state = {};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_slave_config_t *sc_digit_out = NULL;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_slave_config_state_t sc_digit_out_state = {};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// process data</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static uint8_t *domain1_pd = NULL;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#define BusCouplerPos  0, 0</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#define DigOutSlavePos 0, 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#define OMRON_ECC201 0x00000083, 0x00000083   //Omron ethercat coupler</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">#define OMRON_OD3256 0x00000001, 0x00133256  //Omron (4) digital output</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// offsets for PDO entries</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static unsigned int off_dig_out;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static unsigned int off_dig_out_bit0;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static unsigned int off_dig_out_bit1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static unsigned int off_dig_out_bit2;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static unsigned int off_dig_out_bit3;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// ------- output of "ethercat pdos" ------------- </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">///* Master 0, Slave 0, "NX-ECC201"</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// * Vendor ID:       0x00000083</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// * Product code:    0x00000083</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// * Revision number: 0x00010002</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//ec_pdo_entry_info_t slave_0_pdo_entries[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">      //this is from the digital output</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x7000, 0x01, 1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x7000, 0x02, 1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x7000, 0x03, 1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x7000, 0x04, 1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x0000, 0x00, 12}, /* Gap */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x3003, 0x04, 128},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x3006, 0x04, 128},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x300a, 0x02, 64},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x2002, 0x01, 8},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x0000, 0x00, 8}, /* Gap */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//ec_pdo_info_t slave_0_pdos[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x1600, 4, slave_0_pdo_entries + 0},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x17f6, 1, slave_0_pdo_entries + 4},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x1bf8, 3, slave_0_pdo_entries + 5},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x1bff, 1, slave_0_pdo_entries + 8},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0x1bf4, 1, slave_0_pdo_entries + 9},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//ec_sync_info_t slave_0_syncs[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {2, EC_DIR_OUTPUT, 2, slave_0_pdos + 0, EC_WD_ENABLE},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {3, EC_DIR_INPUT, 3, slave_0_pdos + 2, EC_WD_DISABLE},        //There are 2 output here, but one looks like the "Gap"</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//    {0xff}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">//};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">const static ec_pdo_entry_reg_t domain1_regs[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    // 4 ditig output</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0, 1, OMRON_OD3256, 0x7000, 0x01, &off_dig_out, &off_dig_out_bit0},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0, 1, OMRON_OD3256, 0x7000, 0x02, &off_dig_out, &off_dig_out_bit1},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0, 1, OMRON_OD3256, 0x7000, 0x03, &off_dig_out, &off_dig_out_bit2},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0, 1, OMRON_OD3256, 0x7000, 0x04, &off_dig_out, &off_dig_out_bit3},</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static unsigned int counter = 0;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static unsigned int blink = 0;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">// Digital out ------------------------</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_pdo_entry_info_t oc3256_channels[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x7000, 0x01, 1}, // Value 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x7000, 0x02, 1}, // Value 2</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x7000, 0x03, 1}, // Value 3</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x7000, 0x04, 1}  // Value 4</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_pdo_info_t oc3256_pdos[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {0x1600, 4, oc3256_channels + 0}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">static ec_sync_info_t oc3256_syncs[] = {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    {2, EC_DIR_OUTPUT, 1, oc3256_pdos, EC_WD_ENABLE}      // I am using only one output here, as the other one looks like just  a (12 bit) "Gap"</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">void check_domain1_state(void)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">{</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ec_domain_state_t ds;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ecrt_domain_state(domain1, &ds);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (ds.working_counter != domain1_state.working_counter) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        printf("Domain1: WC %u.\n", ds.working_counter);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (ds.wc_state != domain1_state.wc_state) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        printf("Domain1: State %u.\n", ds.wc_state);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    domain1_state = ds;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">void check_master_state(void)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">{</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ec_master_state_t ms;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ecrt_master_state(master, &ms);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (ms.slaves_responding != master_state.slaves_responding) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        printf("%u slave(s).\n", ms.slaves_responding);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (ms.al_states != master_state.al_states) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        printf("AL states: 0x%02X.\n", ms.al_states);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (ms.link_up != master_state.link_up) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        printf("Link is %s.\n", ms.link_up ? "up" : "down");</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    master_state = ms;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">void check_slave_config_states(void)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">{</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ec_slave_config_state_t s;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ecrt_slave_config_state(sc_digit_out, &s);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (s.al_state != sc_digit_out_state.al_state) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        printf("DigitalOutput: State 0x%02X.\n", s.al_state);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (s.online != sc_digit_out_state.online) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        printf("DigitalOutput: %s.\n", s.online ? "online" : "offline");</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (s.operational != sc_digit_out_state.operational) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        printf("DigitalOutput: %soperational.\n", s.operational ? "" : "Not ");</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    sc_digit_out_state = s;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">void cyclic_task()</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">{</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    // receive process data</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ecrt_master_receive(master);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ecrt_domain_process(domain1);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    // check process data state</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    check_domain1_state();</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (counter) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        counter--;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    } else { // do this at 1 Hz</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        counter = FREQUENCY;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        // calculate new process data</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        blink = !blink;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        // check for master state (optional)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        check_master_state();</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        // check for slave configuration state(s) (optional)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        check_slave_config_states();</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    // write process data</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    EC_WRITE_U8(domain1_pd + off_dig_out, 0x06); //write some value to digital output</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    // send process data</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ecrt_domain_queue(domain1);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ecrt_master_send(master);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">void stack_prefault(void)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">{</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    unsigned char dummy[MAX_SAFE_STACK];</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    memset(dummy, 0, MAX_SAFE_STACK);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">int main(int argc, char **argv)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">{</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    ec_slave_config_t *sc;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    struct timespec wakeup_time;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    int ret = 0;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    master = ecrt_request_master(0);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (!master) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        return -1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    domain1 = ecrt_master_create_domain(master);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (!domain1) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        return -1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (!(sc_digit_out = ecrt_master_slave_config(</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">                    master, DigOutSlavePos, OMRON_OD3256))) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        fprintf(stderr, "Failed to get slave configuration.\n");</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        return -1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">   // ----- I am using 1 as the argument, as one entry is in the oc3256_syncs, not sure if this is correct  -----</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (ecrt_slave_config_pdos(sc_digit_out, 1, oc3256_syncs)) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        fprintf(stderr, "Failed to configure PDOs.\n");</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        return -1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    // Create configuration for bus coupler</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    sc = ecrt_master_slave_config(master, BusCouplerPos, OMRON_ECC201);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (!sc) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        return -1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (ecrt_domain_reg_pdo_entry_list(domain1, domain1_regs)) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        fprintf(stderr, "PDO entry registration failed!\n");</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        return -1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    printf("Activating master...\n");</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (ecrt_master_activate(master)) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        return -1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (!(domain1_pd = ecrt_domain_data(domain1))) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        return -1;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    /* Set priority */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    struct sched_param param = {};</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    param.sched_priority = sched_get_priority_max(SCHED_FIFO);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    printf("Using priority %i.", param.sched_priority);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (sched_setscheduler(0, SCHED_FIFO, &param) == -1) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        perror("sched_setscheduler failed");</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    /* Lock memory */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    if (mlockall(MCL_CURRENT | MCL_FUTURE) == -1) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        fprintf(stderr, "Warning: Failed to lock memory: %s\n",</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">                strerror(errno));</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    stack_prefault();</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    printf("Starting RT task with dt=%u ns.\n", PERIOD_NS);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    clock_gettime(CLOCK_MONOTONIC, &wakeup_time);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    wakeup_time.tv_sec += 1; /* start in future */</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    wakeup_time.tv_nsec = 0;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    while (1) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        ret = clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME,</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">                &wakeup_time, NULL);</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        if (ret) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">            fprintf(stderr, "clock_nanosleep(): %s\n", strerror(ret));</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">            break;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        cyclic_task();</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        wakeup_time.tv_nsec += PERIOD_NS;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        while (wakeup_time.tv_nsec >= NSEC_PER_SEC) {</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">            wakeup_time.tv_nsec -= NSEC_PER_SEC;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">            wakeup_time.tv_sec++;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">        }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    }</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">    return ret;</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">}</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">/*****************************************************************************/</span></p>
</div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">(3)    Output of the debug msg:</span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[Nov 2 17:55] EtherCAT: Requesting master 0...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0: IDLE -> OPERATION.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000001] EtherCAT: Successfully requested master 0.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0: ecrt_master_create_domain(master = 0xffff88043e88e000)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000001] EtherCAT DEBUG 0: Created domain 0.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xffff88043e88e000, alias = 0, position = 1, vendor_id = 0x00000001, product_code = 0x00133256)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000002] EtherCAT DEBUG 0: Creating slave configuration for 0:1, 0x00000001/0x00133256.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000051] EtherCAT DEBUG 0 0:1: Failed to find slave for configuration.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000006] EtherCAT DEBUG 0 0:1: ecrt_slave_config_sync_manager(sc = 0xffff88043d40e000, sync_index = 3, dir = 1, watchdog_mode = 1)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0 0:1: ecrt_slave_config_pdo_assign_clear(sc = 0xffff88043d40e000, sync_index = 3)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0 0:1: ecrt_slave_config_pdo_assign_add(sc = 0xffff88043d40e000, sync_index = 3, pdo_index = 0x1600)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000005] EtherCAT DEBUG 0 0:1: ecrt_slave_config_pdo_mapping_clear(sc = 0xffff88043d40e000, pdo_index = 0x1600)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0 0:1: ecrt_slave_config_pdo_mapping_add(sc = 0xffff88043d40e000, pdo_index = 0x1600, entry_index = 0x7000, entry_subindex = 0x01, entry_bit_length
 = 1)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000005] EtherCAT DEBUG 0 0:1: ecrt_slave_config_pdo_mapping_add(sc = 0xffff88043d40e000, pdo_index = 0x1600, entry_index = 0x7000, entry_subindex = 0x02, entry_bit_length
 = 1)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000012] EtherCAT DEBUG 0 0:1: ecrt_slave_config_pdo_mapping_add(sc = 0xffff88043d40e000, pdo_index = 0x1600, entry_index = 0x7000, entry_subindex = 0x03, entry_bit_length
 = 1)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000007] EtherCAT DEBUG 0 0:1: ecrt_slave_config_pdo_mapping_add(sc = 0xffff88043d40e000, pdo_index = 0x1600, entry_index = 0x7000, entry_subindex = 0x04, entry_bit_length
 = 1)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000005] EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xffff88043e88e000, alias = 0, position = 0, vendor_id = 0x00000083, product_code = 0x00000083)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0: Creating slave configuration for 0:0, 0x00000083/0x00000083.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000007] EtherCAT DEBUG 0 0:0: Attached slave 0.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000009] EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xffff88043e88e000, alias = 0, position = 1, vendor_id = 0x00000001, product_code = 0x00133256)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000005] EtherCAT DEBUG 0 0:1: ecrt_slave_config_reg_pdo_entry(sc = 0xffff88043d40e000, index = 0x7000, subindex = 0x01, domain = 0xffff8803d0b6e980, bit_position = 0xffff88008a803d6c)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0: Domain 0: Added 1 bytes, total 1.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xffff88043e88e000, alias = 0, position = 1, vendor_id = 0x00000001, product_code = 0x00133256)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0 0:1: ecrt_slave_config_reg_pdo_entry(sc = 0xffff88043d40e000, index = 0x7000, subindex = 0x02, domain = 0xffff8803d0b6e980, bit_position = 0xffff88008a803d6c)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xffff88043e88e000, alias = 0, position = 1, vendor_id = 0x00000001, product_code = 0x00133256)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000005] EtherCAT DEBUG 0 0:1: ecrt_slave_config_reg_pdo_entry(sc = 0xffff88043d40e000, index = 0x7000, subindex = 0x03, domain = 0xffff8803d0b6e980, bit_position = 0xffff88008a803d6c)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xffff88043e88e000, alias = 0, position = 1, vendor_id = 0x00000001, product_code = 0x00133256)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000005] EtherCAT DEBUG 0 0:1: ecrt_slave_config_reg_pdo_entry(sc = 0xffff88043d40e000, index = 0x7000, subindex = 0x04, domain = 0xffff8803d0b6e980, bit_position = 0xffff88008a803d6c)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000034] EtherCAT DEBUG 0: ecrt_domain_external_memory(domain = 0xffff8803d0b6e980, mem = 0xffffc90002da5000)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0: ecrt_master_callbacks(master = 0xffff88043e88e000, send_cb = 0xffffffffc078dbe0, receive_cb = 0xffffffffc078c240, cb_data = 0xffff88043e88e000)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0: ecrt_master_activate(master = 0xffff88043e88e000)</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0: Adding datagram pair with expected WC 1.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000002] EtherCAT 0: Domain0: Logical address 0x00000000, 1 byte, expected working counter 1.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 1 byte, type LWR.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000002] EtherCAT DEBUG 0: Stopping master thread.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000006] EtherCAT DEBUG 0: Master IDLE thread exiting...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000010] EtherCAT 0: Master thread exited.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000002] EtherCAT DEBUG 0: FSM datagram is ffff88043e88e678.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000002] EtherCAT 0: Starting EtherCAT-OP thread.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000442] EtherCAT DEBUG 0: Operation thread running with fsm interval = 4000 us, max data size=45000</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000005] EtherCAT DEBUG 0: mmap()</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0: Vma fault, offset = 0, page = ffffea000f406dc0</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,959383] EtherCAT DEBUG 0: Configuration changed (aborting state check).</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT WARNING 0: No app_time received up to now, but master already active.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000001] EtherCAT DEBUG 0: Requesting OP...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,007980] EtherCAT DEBUG 0-0: Changing state from PREOP to OP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0-0: Configuring...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,002970] EtherCAT DEBUG 0-0: Now in INIT.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000002] EtherCAT DEBUG 0-0: Clearing FMMU configurations...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,002008] EtherCAT DEBUG 0-0: Clearing sync manager configurations...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,002004] EtherCAT DEBUG 0-0: Clearing DC assignment...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,001076] EtherCAT DEBUG 0-0: Configuring mailbox sync managers...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000006] EtherCAT DEBUG 0-0: SM0: Addr 0x2800, Size 256, Ctrl 0x26, En 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0-0: SM1: Addr 0x2A00, Size 256, Ctrl 0x22, En 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,001910] EtherCAT DEBUG 0-0: Assigning SII access to PDI.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,345003] EtherCAT DEBUG 0-0: Now in PREOP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0-0: Assigning SII access back to EtherCAT.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,002005] EtherCAT DEBUG 0-0: SM2: Addr 0x1000, Size   2, Ctrl 0x64, En 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0-0: SM3: Addr 0x1C00, Size  42, Ctrl 0x20, En 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,021987] EtherCAT DEBUG 0-0: Now in SAFEOP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,007001] EtherCAT DEBUG 0-0: Now in OP. Finished configuration.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,002024] EtherCAT 0: Slave states on main device: OP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,107984] EtherCAT DEBUG 0-0: OP -> SAFEOP + ERROR.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,001971] EtherCAT ERROR 0-0: AL status message 0x001B: "Sync manager watchdog".               //error</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,003999] EtherCAT 0-0: Acknowledged state SAFEOP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0-0: Changing state from SAFEOP to OP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000002] EtherCAT DEBUG 0-0: Configuring...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,246996] EtherCAT DEBUG 0-0: Now in INIT.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0-0: Clearing FMMU configurations...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,001996] EtherCAT DEBUG 0-0: Clearing sync manager configurations...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,002001] EtherCAT DEBUG 0-0: Clearing DC assignment...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,001998] EtherCAT DEBUG 0-0: Configuring mailbox sync managers...</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0-0: SM0: Addr 0x2800, Size 256, Ctrl 0x26, En 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000003] EtherCAT DEBUG 0-0: SM1: Addr 0x2A00, Size 256, Ctrl 0x22, En 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,002000] EtherCAT DEBUG 0-0: Assigning SII access to PDI.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,327996] EtherCAT DEBUG 0-0: Now in PREOP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000004] EtherCAT DEBUG 0-0: Assigning SII access back to EtherCAT.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,002003] EtherCAT DEBUG 0-0: SM2: Addr 0x1000, Size   2, Ctrl 0x64, En 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,000002] EtherCAT DEBUG 0-0: SM3: Addr 0x1C00, Size  42, Ctrl 0x20, En 1</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,020989] EtherCAT DEBUG 0-0: Now in SAFEOP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,007003] EtherCAT DEBUG 0-0: Now in OP. Finished configuration.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,109038] EtherCAT 0: Slave states on main device: SAFEOP + ERROR.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,004009] EtherCAT DEBUG 0-0: OP -> SAFEOP + ERROR.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,001970] EtherCAT ERROR 0-0: AL status message 0x001B: "Sync manager watchdog".     //error</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black">[  +0,004001] EtherCAT 0-0: Acknowledged state SAFEOP.</span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
<p><span style="font-family:"Calibri",sans-serif; color:black">Best, Kai</span></p>
<p class="x_MsoNormal"><span style="font-family:"Calibri",sans-serif; color:black"> </span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>