wersja mobilna
Online: 564 Sobota, 2016.12.03

Technika

Sieci przemysłowe w standardzie EtherCat

środa, 20 czerwca 2012 09:37

EtherCAT został opracowany w 2003 roku przez Beckhoff Automation, niemiecką firmę z branży automatyki przemysłowej. Następnie powołano organizację EtherCAT Technology Group (ETG), która zajęła się standaryzacją tego protokołu. Stowarzyszenie to obecnie zajmuje się też organizowaniem szkoleń oraz popularyzacją tego standardu. EtherCAT w zakresie warstwy fizycznej bazuje na Ethernecie. Dodatkowo zaimplementowano w nim mechanizmy w zakresie organizacji transmisji danych pozwalające na ominięcie głównych ograniczeń sieci Ethernet. Dzięki temu EtherCAT jest obecnie jednym z popularniejszych protokołów komunikacyjnych w przemyśle.

Do najważniejszych zalet Ethernetu, istotnych również w zastosowaniach przemysłowych, zalicza się: dużą prędkość transmisji i zasięg pozwalający na organizację sieci z węzłów rozproszonych na terenie o znacznej powierzchni (jest to istotne ze względu na możliwość realizacji na przykład sieci czujników), możliwość podłączenia wielu urządzeń oraz łatwość i niskie koszty budowy sieci dzięki dostępności odpowiednich urządzeń sieciowych, na przykład przełączników i kart sieciowych.

Te ostatnie stają się obecnie nieodłącznym elementem wyposażenia urządzeń, także przemysłowych i to nie tylko komputerów, ale również m.in. czujników, sterowników, paneli operatorskich oraz napędów. Z kilku powodów jednak w sieciach przemysłowych korzysta się z Ethernetu tylko w ramach warstwy fizycznej, w zakresie mechanizmów przesyłania danych wprowadzając odpowiednie modyfikacje tego standardu.

Determinizm, przepustowość

Rys. 1. W sieciach EtherCAT ramka wysłana przez węzeł typu master przechodzi kolejno przez wszystkie węzły typu slave, które przetwarzają ją w locie

Głównym problemem jest to, że transmisja w sieci Ethernet ma charakter niedeterministyczny, co uniemożliwia realizację komunikacji w czasie rzeczywistym. W sieciach przemysłowych ma to kluczowe znaczenie. Powinny one bowiem umożliwiać natychmiastowy przesył danych na przykład do elementu wykonawczego z systemu sterowania lub do systemu automatyki z systemu pomiarowego.

Wymagana jest również często synchronizacja wielu urządzeń. Opóźnienia w obu tych wypadkach są niedopuszczalne. Drugą istotną wadą wynikającą z przystosowania do przesyłania dużych pakietów danych jest nieefektywność Ethernetu w zakresie transmisji małych ilości informacji, na przykład wyników pomiarów lub sygnałów sterujących.

Wynika to stąd, że zwykle w takim wypadku obowiązkowe dane kontrolne przesyłane w ramce zajmują więcej miejsca niż główna informacja. Negatywnie wpływa to na szybkość transmisji oraz przepustowość, zwłaszcza gdy do każdego z urządzeń w sieci kierowana jest oddzielna ramka.

Najkrótsza ramka ethernetowa ma rozmiar 84 bajtów. Jeżeli przykładowo urządzenie okresowo przesyła 4 bajty informacji, na przykład informację o aktualnych ustawieniach, i w odpowiedzi otrzymuje również 4 bajty danych, na przykład zestaw komend i informacji kontrolnych, przy założeniu nieskończenie krótkiego czas odpowiedzi węzła, użyteczna przepustowość wyniesie zaledwie 4/84=4,8%. Jeżeli średni czas odpowiedzi będzie dłuższy, na przykład wyniesie 10 μs, to użyteczna przepustowość spadnie do zaledwie 1,9%.

Przetwarzanie w locie

Rys. 2. Informacje w sieciach EtherCAT są przesyłane bezpośrednio w ramce ethernetowej bez zmiany jej podstawowej struktury

W celu zwiększenia przepustowości oraz zapewnienia determinizmu stosuje się różne rozwiązania, przykładowo zastępując procedury dostępu do medium zaimplementowane w protokole CSMA/CD m.in mechanizmem odpytywania lub wykorzystując specjalne switche, które transmitują pakiety ethernetowe w ściśle kontrolowany sposób.

Jednak, bez względu na zastosowaną metodę, jeżeli ramki są oddzielnie rozsyłane do oraz od poszczególnych urządzeń, działania te nie są w pełni skuteczne. Dlatego na ten właśnie aspekt transmisji danych w sieci Ethernet położono szczególny nacisk, projektując standard EtherCAT.

