EtherCAT-isäntä Linuxissa

Tässä työssä tutkitaan EtherCAT-isäntätoteutuksia Linuxille, kokeillaan niistä muutamia ja LinuxCNC:n EtherCAT-isäntärajapintaan toteutetaan pieni Python-skripti, joka säätelee yhden EtherCAT-väylässä olevan orjan ledien arvoja. EtherCAT on suhteellisen laaja ja monimutkainen aihe, joten työssä ei...

Full description

Bibliographic Details
Main Author: Korhonen, H. (Heikki)
Format: Others
Language:Finnish
Published: University of Oulu 2016
Online Access:http://urn.fi/URN:NBN:fi:oulu-201612103256
http://nbn-resolving.de/urn:nbn:fi:oulu-201612103256
Description
Summary:Tässä työssä tutkitaan EtherCAT-isäntätoteutuksia Linuxille, kokeillaan niistä muutamia ja LinuxCNC:n EtherCAT-isäntärajapintaan toteutetaan pieni Python-skripti, joka säätelee yhden EtherCAT-väylässä olevan orjan ledien arvoja. EtherCAT on suhteellisen laaja ja monimutkainen aihe, joten työssä ei käydä yksityiskohtaisesti kaikkia asioita läpi, vaan työn tarkoituksena on antaa perusperiaate siitä, miten Ethercat toimii ja millaisia toteutuksia siitä löytyy internetistä. EtherCAT on Beckhoff Automationin toteuttama reaaliaikainen Ethernet -protokolla. Protokolla julkaistiin IEC:n standardina IEC61158 ja se soveltuu automaatioteknologioiden ohjelmiston sekä laitteiston reaaliaikaisiin vaatimuksiin. Sitä voidaan käyttää myös testaukseen ja mittaamiseen. Lähtökohtina kehityksen aikana olivat lyhyet kiertoajat (alle 100μs), matalat viiveen vaihtelut (alle 1μs), tarkka synkronointi ja matalat laitteiston kokonaiskulut. Työssä arvioitiin muutamia eri internetistä löytyviä EtherCAT-isäntätoteutuksia. Arvioitavina toteutuksina ovat CODESYS Control for Raspberry Pi, IgH EtherCAT Master for Linux, EtherCAT- opetuskirjasto, LinuxCNC Ethercat Master ja LinuxCNC HAL. Kriteereinä ovat toteutuksen kokonaisuus (sis. Linux ja RT-kernel), dokumentointi ja käytettävyys. Näiden kriteereiden perusteella päädyttiin seuraavaan paremmuusjärjestykseen: LinuxCNC HAL, LinuxCNC Ethercat Master, IgH EtherCAT Master for Linux, EtherCAT- opetuskirjasto ja CODESYS Control for Raspberry Pi. === In this work different EtherCAT Master Linux implementations will be studied, few of them will be used. LinuxCNC implementation will be used with Python script implemented in this work. The script adjusts leds of one slave in the EtherCAT bus. EtherCAT is quite large and complex subject, so this work does not go deep in EtherCAT features. This work’s will give a basic information of how EtherCAT works and what kind of implementations it is found on the internet of EtherCAT. EtherCAT is a real-time Industrial Ethernet technology originally developed by Beckhoff Automation. The EtherCAT protocol which is disclosed in the IEC standard IEC61158 is suitable for hard and soft real-time requirements in automation technology. It is also suitable for testing, measurement and many other applications. During the development of EtherCAT, main focus was on short cycle times, low jitter for accurate synchronization and low hardware costs. In this work few different EtherCAT Master implementations found from Internet were evaluated. Those implementations are CODESYS Control for Raspberry Pi, IgH EtherCAT Master for Linux, Simple Open EtherCAT Master, LinuxCNC EtherCAT Master and LinuxCNC HAL. Criterions for evaluation are implementation in big picture (incl. Linux and RT-kernel), documentation and usability. With those criterions implementations set to following rank order: LinuxCNC HAL, LinuxCNC EtherCAT Master, IgH EtherCAT Master for Linux, Simple Open EtherCAT Master and CODESYS Control for Raspberry Pi.