<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:612.0pt 792.0pt;
margin:3.0cm 2.0cm 3.0cm 2.0cm;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1027" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hello Florian, Gavin, Frank and others<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have attached the complete list of patches that we use for our IgH EtherCAT master:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 1 (ethercat_152_patch_1_eoe.patch):<o:p></o:p></p>
<p class="MsoNormal">Ensures that we use the call back functions (with io lock support) when using the IOCTL interface.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 2 (ethercat_152_patch_2_foe.patch):<o:p></o:p></p>
<p class="MsoNormal">Wrong datagram used for timeout calculation.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 3 (ethercat_152_patch_3_lrw_datagram.patch):<o:p></o:p></p>
<p class="MsoNormal">Input/Output counter were not incremented if new datagram were allocated.<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">Patch 4 (ethercat_152_patch_4_eoe_mac.patch)<o:p></o:p></p>
<p class="MsoNormal">Change the MAC address for eoe0sY devices to real local administrated MAC addresses based on the NIC part of eth0 and the EoE slaves ring position.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 5 (ethercat_152_patch_5_priority_inheritance.patch)<o:p></o:p></p>
<p class="MsoNormal">Replaced semaphores with mutexes to utilize priority inheritance and limit impact from lower priority tasks (EtherCAT-EOE) running as sched_other task.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 6 (ethercat_152_patch_6_mailbox.patch)<o:p></o:p></p>
<p class="MsoNormal">Alternative solution to Patch 9-10-11 provided by Frank Heckenbach for 1.5.0 (that I did not succeed to get up running on 1.5.2). In this solution I accept that a mailbox read request (e.g. FP-RD) for a given mailbox protocol can return
data from any other mailbox protocol running at the same time. The data returned by a read datagram is therefore stored in a separate buffer for each mailbox protocol instead of the datagram data buffer. The mailbox state machines will check and fetch the
data from their own buffer instead of the datagram buffer (that is no longer used for mailbox read data). A check_mbox flag is introduced to track when a given slave has an ongoing mailbox read request. In normal case the mailbox state machine will run as
previously if no mailbox read request is ongoing, but if a mailbox read-request is ongoing (check_mbox flag is set) it will check its own mailbox buffer (as the ongoing mailbox read request might have returned its data) and otherwise wait until the read request
is done and it gets the opportunity to reserve the mailbox for its own read request.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 7 (ethercat_152_patch_7_sdoinfo.patch)<o:p></o:p></p>
<p class="MsoNormal">Alternative solution to Patch 28 provided by Frank Heckenback for 1.5.0. More simple but without the same user feed-back.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 8 (ethercat_152_patch_8_ext_queue_protect.patch)<o:p></o:p></p>
<p class="MsoNormal">It is due to the usage of the call back function added in Patch 1 also very important to secure protection of the external datagram queue. Also discovered by Frank Heckenback in Patch 23.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 9 (ethercat_152_patch_9_clear_mailbox.patch)<o:p></o:p></p>
<p class="MsoNormal">A slightly modified version of Patch 26 provided by Frank Heckenback. The required modification were needed due to the alternative multiple mailbox protocol solution provided in Patch 6.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patch 10 (ethercat_152_patch_10_scan_skip_stats.patch)<o:p></o:p></p>
<p class="MsoNormal">No reason to write output statistics in syslog when issuing a slave scanning where UNMATCHED datagrams are expected behavior.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:6.0pt;font-family:"Arial","sans-serif";color:black;mso-fareast-language:DA"><br>
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:EN-GB">Venlig hilsen / Best regards,
<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;mso-fareast-language:EN-GB">Knud Baastrup
<br>
</span></b><i><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;mso-fareast-language:EN-GB">DEIF Wind Power Technology</span></i><span style="font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:EN-GB"><br>
<i><span style="color:black">SW Developer<o:p></o:p></span></i></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#4A575E;mso-fareast-language:EN-GB">Direct.: +45 9614 8458</span><span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:navy;mso-fareast-language:EN-GB"><br>
</span><span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#4A575E;mso-fareast-language:EN-GB">E-mail:
</span><span style="font-size:7.5pt;font-family:"Arial","sans-serif";mso-fareast-language:EN-GB"><a href="mailto:kba@deif.com"><span style="color:#0563C1">kba@deif.com</span></a><span style="color:#4A575E"><br>
---------------------------------------------------------------</span></span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D;mso-fareast-language:DA"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter" />
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0" />
<v:f eqn="sum @0 1 0" />
<v:f eqn="sum 0 0 @1" />
<v:f eqn="prod @2 1 2" />
<v:f eqn="prod @3 21600 pixelWidth" />
<v:f eqn="prod @3 21600 pixelHeight" />
<v:f eqn="sum @0 0 1" />
<v:f eqn="prod @6 1 2" />
<v:f eqn="prod @7 21600 pixelWidth" />
<v:f eqn="sum @8 21600 0" />
<v:f eqn="prod @7 21600 pixelHeight" />
<v:f eqn="sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />
<o:lock v:ext="edit" aspectratio="t" />
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_s1026" type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;width:31.6pt;height:68.25pt;z-index:251659264;visibility:visible;mso-wrap-style:square;mso-width-percent:0;mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:left;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:text;mso-width-percent:0;mso-height-percent:0;mso-width-relative:page;mso-height-relative:page'>
<v:imagedata src="cid:image001.png@01CF9C2D.883BB730" o:title="" />
<w:wrap type="square"/>
</v:shape><![endif]--><![if !vml]><img width="42" height="91" src="cid:image002.png@01CF9C58.9B9CBFB0" align="left" hspace="12" v:shapes="Picture_x0020_1"><![endif]><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D;mso-fareast-language:DA">Retrofit
your Vestas COTAS controller and optimize availability that will improve your annual energy generation, reduce service cost and extend the lifetime of your turbine.<br>
V27 V39 V44 V47</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D;mso-fareast-language:DA"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><u><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:blue;mso-fareast-language:DA"><a href="http://www.deifwindpower.com/retrofit.aspx?utm_source=Retrofit&utm_medium=email%20signatur&utm_term=Retrofit%2BVestas%2BCOTAS&utm_content=textlink&utm_campaign=Retrofit"><span style="color:#0563C1">Read
more about DEIF’s solutions to retrofit your turbines on our website</span></a></span></u><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D;mso-fareast-language:DA"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>