Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
embedded_systems:ethercat:start [2021-09-30 16:23] – Urs Graf | embedded_systems:ethercat:start [2024-01-25 14:03] (aktuell) – Urs Graf |
---|
* [[embedded_systems:ethercat:understanding_ethercat:understanding_sync_with_dc | Understanding Synchronisation with DC]] | * [[embedded_systems:ethercat:understanding_ethercat:understanding_sync_with_dc | Understanding Synchronisation with DC]] |
* [[embedded_systems:ethercat:understanding_acontis|The Acontis EtherCAT Stack]] | * [[embedded_systems:ethercat:understanding_acontis|The Acontis EtherCAT Stack]] |
* [[embedded_systems:ethercat:EtherCatInterface | ecmasterlib and EtherCATInterface]] | * [[embedded_systems:ethercat:ecmasterlib | ecmasterlib ]] |
</box> | </box> |
| |
* Acyclic messages, so-called SDOs (service data objects), are not discussed in this documentation. | * Acyclic messages, so-called SDOs (service data objects), are not discussed in this documentation. |
| |
At its lowest level, ethercat uses an ethernet frame to send EtherCAT datagrams containing commands to read or write data, or both ('r', 'w', 'rw'). Each Datagram consists of a header, its data and the **working counter**, which servers as a status indicator or checksum. Depending on the operation, the counter is either not incremented at all (+0), by 1, 2 or 3, if data was read, written or both. (TODO: which is read and which is write?) | At its lowest level, ethercat uses an ethernet frame to send EtherCAT datagrams containing commands to read or write data, or both ('r', 'w', 'rw'). Each Datagram consists of a header, its data and the **working counter**, which servers as a status indicator or checksum. Depending on the operation, the counter is either not incremented at all (+0), by 1, 2 or 3, if data was read, written or both. |
| |
The data that is actually read or written is accessed using a 4Gbit address space using byte.bit addressing. EtherCAT technically bit alignment, though in practice most things seem to be byte aligned. This address space is called the **Process Data Image** or **PDI**. | The data that is actually read or written is accessed using a 4Gbit address space using byte.bit addressing. EtherCAT technically bit alignment, though in practice most things seem to be byte aligned. This address space is called the **Process Data Image** or **PDI**. |
===== Recommended Workflow ===== | ===== Recommended Workflow ===== |
In this example workflow a Linux based master with Acontis stack and EEROS is used. | In this example workflow a Linux based master with Acontis stack and EEROS is used. |
| |
We build our system with Yocto. The necessary recipes and resources can be found in the private repository [[https://gitlab.ost.ch/tech/inf/projects/yocto/meta-ntb-ethercat|meta-ntb-ethercat]] together with information about acquired licenses. This repository must be private as it contains the licensed runtime libraries. | |
| |
- [[embedded_systems:ethercat:choose_linux_master|Choose Linux master]] | - [[embedded_systems:ethercat:choose_linux_master|Choose Linux master]] |
- [[embedded_systems:ethercat:test_and_tune_rt|Test and tune real-time performance of the Linux master]] | - [[embedded_systems:ethercat:test_and_tune_rt|Test and tune real-time performance of the Linux master]] |
- [[embedded_systems:ethercat:create_eni_file|Create ENI file]] | - [[embedded_systems:ethercat:create_eni_file|Create ENI file]] |
- [[embedded_systems:ethercat:install_acontis_stack|Install the Acontis stack on the Linux master]] | - [[embedded_systems:ethercat:install_acontis_stack|Install the Acontis stack on the Linux master (ecmaster)]] |
- [[embedded_systems:ethercat:test_acontis_stack|Test the installed stack]] | - [[embedded_systems:ethercat:test_acontis_stack|Test the installed stack]] |
- Get the [[https://gitlab.ost.ch/tech/inf/public/ecmasterlib|ecmasterlib]], build, and install, see [[embedded_systems:ethercat:ecmasterlib|ecmasterlib]] | - Get the [[https://gitlab.ost.ch/tech/inf/public/ecmasterlib|ecmasterlib]], build, and install, see [[embedded_systems:ethercat:ecmasterlib|ecmasterlib]] |
- Test the examples packed with [[https://gitlab.ost.ch/tech/inf/public/ecmasterlib|ecmasterlib]] | - Test the examples packed with [[https://gitlab.ost.ch/tech/inf/public/ecmasterlib|ecmasterlib]] |
- [[embedded_systems:ethercat:use_with_eeros|Use with EEROS]] | - [[embedded_systems:ethercat:use_with_eeros|Use with EEROS]] |
- Full example with [[embedded_systems:ethercat:teststand|Teststand]]. | |
IMPORTANT [[embedded_systems:ethercat:ethercatinterface|ecmasterlib and EtherCATInterface]] contains two examples (standalone and EEROS application). See [[embedded_systems:ethercat:teststand|Teststand]] how to build them. | |
| |
===== ecmasterlib, EtherCATInterface and EEROS ===== | |
The ''ecmasterlib'' and ''EtherCATInterface'' offer a relative easy way to use EtherCAT with EEROS or in a standalone project. ''ecmasterlib'' offers the low level interface to the [[https://www.acontis.com/en/ecmaster.html | Acontis stack (class A)]]. It is based on the demo application ''EcMasterDemoDC'' from Acontis. ''EtherCATInterfaceElmo'' interface is specific for [[https://www.elmomc.com/product/gold-twitter/ | Gold Twitter]] drives from ElmoMC. Other drives (i.e. Maxon Maxpos 50/5) need a different interface. | |
You may copy and adapt ''EtherCATInterfaceElmo'' for your drive type. | |
| |
[[https://github.com/eeros-project/eeros-framework|EEROS]] > ''[[https://github.com/ntb-ch/etherCATInterfaceElmo | EtherCATInterfaceElmo]]'' > ''[[https://github.com/ntb-ch/ecmasterlib | ecmasterlib & EtherCATInterfaceBase]]'' > [[https://www.acontis.com/de/ecmaster.html | Acontis Stack]] | |
| |
[[embedded_systems:ethercat:EtherCatInterface | Detailed description]] | ===== Workflow with Yocto ===== |
| We build our system with Yocto. The necessary recipes and resources can be found in the private repository [[https://gitlab.ost.ch/tech/inf/projects/yocto/meta-ost-ethercat|meta-ost-ethercat]] together with information about acquired licenses. This repository must be private as it contains the licensed runtime libraries. \\ |
| The recipes therein |
| * build and install the kernel module |
| * install the current version of the ecmaster |
| * build and install the ecmasterlib |
| |
| |
| |
===== Teststand ===== | ===== Teststand ===== |
The "EC-Teststand" (EtherCAT test setup) is a setup with 2 Elmo Drives, 2 motors, powersupply and PC with RT-Linux and the following software: | The "EC-Teststand" (EtherCAT test setup) is a setup with 2 Elmo Drives, 2 motors, powersupply and a Beckhoff PLC CX2020. The Teststand is meant to test e.g. the installation, the software or the created eni-files. |
* Acontis EtherCAT stack | |
* EEROS | |
* ecmasterlib | |
| |
More detailed description [[embedded_systems:ethercat:teststand | here]]. | More detailed description [[embedded_systems:ethercat:teststand | here]]. |