Zasadnicza zmiana, jaką wprowadzono w tej specyfikacji, polega na tym, że pojedyncza ramka jest wykorzystywana do przenoszenia informacji nie do jednego, konkretnego węzła sieci typu slave, ale do wielu różnych węzłów jednocześnie. Ramka taka wysłana przez węzeł typu master przechodzi kolejno przez wszystkie węzły typu slave, które przetwarzają ją w locie.

Polega to na tym, że po odebraniu ramki węzeł najpierw sprawdza, czy znajdują się w niej informacje dla niego przeznaczone. Jeżeli tak jest, odczytuje odpowiedni fragment danych oraz uzupełnia ramkę o informacje potwierdzające odbiór lub inne, które powinny wrócić do punktu wyjścia. Ramka jest następnie przesyłana dalej (rys. 1).

Taka organizacja transmisji danych pozwala znacząco ograniczyć opóźnienia, które w tym wypadku są rzędu kilku mikrosekund, przy jednoczesnym efektywniejszym wykorzystaniu ramki ethernetowej. W rezultacie użyteczna przepustowość sieci wzrasta do 90%. Informacje w sieciach EtherCAT są przesyłane bezpośrednio w ramce ethernetowej bez zmiany jej podstawowej struktury.

Rys. 3. Budowa telegramu EtherCAT

Jeżeli węzeł typu master i węzeł typu slave znajdują się w tej samej podsieci, następuje jedynie zamiana zawartości pola IP (rys. 2). Dane między węzłami master i slave są wymieniane w formie tzw. PDO (process data objects). Każdy PDO zawiera adres konkretnego węzła typu slave lub adresy kilku takich węzłów.

W połączeniu z danymi (kontrolnymi lub na przykład rozkazem dla elementu wykonawczego) oraz licznikiem, który jest stosowany w celu uzyskania potwierdzenia odbioru (jest on aktualizowany po przetworzeniu danych przez węzeł typu slave), informacja o adresie tworzy datagram. Pojedyncza ramka w ten sposób zorganizowana może zawierać wiele datagramów stanowiących telegram.

Oprócz danych telegram ma też nagłówek, którego pierwszy bit zawiera informację o długości telegramu. Zależy ona od długości wiadomości oraz liczby węzłów, do których są one adresowane (rys. 3).

Transmisja i synchronizacja w sieciach EtherCAT

Rys. 4. Wiele tanich i prostych urządzeń z interfejsem EtherCAT, takich jak moduły we/wy cyfrowych, można zbudować z wykorzystaniem pojedynczego układu FPGA lub ASIC

Dane w sieciach EtherCAT mogą być przesyłane nie tylko w ramach tej samej podsieci, ale również między różnymi sieciami przez protokół UDP. Oprócz wymiany informacji między węzłami typu master oraz slave możliwa jest również komunikacja między węzłami typu master (na przykład sterownikami) oraz między węzłami typu slave.

W tym drugim wypadku są dwie możliwości. Urządzenie może się komunikować z następnym węzłem w jednym cyklu, ta metoda jest jednak zależna od topologii sieci. W przypadku komunikacji między węzłami dowolnie rozmieszczonymi dane są przekazywane za pośrednictwem węzła typu master, co zajmuje dwa cykle. Nowatorskim rozwiązaniem wprowadzonym w protokole EtherCAT jest sposób, w jaki są synchronizowane wewnętrzne zegary węzłów sieci.

Polega to na wykorzystaniu znaczników czasu, na podstawie których węzeł typu master oblicza opóźnienia propagacji dla poszczególnych węzłów slave. Zegar w każdym węźle slave jest regulowany w oparciu o te obliczenia, w efekcie czego te zegary są zsynchronizowane z dokładnością do 1 mikrosekundy.

Węzły sieci EtherCAT

Rys. 5. W przypadku węzłów EtherCAT, w których wymagana jest dodatkowa moc obliczeniowa do układu ASIC/FPGA EtherCAT dołączany jest zewnętrzny procesor

W związku z tym, że EtherCAT opiera się na warstwie fizycznej specyfikacji IEEE 802, do budowy sieci w tym standardzie nie są wymagane żadne dodatkowe urządzenia sieciowe, na przykład zewnętrzne switche. W zamian, ze względu na opisany sposób transmisji ramki przez wszystkie węzły, w praktyce każdy z nich musi mieć jednak wbudowany switch w postaci dwóch portów RJ45.

Przez jeden z nich urządzenie łączy się z węzłem je poprzedzającym, a przez drugi z węzłem kolejnym. Jeżeli dane urządzenie nie wykryje kolejnych węzłów sieci automatycznie, jako ostatni węzeł zwraca ramkę do węzła typu master. Dzięki temu sieci EtherCAT mogą pracować w różnych topologiach, w tym gwiazdy, linii i drzewa.

