Kick-start your slaves!
Thin EtherCAT stack designed to be embedded in a more complex software and with efficiency in mind.
NOTE The current implementation is designed for little endian host only!
To improve latency on Linux, you have to
KickCAT project is handled through CMake. To build the project, call CMake to configure it and then the build tool (default on Linux is make):
mkdir -p build
cd build
cmake ..
make
In order to build unit tests, you have to enable the option BUILD_UNIT_TESTS (default to ON) and to provide GTest package through CMake find_package mechanism. You also need gcovr to enable coverage report generation (COVERAGE option). Note: you can easily provide GTest via conan package manager:
Install conan and setup PATH variable (more information on https://docs.conan.io/en/latest/installation.html)
pip install conan
pip install gcovr
export PATH="$PATH:$HOME/.local/bin"
Install GTest in your build folder:
mkdir -p build
cd build
conan install ../conan/conanfile.txt -of=./ -pr ../conan/profile_linux_x86_64.txt -pr:b ../conan/profile_linux_x86_64.txt --build=missing -s build_type=Debug
Beware -s build_type
must be consistent with CMAKE_BUILD_TYPE
otherwise gtest will not be found.
Configure the project (can be done on an already configured project)
cmake .. -DCMAKE_BUILD_TYPE=Release
To start a network simulator, you can either create a virtual ethernet pair (on Linux you can use the helper script 'create_virtual_ethernet.sh') or use a real network interface by using two computer or two interfaces on the same computer. Note: the simulator has to be started first
A simple slave stack is under development. A working example based on Nuttx RTOS and tested on arduino due + easycat Lan9252 shield is available in examples/slave/nuttx_lan9252
.
Another example using the XMC4800 with NuttX is available.
Follow the readme in KickCAT/examples/slave/nuttx/xmc4800/README.md
for insight about how to setup and build the slave stack.
KickCAT versions follow the rules of semantic versioning https://semver.org/
On major version update, a process of testing starts. The version is in alpha phase until API stabilization. Then we switch to release candidate (-rcx). To leave a release candidate state, it is required that:
For each tag, Conan center has to be updated (https://github.com/conan-io/conan-center-index/tree/master/recipes/kickcat).
When a version leaves the release canditate state a github release shall be generated on the corresponding tag.
https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_io_intro/1257993099.html&id=3196541253205318339 https://www.ethercat.org/download/documents/EtherCAT_Device_Protocol_Poster.pdf
various: https://sir.upc.edu/wikis/roblab/index.php/Development/Ethercat
diag: https://www.automation.com/en-us/articles/2014-2/diagnostics-with-ethercat-part-4 https://infosys.beckhoff.com/english.php?content=../content/1033/ethercatsystem/1072509067.html&id= https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000kHwESAU
esc comparison: https://download.beckhoff.com/download/document/io/ethercat-development-products/an_esc_comparison_v2i7.pdf
Kickcat is available on conan-io. Whenever there is a new tag: