<p>SOEM is an EtherCAT master library written in c. Its purpose is to learn and to use. All users are invited to study the source to get an understanding how an EtherCAT master functions and how it interacts with EtherCAT slaves.</p>
<p>As all applications are different SOEM tries to not impose any design architecture. Under Linux it can be used in generic user mode, PREEMPT_RT or Xenomai. under Windows it can be used as user mode program.</p>
<p>Preconditions Linux:</p>
<ul>
<li>Linux 2.6 kernel.</li>
<li>GCC compiler (others might work, just not tested).</li>
<li>One (or two if in redundant mode) 100Mb/s NIC that can connect to a RAW socket.</li>
<li>Application must run as root / kernel.</li>
</ul>
<p>Preconditions Windows:</p>
<ul>
<li>Windows2000 - Windows 7 (8 not tested, might work).</li>
<li>VC compiler (others might work, just not tested).</li>
<li>One (or two if in redundant mode) 100Mb/s NIC that can connect to a RAW socket.</li>
<p>For examples see <aclass="el"href="simple__test_8c.html"title="Example code for Simple Open EtherCAT master.">simple_test.c</a> in ~/test/linux/simple_test. First try (assume EtherCAT on eth0): sudo ./simple_test eth0 As SOEM uses RAW sockets it will need to run as root.</p>
<p>For Windows</p>
<ul>
<li>have winpcap installed (included with WireShark)</li>
<li>go to project directory</li>
<li>for VC, run vcvarsall.bat f.e. : C: Files (x86) Visual Studio 10.0.bat x86</li>
<li>Added missing Big-Endian conversion in <aclass="el"href="ethercatconfig_8c.html"title="Configuration module for EtherCAT master.">ethercatconfig.c</a></li>
<li>Fixed bug in segmented SDO transfers in <aclass="el"href="ethercatcoe_8c.html"title="CAN over EtherCAT (CoE) module.">ethercatcoe.c</a></li>
</ul>
<p>Version 1.1.4</p>
<ul>
<li>Changed FMMU algorithm of allocation during configuration. EL4732 supported now.</li>
<li>Changed the ec_slave structure around SM en FMMU storage.</li>
<li>Fixed bug in FoE write in <aclass="el"href="ethercatfoe_8c.html"title="File over EtherCAT (FoE) module.">ethercatfoe.c</a></li>
</ul>
<p>Version 1.2.0</p>
<ul>
<li>Fixed bug in type definition of int32 and uint32 for 64bit OS.</li>
<li>Fixed bug in maximum dataframe size calculation.</li>
</ul>
<p>Version 1.2.2</p>
<ul>
<li>Fixed bugs in ec_adddatagram.</li>
<li>Fixed several bugs in CoE object dictionary read functions.</li>
<li>Fixed bug in PDO mapping read function.</li>
<li>Changed ec_slave structure around topology and delay variables.</li>
<li>Added several constants in ethercattype.c</li>
</ul>
<p>Version 1.2.3</p>
<ul>
<li>Clear SM enable if size is 0, even if enable is set in SII.</li>
<li>Fixed bug in DC propagation delay calculation. Branches with only non DC slaves now correctly close root port.</li>
<li>Fixed bug in <aclass="el"href="ethercatmain_8c.html#a14280050ace4427d196acd17e6d79e55">ec_receive_processdata()</a>, wkc now checks for EC_NOFRAME instead of 0.</li>
<li>Fixed bug in makefile.</li>
</ul>
<p>Version 1.2.5</p>
<ul>
<li>Fixed bugs in <aclass="el"href="ethercatconfig_8c.html#aa740a2ba948117670c4f9741bc31cc38">ec_config_map()</a>.</li>
<li>Added EC_STATE_BOOT constant.</li>
<li>Fixed mailbox size bug, In and Out mailbox can now be of different size.</li>
<li>Fixed SM type bug.</li>
<li>Fixed FoE bugs.</li>
<li>Fixed siigetbyte() unaligned copy.</li>
<li>Fixed bug in nicdrv.c, socket handles are 0 included.</li>
<li>Fixed bug in <aclass="el"href="ethercatconfig_8c.html"title="Configuration module for EtherCAT master.">ethercatconfig.c</a> causing memory corruption.</li>
<p>SOEM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.</p>
<p>SOEM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>As a special exception, if other files instantiate templates or use macros or inline functions from this file, or you compile this file and link it with other works to produce a work based on this file, this file does not by itself cause the resulting work to be covered by the GNU General Public License. However the source code for this file must still be made available in accordance with section (3) of the GNU General Public License.</p>
<p>This exception does not invalidate any other reasons why a work based on this file might be covered by the GNU General Public License.</p>
<p>The EtherCAT Technology, the trade name and logo "EtherCAT" are the intellectual property of, and protected by Beckhoff Automation GmbH. You can use SOEM for the sole purpose of creating, using and/or selling or otherwise distributing an EtherCAT network master provided that an EtherCAT Master License is obtained from Beckhoff Automation GmbH.</p>
<p>In case you did not receive a copy of the EtherCAT Master License along with SOEM write to Beckhoff Automation GmbH, Eiserstrasse 5, D-33415 Verl, Germany (www.beckhoff.com). </p>