Każdy węzeł typu slave ma też jednostkę zarządzania pamięcią FMMU (fieldbus memory management unit), która odwzorowuje adres logiczny na adres fizyczny na podstawie tabeli. Jest ona niezbędna, by obsłużyć różne schematy adresowania: fizycznego, logicznego, grupowego oraz rozgłoszeniowego, które zaimplementowano w standardzie EtherCAT w celu obsługi różnych typów komunikacji.

Rys. 6. Jednym z rozwiązań jest wykorzystanie układu FPGA z wbudowanym procesorem

Protokół komunikacyjny w sieciach przemysłowych powinien być bowiem dostosowany do specyfiki rozmaitych rodzajów transmisji. Można je podzielić ogólnie na transmisję okresową i nieokresową. Przykładowo dane pomiarowe o charakterze niekrytycznym mogą być wysyłane w różnych momentach i w różnych ilościach przez poszczególne węzły sieci.

Podobnie nieokresowo, w zależności od sytuacji, mogą być też transmitowane dane o specjalnym znaczeniu, na przykład jeżeli w reakcji na jakieś zdarzenie transmisja jest inicjowana przez sterownik. Wiele informacji może być też przesyłanych okresowo i jednocześnie do wszystkich urządzeń w sieci.

Jako medium komunikacyjne w sieciach EtherCAT można wykorzystać kable miedziane (100Base-TX), światłowody (100Base-FX) lub łącze E-bus w technologii LVDS. Te ostatnie wprowadzono ze względu na to, że transmisja w sieciach EtherCAT często jest realizowana na krótkich dystansach - E-bus sprawdza się w realizacji łączności na odległość do około 10 m.

Medium komunikacyjne w obrębie sieci EtherCAT może być zmieniane dowolnie, w zależności od potrzeb. Przykładowo w obrębie szafy sterowniczej można wykorzystać łącze E-bus, między szafą sterowniczą i modułami maszyn standardowy kabel miedziany do odległości 100 m, a w przypadku większych odległości lub w razie możliwości wystąpienia zaburzeń elektromagnetycznych najlepiej zastosować kabel światłowodowy.

Realizacja węzłów EtherCAT

Rys. 7. Częścią mikrokontrolerów Sitara AM335x firmy Texas Instruments jest programowalna jednostka czasu rzeczywistego (programmable real-time unit, PRU), w której zaimplementowano warstwę MAC protokołu EtherCAT

Wiele tanich i prostych urządzeń z interfejsem EtherCAT, takich jak moduły wejść/wyjść cyfrowych, można zrealizować z wykorzystaniem pojedynczego układu FPGA lub ASIC. Uproszczona wersja takiej architektury jest przedstawiona na rysunku 4. Węzły takie nie wymagają oprogramowania, a cała funkcjonalność jest zaimplementowana w sprzęcie.

W przypadku węzłów EtherCAT, w których potrzebna jest dodatkowa moc obliczeniowa, zewnętrzny procesor, często z pamięcią Flash, jest dołączany do układu ASIC/FPGA EtherCAT w celu obsługi przetwarzania na poziomie aplikacji (rys. 5). Koszt takiej architektury jest wyższy niż w wypadku modułu we/wy cyfrowych, ale konstruktor ma większą elastyczność w zakresie doboru procesora, który będzie odpowiedni do potrzeb i budżetu projektu.

Jeszcze innym rozwiązaniem jest wykorzystanie układu FPGA z wbudowanym procesorem (rys. 6). Wspólną cechą przedstawionych konstrukcji jest to, że przeważnie wymagają wykorzystania dwóch układów. Z tego powodu zajmują więcej miejsca oraz więcej kosztują. Alternatywą jest zastosowanie komponentów jednoukładowych, dzięki czemu można zmniejszyć koszt konstrukcji nawet o 30%.

Przykładem są mikrokontrolery z rdzeniem ARM Cortex-A8 z rodziny Sitara AM335x firmy Texas Instruments (rys. 7). Ich kluczową częścią jest programowalna jednostka czasu rzeczywistego (programmable real-time unit, PRU).

W PRU zaimplementowano warstwę MAC standardu EtherCAT, dzięki czemu jednostka ta odpowiada za przetwarzania telegramów w locie, dekodowanie adresów oraz wykonywanie komend. W związku z tym, że cała funkcjonalność protokołu EtherCAT jest zawarta w PRU, procesor może być wykorzystywany do realizacji bardziej złożonych zadań.

Monika Jaworowska