Do Projektu iAutomatyka dołączyli:

Publikacja zgłoszona do 🎁 Konkursu iAutomatyka
https://iautomatyka.pl/wp-content/uploads/2020/08/main-6.png

Raspberry Pi jako PLC. Komunikacja maliny z modułami EtherCAT


Na pewno większość z was słyszała o Raspberry Pi, które bije rekordy popularności. Malina, bo tak potocznie nazywana jest ta platforma, powstała w celach edukacyjnych i została zaprojektowana jako tani, programowalny komputer dla programistów i majsterkowiczów. Wraz z kolejnymi iteracjami projektu PRi zaczęło zyskiwać na mocy obliczeniowej, co spowodowało, że urządzenie jest w stanie z powodzeniem funkcjonować jako komputer osobisty, a jego parametry przewyższają często parametry sterowników przemysłowych.  Co prawda ciężko sobie wyobrazić aplikację przemysłową opartą o to urządzanie, ale bez problemu można je wykorzystać w celach edukacyjnych. Jakiś czas temu na portalu iAutomatyka pojawił się artykuł informujący o możliwości programowania Raspberry za pomocą środowiska CoDeSYS V3.  Korzystając z okazji posiadania modułów EtherCAT firmy Beckhoff postanowiłem sprawdzić, czy uda mi się skomunikować je z maliną i opisać krok po kroku jak rozpocząć zabawę z RPi i CoDeSYS.


Stanowisko testowe

Zacznę od omówienia mojego stanowiska testowego. Nasz główny bohater – Raspberry Pi w wersji 4B z zainstalowanym systemem operacyjnym Raspberry Pi OS połączyłem za pomocą przewodu Ethernet z modułem EtherCAT EK1100 a do niego podpiąłem następujące karty rozszerzeń:

  • wejścia cyfrowe EL1004 i EL1008
  • 2x wyjścia cyfrowe EL2008                   
  • moduł wyjść analogowych 0-20mA EL4012

Oprogramowanie

Tak jak wspomniałem we wstępie, do programowania układu wykorzystywałem oprogramowanie CoDeSys. Dla tych, którzy nie wiedzą, CoDeSys jest środowiskiem programowania PLC i jest używany przez wiele firm automatyki przemysłowej, takich jak Bosch, Beckhoff, Festo, Eaton, Wago i wiele innych. Umożliwia ono programowanie sterowników przy użyciu graficznych i tekstowych języków programowania spełniających normę IEC 61131-3. Najnowszą wersję oprogramowania można pobrać po założeniu konta ze strony https://store.codesys.com/. Aby możliwe było połączenie Raspberry Pi ze środowiskiem CoDeSys niezbędne jest dodanie do oprogramowania pakietu bibliotek CODESYS Control for Raspberry Pi SL, które pozwolą na uruchomienie środowiska wykonawczego tzw. System Runtime na naszej malinie. Biblioteki pobrałem również ze sklepu CoDeSys. Na dzień dzisiejszy sklep podaje za nią cenę 50 euro, jednak tylko wtedy, gdy chcemy uruchomić program na RPi przez ponad 2 godziny. W przeciwnym razie pakiet jest całkowicie darmowy i wystarczy ponownie wgrać program na nasze urządzenie.

Po pobraniu pakiet musi zostać zainstalowany w naszym środowisku. W tym celu uruchamiamy CoDeSys, a następnie z paska menu wybieramy Tools -> Package Manager…. Otworzy się okno z zainstalowanymi przez nas pakietami. Odnajdujemy przycisk Install… i wyszukujemy pobrany pakiet CODESYS Control for Raspberry Pi SL. Jeśli instalacja przebiegła pomyślnie to do listy zostanie dodana nasza biblioteka.

W tym momencie posiadamy wszystkie potrzebne narzędzia do połączenia Raspberry Pi z CoDeSys V3. Niestety oprogramowanie CoDeSys samo w sobie nie ma zaimplementowanych plików konfiguracyjnych dla modułów każdego z producentów, dlatego po utworzeniu nowego projektu nie byłbym w stanie nawiązać komunikacji z wykorzystywanymi modułami firmy Beckhoff. Jest to zrozumiałe ze względu na ilość dostępnych komponentów na rynku, gdzie do każdego z nich potrzebny jest osobny plik konfiguracyjny. Na szczęście w prosty sposób można uzupełnić brakujące pliki. W przypadku modułów firmy Beckhoff wystarczy pobrać ze strony producenta pakiet EtherCAT ESI Device Description (XML) dostępny w zakładce XML Device Description po odnalezieniu któregoś z wykorzystywanych modułów.

Aby zaimportować pliki konfiguracyjne do CoDeSys, wybieramy z paska menu Tools -> Device Respository…, następnie naciskamy na Install… i odnajdujemy interesujące nas moduły. Z tak przygotowanym oprogramowaniem możemy przystąpić do dalszej pracy.


