<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Webdings;
panose-1:5 3 1 2 1 5 9 6 7 3;}
/* 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:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.tlid-translation
{mso-style-name:tlid-translation;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span class="tlid-translation"><span lang="EN">I solve my issue.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="tlid-translation"><span lang="EN">Gavin as you told ùe, I pass a second pointer in ec_pdo_entry_reg_t to capture bit offset, and error -14 returned by « ecrt_domain_reg_pdo_entry_list » disappeared.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="tlid-translation"><span lang="EN">Then I can drive digital outputs using EC_WRITE macro.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="tlid-translation"><span lang="EN"><o:p> </o:p></span></span></p>
<p class="MsoNormal"><span class="tlid-translation"><span lang="EN">Thanks a lot</span></span><span style="color:#1F497D;mso-fareast-language:EN-US"><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1F497D">Vincent BUSSIERES<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Responsable Technique Logiciel<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span style="color:black"><img width="96" height="72" style="width:1.0in;height:.75in" id="_x0000_i1033" src="cid:image001.png@01D619CC.2C2E8F80" alt="1572337113342"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#00295C">ZE Ma Campagne<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#00295C">36, Impasse Félix Nadar<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#00295C">16000 ANGOULEME<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:gray">Tel: 33 (0)9.72.40.35.08<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#999999"><a href="https://webmail.nexeya.fr/owa/redir.aspx?C=GK_BqKCZef7LtPZnqnd_LGYr1NG9sz4Smy3iKIwO-pXqtJC7VgzXCA..&URL=http%3a%2f%2fwww.hemeria-group.com%2f" target="_blank">www.hemeria-group.com</a></span></i><span style="color:black"> <br>
</span><span style="font-size:16.0pt;font-family:Webdings;color:green">P</span><span style="color:black"> </span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:#99CC00">Afin de contribuer au respect de l'environnement, merci de n'imprimer
ce courriel qu'en cas de nécessité.</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:gray">Ce message et les fichiers pouvant être attachés sont confidentiels, réservés à l'usage unique des destinataires et n'engagent HEMERIA sous aucune forme que ce soit.</span><span style="color:black"><br>
</span><span lang="EN-GB" style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:gray">This email and any files transmitted with it are confidential, intented solely for the unique use of the recipients and don't commit HEMERIA.</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;color:black"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1F497D"><o:p> </o:p></span></b></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>De :</b> Gavin Lambert <gavin.lambert@tomra.com> <br>
<b>Envoyé :</b> jeudi 23 avril 2020 01:17<br>
<b>À :</b> BUSSIERES Vincent <vincent.bussieres@hemeria-group.com>; etherlab-users@etherlab.org<br>
<b>Objet :</b> RE: [etherlab-users] Beckhoff EL2809 (16 digital outputs) initialization issue<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-NZ">If ecrt_domain_reg_pdo_entry_list returns an error, it has nothing to do with the slave itself, it means you’re passing inconsistent data.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-NZ"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-NZ">Having said that, at a glance I don’t see any obvious issues with the code you’ve posted (except that you probably should have the watchdog enabled, but that’s an unrelated issue). When the error occurs, have a look
at the syslog output; it should tell you more. If that’s not enlightening enough, then set “ethercat debug 1” before running your code and check the syslog again.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-NZ"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-NZ">There is an EC_WRITE_BIT as well. In addition to the byte offset (which is stored in &offOutput[x] in your example), you need to pass a second pointer in
</span>ec_pdo_entry_reg_t<span lang="EN-NZ"> to capture the bit offset, when using data smaller than 1 byte.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-NZ"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-NZ">(Alternatively, while this is technically not robust and may potentially break due to other network layout, given the total size of the SMs it’s reasonably safe to assume that the 16 outputs will be mapped to two physical
bytes, so you can just use EC_WRITE_U8 at the byte address of outputs 1 and 9, respectively. Or even EC_WRITE_U16 just to the address of output 1. You will have to be careful about potential bit ordering differences between your master and slave, however.)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p><strong><span lang="EN-US" style="font-family:"Calibri",sans-serif;color:#595959">Gavin Lambert</span></strong><b><span lang="EN-US" style="font-family:"Calibri",sans-serif;color:#595959"><br>
</span></b><span lang="EN-US" style="font-family:"Calibri",sans-serif;color:#595959">Senior Software Developer<o:p></o:p></span></p>
<table class="MsoNormalTable" border="0" cellspacing="3" cellpadding="0">
<tbody>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt"></td>
</tr>
</tbody>
</table>
<p><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial",sans-serif"><img border="0" width="360" height="102" style="width:3.75in;height:1.0666in" id="_x0000_i1025" src="cid:image002.png@01D619CC.2C2E8F80"><br>
<a href="http://www.compacsort.com"><span style="text-decoration:none"><img border="0" width="33" height="37" style="width:.3416in;height:.3833in" id="_x0000_i1026" src="cid:image003.png@01D619CC.2C2E8F80" alt="TOMRA"></span></a><a href="https://www.facebook.com/Compacsort"><span style="text-decoration:none"><img border="0" width="35" height="37" style="width:.3666in;height:.3833in" id="_x0000_i1027" src="cid:image004.png@01D619CC.2C2E8F80" alt="Facebook"></span></a><a href="https://www.linkedin.com/company/compac-sorting-equipment/"><span style="text-decoration:none"><img border="0" width="35" height="37" style="width:.3666in;height:.3833in" id="_x0000_i1028" src="cid:image005.png@01D619CC.2C2E8F80" alt="Linkedin"></span></a><a href="https://vimeo.com/compacsort"><span style="text-decoration:none"><img border="0" width="37" height="37" style="width:.3833in;height:.3833in" id="_x0000_i1029" src="cid:image006.png@01D619CC.2C2E8F80" alt="Youtube"></span></a><a href="https://twitter.com/compacsort"><span style="text-decoration:none"><img border="0" width="33" height="37" style="width:.3416in;height:.3833in" id="_x0000_i1030" src="cid:image007.png@01D619CC.2C2E8F80" alt="twitter"></span></a><a href="https://www.instagram.com/compacsort/"><span style="text-decoration:none"><img border="0" width="33" height="37" style="width:.3416in;height:.3833in" id="_x0000_i1031" src="cid:image008.png@01D619CC.2C2E8F80" alt="instagram"></span></a><o:p></o:p></span></p>
<p><b><span lang="EN-US" style="font-size:9.0pt;font-family:"Calibri",sans-serif;color:#595959">COMPAC SORTING EQUIPMENT LTD</span></b><span lang="EN-US" style="font-size:9.0pt;font-family:"Calibri",sans-serif;color:#595959"> | 4 Henderson Pl | Onehunga | Auckland
1061 | New Zealand<br>
Switchboard: +64 96 34 00 88 | <a href="http://www.tomra.com">tomra.com</a> <o:p>
</o:p></span></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse">
<tbody>
<tr>
<td valign="top" style="border-top:solid #595959 1.0pt;border-left:none;border-bottom:solid #595959 1.0pt;border-right:none;padding:0cm 0cm 0cm 0cm">
<p><span style="font-size:9.0pt;font-family:"Calibri",sans-serif;color:#595959">The information contained in this communication and any attachment is confidential and may be legally privileged. It should only be read by the person(s) to whom it is addressed.
If you have received this communication in error, please notify the sender and delete the communication.
<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> BUSSIERES Vincent<br>
<b>Sent:</b> Thursday, 23 April 2020 08:50<br>
<b>To:</b> <a href="mailto:etherlab-users@etherlab.org">etherlab-users@etherlab.org</a><br>
<b>Subject:</b> [etherlab-users] Beckhoff EL2809 (16 digital outputs) initialization issue<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">Dear Etherlab users,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am working with a Beckhoff EL2809 module (16 digital outputs module) and I have some difficulties to register pdo entries.<o:p></o:p></p>
<p class="MsoNormal">I think that for this module pdo are not assignable.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">You can find some informations about this product below :<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">=== Master 0, Slave 3 ===<o:p></o:p></p>
<p class="MsoNormal">Device: Main<o:p></o:p></p>
<p class="MsoNormal">State: PREOP<o:p></o:p></p>
<p class="MsoNormal">Flag: +<o:p></o:p></p>
<p class="MsoNormal">Identity:<o:p></o:p></p>
<p class="MsoNormal"> Vendor Id: 0x00000002<o:p></o:p></p>
<p class="MsoNormal"> Product code: 0x0af93052<o:p></o:p></p>
<p class="MsoNormal"> Revision number: 0x00120000<o:p></o:p></p>
<p class="MsoNormal"> Serial number: 0x00000000<o:p></o:p></p>
<p class="MsoNormal">DL information:<o:p></o:p></p>
<p class="MsoNormal"> FMMU bit operation: no<o:p></o:p></p>
<p class="MsoNormal"> Distributed clocks: yes, delay measurement only<o:p></o:p></p>
<p class="MsoNormal"> DC system time transmission delay: 885 ns<o:p></o:p></p>
<p class="MsoNormal">Port Type Link Loop Signal NextSlave RxTime [ns] Diff [ns] NextDc [ns]<o:p></o:p></p>
<p class="MsoNormal"> 0* EBUS up open yes 2 2053620480 0 145<o:p></o:p></p>
<p class="MsoNormal"> 1 EBUS up open yes 4 2053621070 590 140<o:p></o:p></p>
<p class="MsoNormal"> 2 N/A down closed no - - - -<o:p></o:p></p>
<p class="MsoNormal"> 3 N/C down closed no - - - -<o:p></o:p></p>
<p class="MsoNormal">General:<o:p></o:p></p>
<p class="MsoNormal"> Group: DigOut<o:p></o:p></p>
<p class="MsoNormal"> Image name: <o:p></o:p></p>
<p class="MsoNormal"> Order number: EL2809<o:p></o:p></p>
<p class="MsoNormal"> Device name: EL2809 16K. Dig. Ausgang 24V, 0.5A<o:p></o:p></p>
<p class="MsoNormal"> Flags:<o:p></o:p></p>
<p class="MsoNormal"> Enable SafeOp: no<o:p></o:p></p>
<p class="MsoNormal"> Enable notLRW: no<o:p></o:p></p>
<p class="MsoNormal"> Current consumption: 140 mA<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">SM0: PhysAddr 0x0f00, DefaultSize 1, ControlRegister 0x44, Enable 9<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1600 "Channel 1"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7000:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1601 "Channel 2"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7010:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1602 "Channel 3"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7020:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1603 "Channel 4"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7030:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1604 "Channel 5"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7040:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1605 "Channel 6"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7050:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1606 "Channel 7"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7060:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1607 "Channel 8"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7070:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal">SM1: PhysAddr 0x0f01, DefaultSize 1, ControlRegister 0x44, Enable 9<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1608 "Channel 9"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7080:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x1609 "Channel 10"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x7090:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x160a "Channel 11"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x70a0:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x160b "Channel 12"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x70b0:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x160c "Channel 13"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x70c0:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x160d "Channel 14"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x70d0:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x160e "Channel 15"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x70e0:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"> RxPDO 0x160f "Channel 16"<o:p></o:p></p>
<p class="MsoNormal"> PDO entry 0x70f0:01, 1 bit, "Output"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I don’t know if I need to map PDOs because they are already mapped.<o:p></o:p></p>
<p class="MsoNormal">At the initialization, « ecrt_domain_reg_pdo_entry_list » return error -14. You can find below a part of my code for the initialization.<o:p></o:p></p>
<p class="MsoNormal">Moreover, each output is written on 1 bit, we can only write PDO with macro EC_WRITE_U8, how can I do to drive only one output ?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">static unsigned int offOutput[16];<o:p></o:p></p>
<p class="MsoNormal">static ec_domain_state_t domain1_state = {};<o:p></o:p></p>
<p class="MsoNormal">static ec_master_state_t master_state = {};<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">const static ec_pdo_entry_reg_t domain1_regs[] = {<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7000, 1, &offOutput[0]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7010, 1, &offOutput[1]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7020, 1, &offOutput[2]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7030, 1, &offOutput[3]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7040, 1, &offOutput[4]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7050, 1, &offOutput[5]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7060, 1, &offOutput[6]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7070, 1, &offOutput[7]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7080, 1, &offOutput[8]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x7090, 1, &offOutput[9]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x70a0, 1, &offOutput[10]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x70b0, 1, &offOutput[11]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x70c0, 1, &offOutput[12]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x70d0, 1, &offOutput[13]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x70e0, 1, &offOutput[14]},<o:p></o:p></p>
<p class="MsoNormal"> {0, 3, 0x00000002, 0x0af93052, 0x70f0, 1, &offOutput[15]},<o:p></o:p></p>
<p class="MsoNormal"> {}<o:p></o:p></p>
<p class="MsoNormal">};<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">ec_pdo_entry_info_t slave_0_pdo_entries[] = { <o:p></o:p></p>
<p class="MsoNormal"> {0x7000, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x7010, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x7020, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x7030, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x7040, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x7050, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x7060, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x7070, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> {0x7080, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x7090, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x70a0, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x70b0, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x70c0, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x70d0, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x70e0, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal"> {0x70f0, 0x01, 1},<o:p></o:p></p>
<p class="MsoNormal">};<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">ec_pdo_info_t slave_0_pdos[] = {<o:p></o:p></p>
<p class="MsoNormal"> {0x1600, 1, &slave_0_pdo_entries[0]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1601, 1, &slave_0_pdo_entries[1]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1602, 1, &slave_0_pdo_entries[2]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1603, 1, &slave_0_pdo_entries[3]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1604, 1, &slave_0_pdo_entries[4]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1605, 1, &slave_0_pdo_entries[5]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1606, 1, &slave_0_pdo_entries[6]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1607, 1, &slave_0_pdo_entries[7]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1608, 1, &slave_0_pdo_entries[8]},<o:p></o:p></p>
<p class="MsoNormal"> {0x1609, 1, &slave_0_pdo_entries[9]},<o:p></o:p></p>
<p class="MsoNormal"> {0x160a, 1, &slave_0_pdo_entries[10]},<o:p></o:p></p>
<p class="MsoNormal"> {0x160b, 1, &slave_0_pdo_entries[11]},<o:p></o:p></p>
<p class="MsoNormal"> {0x160c, 1, &slave_0_pdo_entries[12]},<o:p></o:p></p>
<p class="MsoNormal"> {0x160d, 1, &slave_0_pdo_entries[13]},<o:p></o:p></p>
<p class="MsoNormal"> {0x160e, 1, &slave_0_pdo_entries[14]},<o:p></o:p></p>
<p class="MsoNormal"> {0x160f, 1, &slave_0_pdo_entries[15]},<o:p></o:p></p>
<p class="MsoNormal">};<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">ec_sync_info_t slave_0_syncs[] = {<o:p></o:p></p>
<p class="MsoNormal"> {0, EC_DIR_OUTPUT, 8, slave_0_pdos + 0, EC_WD_DISABLE},<o:p></o:p></p>
<p class="MsoNormal"> {1, EC_DIR_OUTPUT, 8, slave_0_pdos + 8, EC_WD_DISABLE},<o:p></o:p></p>
<p class="MsoNormal"> {0xff}<o:p></o:p></p>
<p class="MsoNormal">};<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">static ec_master_t *master = nullptr;<o:p></o:p></p>
<p class="MsoNormal">static ec_domain_t *domain1 = nullptr;<o:p></o:p></p>
<p class="MsoNormal">static uint8_t *domain1_pd = nullptr;<o:p></o:p></p>
<p class="MsoNormal">static ec_slave_config_t *sc_el2809 = nullptr;<o:p></o:p></p>
<p class="MsoNormal">static ec_slave_config_state_t sc_el2809_state = {};<o:p></o:p></p>
<p class="MsoNormal">static ec_slave_info_t slaveInfo;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">bool Worker::init()<o:p></o:p></p>
<p class="MsoNormal">{ <o:p></o:p></p>
<p class="MsoNormal"> master = ecrt_request_master(0);<o:p></o:p></p>
<p class="MsoNormal"> if ( !master )<o:p></o:p></p>
<p class="MsoNormal"> return false; <o:p></o:p></p>
<p class="MsoNormal"> domain1 = ecrt_master_create_domain(master);<o:p></o:p></p>
<p class="MsoNormal"> if ( !domain1 ) <o:p></o:p></p>
<p class="MsoNormal"> return false; <o:p></o:p></p>
<p class="MsoNormal"> if ( !(sc_el2809 = ecrt_master_slave_config(master, 0, 3, 0x00000002, 0x0af93052)) )<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"> fprintf(stderr, "Failed to get slave configuration for AKD.\n");<o:p></o:p></p>
<p class="MsoNormal"> return false;<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"> if (ecrt_slave_config_pdos(sc_el2809, EC_END, slave_0_syncs))<o:p></o:p></p>
<p class="MsoNormal"> return false;<o:p></o:p></p>
<p class="MsoNormal"> //----------- return -14 ?<o:p></o:p></p>
<p class="MsoNormal"> if (ecrt_domain_reg_pdo_entry_list(domain1, domain1_regs))<o:p></o:p></p>
<p class="MsoNormal"> return false;<o:p></o:p></p>
<p class="MsoNormal"> //-----------------------<o:p></o:p></p>
<p class="MsoNormal"> if ( ecrt_master_activate( master ) )<o:p></o:p></p>
<p class="MsoNormal"> return false;<o:p></o:p></p>
<p class="MsoNormal"> if (!(domain1_pd = ecrt_domain_data(domain1)))<o:p></o:p></p>
<p class="MsoNormal"> return false;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> return true;<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">dmesg doesn’t seem report any errors.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Best regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1F497D">Vincent BUSSIERES<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Responsable Technique Logiciel<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span style="color:black"><img border="0" width="96" height="72" style="width:1.0in;height:.75in" id="Image_x0020_1" src="cid:image001.png@01D619CC.2C2E8F80" alt="1572337113342"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#00295C">ZE Ma Campagne<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#00295C">36, Impasse Félix Nadar<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#00295C">16000 ANGOULEME<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:gray">Tel: 33 (0)9.72.40.35.08<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#999999"><a href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwebmail.nexeya.fr%2Fowa%2Fredir.aspx%3FC%3DGK_BqKCZef7LtPZnqnd_LGYr1NG9sz4Smy3iKIwO-pXqtJC7VgzXCA..%26URL%3Dhttp%253a%252f%252fwww.hemeria-group.com%252f&data=02%7C01%7Cgavin.lambert%40tomra.com%7Cf091907ede00490bbc1008d7e6febd35%7C4308d118edd143008a37cfeba8ad5898%7C0%7C0%7C637231854094445603&sdata=xvkywGyCJdixGyXCXpkIDXCsnTJxOsVY9eZnaRuH3SU%3D&reserved=0" target="_blank">www.hemeria-group.com</a></span></i><span style="color:black"> <br>
</span><span style="font-size:16.0pt;font-family:Webdings;color:green">P</span><span style="color:black"> </span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:#99CC00">Afin de contribuer au respect de l'environnement, merci de n'imprimer
ce courriel qu'en cas de nécessité.</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:gray">Ce message et les fichiers pouvant être attachés sont confidentiels, réservés à l'usage unique des destinataires et n'engagent HEMERIA sous aucune forme que ce soit.</span><span style="color:black"><br>
</span><span lang="EN-GB" style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:gray">This email and any files transmitted with it are confidential, intented solely for the unique use of the recipients and don't commit HEMERIA.</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;color:black"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1F497D"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>