<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)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        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:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I am currently writing software to use the Beckhoff EL2502 module. Using the cstruct output of the etherlab tool, I get the following pdo configuration:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-size:9.0pt">/* Master 0, Slave 7, &quot;EL2502&quot;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">* Vendor ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00000002<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">* Product code:&nbsp;&nbsp;&nbsp; 0x09c63052<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">* Revision number: 0x00170000<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">*/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">ec_pdo_entry_info_t slave_7_pdo_entries[] = {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x7000, 0x11, 16}, /* PWM output */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x7010, 0x11, 16}, /* PWM output */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">ec_pdo_info_t slave_7_pdos[] = {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x1600, 1, slave_7_pdo_entries &#43; 0}, /* PWM RxPDO-Map Ch.1 */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x1601, 1, slave_7_pdo_entries &#43; 1}, /* PWM RxPDO-Map Ch.2 */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">ec_sync_info_t slave_7_syncs[] = {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {2, EC_DIR_OUTPUT, 2, slave_7_pdos &#43; 0, EC_WD_DISABLE},<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {3, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0xff}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">};<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">After reading through some of the beckhoff documentation, I changed my structures to accommodate the channel period registers&#8230;(I believe it is firmware specific).
<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-size:9.0pt">// EL2502 PDO entries<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">ec_pdo_entry_info_t EL2502_pdo_entries[] = {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x7000, 0x11, 16}, /* PWM CH1 output */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x7000, 0x12, 16},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* PWM CH1 period */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x7010, 0x11, 16}, /* PWM CH2 output */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x7010, 0x12, 16},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* PWM CH2 period */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">// EL2502 PDOs<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">ec_pdo_info_t EL2502_pdos[] = {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x1602, 1, EL2502_pdo_entries &#43; 0}, /* PWM RxPDO-Map Ch.1 */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0x1603, 1, EL2502_pdo_entries &#43; 2}, /* PWM RxPDO-Map Ch.2 */<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">// EL2502 sync<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">ec_sync_info_t EL2502_syncs[] = {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {2, EC_DIR_OUTPUT, 2, EL2502_pdos &#43; 0, EC_WD_DISABLE},<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {3, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">&nbsp;&nbsp;&nbsp; {0xff}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt">};<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Has anyone ever set the frequency and pulse width of the ouput signal on either channel using pdo&#8217;s? My project requires changing the pulse frequency and the pulse width on the fly and I was wondering if I can accomplish this using the
 pdo&#8217;s. Does anyone else have different c structures they are using?<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Thank you!<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">-Derrill<o:p></o:p></p>
</div>
</body>
</html>