Raspberry Pi + CoDeSys

Przyszła pora na utworzenie nowego projektu. Po wybraniu New Project… -> Standar project program zapyta o urządzenie, dla którego ma zostać przygotowane środowisko. Należy wybrać CODESYS Control for Raspberry Pi SL i zatwierdzić OK.

W tym momencie ważnym krokiem jest wgranie konfiguracji Runtime na malinę. Bez tego RPi nie będzie widoczne jako podłączone urządzenie.  Przechodzimy do Tools -> Update Raspberry Pi, następnie uzupełniamy informacje odnośnie logowania do Raspberry, podajemy adres IP urządzenia i naciskamy install. Po poprawnym zainstalowaniu pozostaje nam tylko uruchomienie konfiguracji za pomocą przycisku Start.

Przechodzimy teraz do drzewka projektu, otwieramy węzeł Device, a następnie odnajdujemy i klikamy na Scan Network. Spowoduje to otwarcie okna dialogowego, w którym powinno być widoczne nasze urządzenie. Wybieramy je i zatwierdzamy OK.

Raspberry Pi + EtherCAT

W momencie kiedy skonfigurowaliśmy naszą malinę i udało nam się z nią połączyć, przyszła pora na skomunikowanie jej z wcześniej wspomnianymi modułami EtherCAT. W tym celu musimy dodać urządzenie EtherCAT Master do naszego projektu. Dokonujemy tego poprzez naciśnięcie prawym przyciskiem myszy na węzeł Device, a następnie z menu kontekstowego wybieramy Add Device…. W nowo otwartym oknie dialogowym przechodzimy do Fieldbuses -> EtherCAT -> Master -> EtherCAT Master i zatwierdzamy poprzez Add Device.

Musimy teraz zdefiniować, który z portów sieciowych maliny, posłuży jako port komunikacyjny dla protokołu EtherCAT. Przechodzimy do dodanego przed chwilą urządzenia EtherCAT Master. W zakładce General klikamy na Browse… a następnie z okna dialogowego wybieramy port ethernetowy, domyślnie powinien posiadać nazwę eth0 i zatwierdzamy poprzez przycisk OK.

Tak przygotowany projekt wgrywamy do Raspberry za pomocą komendy Login lub skrótu klawiszowego Alt+F8. Po przejściu w tryb online możemy przeskanować naszą sieć w celu wykrycia podłączonych do niej modułów. Naciskamy prawym przyciskiem myszy na EtherCAT Master następnie z menu kontekstowego wybieramy Scan For Devices…. W nowo otwartym oknie powinna wyświetlić się lista wszystkich dostępnych modułów. Przypisujmy ja do naszej konfiguracji za pomocą przycisku Copy All Devices to Project.

Przechodzimy teraz w tryb offline, a następnie ponownie wgrywamy projekt do RPi. Jeśli wszystko poszło zgodnie z planem to po uruchomieniu trybu Run sterownika, obok listy dodanych przez nas modułów powinny być widoczne zielone strzałki. Oznacza to, że udało nam się nawiązać komunikację z podłączonymi do Raspberry Pi modułami EtherCAT.

Ponieważ instruktaż ten skupia się jedynie na aspektach konfiguracji sprzętowej, nie będę poruszał tutaj zagadnień związanych z programowaniem w środowisku CODESYS. Każdy z zainteresowanych może teraz na własną rękę przetestować możliwości, jakie daje taka konfiguracja. Na zakończenie załączam krótkie nagranie pokazujące krok po kroku opisane przeze mnie czynności.

Podsumowanie

Czy Raspberry Pi może działać jako urządzenie master w sieci EtherCAT? Odpowiedź brzmi tak, co zostało przedstawione w tym artykule. Skonfigurowane Raspberry jest traktowane przez CODESYS jak każdy inny sterownik PLC i oddaje do dyspozycji użytkownika możliwość implementacji przemysłowych interfejsów komunikacyjnych. Osobiście takie rozwiązanie traktuję jako ciekawostkę w świece automatyki, która pokazuje, że nowoczesnym sterownikom coraz bliżej do komputerów. Należy jednak pamiętać, że przedstawiona konfiguracja może posłużyć jedynie do celów edukacyjnych, w końcu po to właśnie powstała malina, dlatego polecam takie rozwiązanie każdemu, kto chce rozpocząć swoją przygodę ze sterownikami PLC.


Ocena artykułu zgłoszonego do Konkursu iAutomatyka 4.0 pisz artykuły, zdobywaj punkty, wymieniaj je na nagrody.

Kryterium 1 2 3 4 5 6 7 8 9 10
Punkty (0-2) 2 1 2 2 2 1 2 1 2 1
Suma zdobytych punktów: 16


Utworzono: / Kategoria: , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!



PRZECZYTAJ RÓWNIEŻ



NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



POLECANE FIRMY I PRODUKTY