Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
embedded_systems:ethercat:start [2021-09-30 14:41] Urs Grafembedded_systems:ethercat:start [2024-01-25 14:03] (aktuell) Urs Graf
Zeile 13: Zeile 13:
     * [[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>
  
Zeile 35: Zeile 35:
   * 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**.
-Object living in that space are often referred to as **Process Data Objects** or **PDO**s, though ot's not entirely clear, whether that strictly refers to PDOs in the sense of [[ ..:protocols:canopen:start | CANOpen ]] or is to be understood as a separate term.+Object living in that space are often referred to as **Process Data Objects** or **PDO**s, though it's not entirely clear, whether that strictly refers to PDOs in the sense of [[ ..:protocols:canopen:start | CANOpen ]] or is to be understood as a separate term.
  
-{{:embedded_systems:ethercat:ethercat.png|}}+{{:embedded_systems:ethercat:ethercat.png?600|}}
  
 Each Slave Device can be configured to output some of its PDOs on the EtherCAT bus. This is done through the ENI file. Each Slave Device can be configured to output some of its PDOs on the EtherCAT bus. This is done through the ENI file.
Zeile 62: Zeile 62:
 ===== 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]]
Zeile 69: Zeile 67:
   - [[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]]
-  - [[http://wiki.eeros.org/getting_started/install|Download and install]] [[http://eeros.org/|EEROS]] +  - Test the examples packed with [[https://gitlab.ost.ch/tech/inf/public/ecmasterlib|ecmasterlib]] 
-  - Full example with NTB [[embedded_systems:ethercat:teststand|Teststand]].  +  - [[embedded_systems:ethercat:use_with_eeros|Use with EEROS]]
-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 
  
  
Zeile 92: Zeile 88:
  
 ===== 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 +
-  * EtherCATInterfaceElmo including test application+
  
 More detailed description [[embedded_systems:ethercat:teststand | here]]. More detailed description [[embedded_systems:ethercat:teststand | here]].