Sterowanie urządzeniami w czasie rzeczywistym przez Ethernet. Część 1
| TechnikaTwórcy protokołów komunikacyjnych wykorzystywanych w sieciach ethernetowych zazwyczaj zakładali, że będą one służyły będzie do wymiany danych pomiędzy komputerami biurowymi. Mając to na uwadze koncentrowali się na maksymalnym uproszczeniu konfiguracji sieci i zwiększeniu liczby urządzeń możliwych do podłączenia przy zachowaniu jak największej prędkości transferu. Tymczasem współczesne aplikacje profesjonalne, w których stosowana jest sieć Ethernet, coraz częściej wymagają spełnienia różnych innych warunków, w tym związanych z komunikacją w czasie rzeczywistym.
Pojęcie pracy w czasie rzeczywistym w kontekście sterowania elementami wykonawczymi takimi jak przykładowo serwonapędy oznacza zapewnienie przewidywalnej, zsynchronizowanej komunikacji urządzeń bez wprowadzania zbyt dużych opóźnień. W artykule opisano możliwość wykorzystania w tego typu aplikacjach sieci Ethernet oraz omówiono wiążące się z tym zagadnienia implementacyjne.
JAKICH CZASÓW POTRZEBUJEMY?
Wymagana precyzja w koordynacji ruchów zależy od aplikacji. Najbardziej zaawansowane zastosowania związane są najczęściej z maszynami do drukowania, pakowania i precyzyjnej obróbki materiałów. Wymagają one wykonywania bardzo dokładnych ruchów, często przy bardzo dużych prędkościach, co realizowane jest przy zastosowaniu szybkich i zazwyczaj złożonych pętli regulacyjnych. Wykorzystywane są przy tym dane odbierane z elementów mierzących napięcia i prądy w celu regulacji prądów zasilania elementów wykonawczych.
Sterowanie typu PWM wymaga reakcji na zmiany na poziomie czasów od 30 μs do 125 μs, nieco większe opóźnienia występować mogą w pętli sterowania prędkością. Czujniki rejestrujące aktualną szybkość z jaką porusza się głowica urządzenia (np. przy obróbce materiałów) pozwalają na reakcje w okresie od około 60 μs do dziesiątych części milisekundy.
W tym czasie regulator prędkości powinien odebrać dane na temat aktualnej szybkości i ewentualnie zmodyfikować wartości na swoim wyjściu w celu dopasowania jej do zadanej przez nadrzędny sterownik pozycji. Wartość wyjściowa regulatora prędkości jest wartością wejściową wspomnianych wcześniej regulatorów prądu, których może być kilka. Każdy regulator może obsługiwać inną z osi, wokół których obraca się element wykonawczy.
Jeszcze wolniej reagować może regulator pozycji, który na swoim wyjściu zadaje prędkość (i kierunek) dla obsługiwanej głowicy elementu wykonawczego. Prędkość ta zależy od aktualnej pozycji i ustalana jest tak, aby w odpowiednim momencie uzyskać położenie zadane przez zewnętrzny sterownik ruchu. W najbardziej zaawansowanych zastosowaniach czas potrzebny na korekcję pozycji nie może przekraczać 250 μs, ale większość aplikacji działa poprawnie gdy okres ten jest nie dłuższy niż 1 ms.
Czas, w jakim sterownik ruchu musi zareagować, nie jest niczym ograniczony poza wymaganiami użytkownika. Im jest on krótszy, tym dokładniejsze i bardziej płynne ruchy może wykonywać głowica urządzenia. Najczęściej planowane ruchy są zdefiniowane z dokładnością do milisekund.
STEROWNIK A ELEMENT WYKONAWCZY
Określone powyżej wymagania czasowe są różne w przypadku poszczególnych poziomów wykonywanego algorytmu. Oznacza to, że kwestia przydatności sieci Ethernet jako medium do sterowania serwomechanizmem zależeć będzie od poziomu, na którym planujemy rozdzielić właściwy element wykonawczy od układu nim sterującego. Im więcej elementów układu sterowania zaimplementowane zostanie w sterowniku, tym zazwyczaj ostrzejsze wymagania nakładane są na medium komunikacyjne, tak aby odpowiednio precyzyjnie wykonywać zaplanowane ruchy.
Warto zauważyć, że oddzielanie jak największej części kontrolera np. od ruchomej głowicy może mieć także wiele zalet. Układy sterujące umieszczone w głowicy zwiększają jej rozmiar i wagę, co powoduje, że może być ona za duża dla niektórych aplikacji, a zastosowane silniki będą musiały mieć nieco większą moc.
Rozdzielenie układu sterującego od wykonawczego może być także sposobem na ograniczenie kosztów poprzez wykorzystanie tego samego systemu sterowania do nadzoru nad grupą elementów ruchomych. Naturalnie wykorzystanie wszystkich elementów wykonawczych na raz wymaga albo zastosowania bardzo wydajnych kontrolerów albo dużej liczby sterowników oraz na dodatek wprowadza wymaganie dużej dostępności i przepustowości zastosowanej sieci komunikacyjnej.
Jednakże, gdy poszczególne urządzenia wykonawcze uruchamiane są wymiennie lub okresowo wystarczy jeden lub tylko kilka kontrolerów do sterowania wieloma ruchomymi głowicami. Przedstawiona powyżej koncepcja podziału na poziomy algorytmu regulacji została zilustrowana na rys. 1.
Jak to działa?Sposób działania: System składa się z zamkniętych podsieci z urządzeniami typu master, które odpowiedzialne są za synchronizację i tworzenie szczelin czasowych. Czas rzeczywisty: Czas cyklu od 0,2 ms; 240 i więcej urządzeń w podsieci. Funkcje: Sterowanie robotami i manipulatorami, systemy napędowe, inne. Sposób działania: Protokół oparty na klasycznych TCP/IP, UDP/IP oraz CIP. Możliwość przesyłania danych konfiguracyjnych, diagnostycznych oraz danych I/O przez zwykły Ethernet. Niedeterministyczne przesyłanie informacji z czasem reakcji na poziomie 10ms. Możliwość dodania synchronizacji (CIPsyng - IEC61588). Szerokość pasma dla TCP/IP 90-100%. Czas rzeczywisty: Komunikacja okresowa (okres 10-100ms). Synchronizacja - około 10μs. Funkcje: Protokół kompatybilny z ControlNet i DeviceNet, które też są oparte na CIP (Common Industrial Protocol). Sterowanie napędami o umiarkowanych czasach cyklu i z synchronizacją. Sposób działania: Stacja master połączona jest z hostami typu slave w sieci o topologii pierścienia, przy czym wykorzystana jest fizyczna warstwa Ethernetu. Pojedynczy pakiet przesyłany jest od stacji master poprzez każdą stację slave, a następnie do punktu wyjściowego. Klasyczne urządzenia TCP/IP wymagają podłączenia do sieci za pośrednictwem bram, co umożliwia dekodowanie pakietów TCP/IP. Czas rzeczywisty: Czasy cyklu od 30 μs. Synchronizacja <1μs. Funkcje: Sterowanie ruchem, układy wejścia/wyjścia i enkodery. |
CYKL STEROWANIA
Po wyborze miejsca, w którym następuje rozdział, należy dokonać oszacowania czasu, jaki będzie potrzebny na poszczególne etapy działania tak zbudowanego systemu. Można założyć, że każdy cykl rozpoczyna się od pomiaru aktualnej pozycji, prędkości lub prądu płynącego przez głowicę i przesłania zmierzonej wartości do sterownika. Następnie sterownik przetwarza uzyskane dane i wysyła komunikat z odpowiedzią. Obliczanie parametrów trwa tym dłużej, im więcej elementów regulatora znajduje się po stronie sterownika.
Wyliczona wartość przesyłana jest następnie bezpośrednio do elementu wykonawczego, który odpowiednio reaguje. Chwilę później cykl się kończy się i następuje kolejny pomiar pozycji, prędkości lub prądu. Czas pomiędzy pomiarami nie może być krótszy niż suma maksymalnych czasów, jakie będą potrzebne do przesłania w obie strony komunikatów oraz wykonania stosownych obliczeń.
Czas ten powinien również uwzględniać reakcję elementu wykonawczego na polecenie, tak aby mierzona i przesyłana wartość np. położenia głowicy była aktualna podczas jej przetwarzania w układzie sterowania. Schemat działania takiego systemu został zaprezentowany na rysunku 2. Jak widać, konieczna jest także odpowiednia synchronizacja zapewniająca spójne działanie całości.
W przypadku, gdy sterownik kontroluje pracę kilku elementów wykonawczych lub choćby jednego urządzenia, na które składa się wiele silników skokowych ustawionych w różnych osiach, ważne jest, aby dane od wszystkich podzespołów docierały do sterownika zanim rozpoczną się obliczenia. Jednocześnie odpowiedzi przesyłane ze sterownika muszą dotrzeć do elementów wykonawczych także w ustalonym czasie.
Algorytm i czasy działania powinny być optymalnie dobrane by zapewnić maksymalną wydajność i dokładność, przy jednoczesnym uwzględnieniu maksymalnych okresów potrzebnych na transmisję i obliczenia. O ile maksymalny czas potrzebny na przeliczenie wartości powinien być łatwy do obliczenia, przy założeniu, że zastosowano sterownik PLC lub komputer z systemem operacyjnym zgodnym z wymaganiami pracy w trybie rzeczywistym, to brak determinizmu czasowego w sieci Ethernet znacząco utrudnia precyzyjne szacowanie opóźnień.
Jak to działa?Sposób działania: Do większości funkcji stosowany jest klasyczny protokół TCP/IP, nie ma przy tym ograniczeń co do ruchu sieciowego tego typu. Do obsługi urządzeń I/O i im podobnych w czasie rzeczywistym (do 1ms) wykorzystuje się adresowanie bezpośrednie oraz priorytety wiadomości. Do obsługi w czasie rzeczywistym poniżej 1ms z synchronizacją <1μs wykorzystuje się sprzętowe przełączniki sieciowe połączone szeregowo lub w pierścień. Wykorzystuje się synchronizację zgodną z IEC 61588. Szerokość pasma protokołu TCP/IP wynosi 50-100%. Czas rzeczywisty: Czas cyklu od 250μs z 30 osiami i 50% udziałem pakietów TCP/IP. Synchronizacja <1μs. Funkcje: Możliwość łatwej integracji z sieciami Profibus oraz Interbus. Implementacja protokołu bezpieczeństwa PROFIsafe. Sposób działania: Wbudowany w każdym urządzeniu systemu przełącznik sieciowy pozwala na utworzenie topologii pierścienia lub łańcucha. Urządzenia TCP/IP mogą być podłączone do ostatniego przełącznika układu łańcuchowego. Czas rzeczywisty: Czas cyklu od 31μs z ośmioma osiami. Synchronizacja <1μs. Funkcje: Sterowanie napędami i ruchem. Możliwość podłączenia urzadzeń I/O. Wykorzystanie TCP/IP na potrzeby parametryzacji i dodatkowej komunikacji. |
CZY MOŻNA MIEĆ PEWNOŚĆ?
Jeżeli sieć jest deterministyczna, oznacza to, że możliwe jest określenie czasu potrzebnego na przesłanie danych i kolejności pakietów docierających do odbiorcy. Bardzo wiele sieci przemysłowych to rozwiązania w pełni deterministyczne, dzięki czemu nie ma zazwyczaj problemów w tym zakresie. Gorzej jest z sieciami typu Ethernet, które są z założenia tworzone w oparciu o wiele równoważnych sobie komputerów, z których każdy może w dowolnej chwili wysłać pakiet danych.
Ze względu na prostą konfigurację, poszczególne komputery podłączone do sieci nie są niczym wyróżnione. Oznacza to, że w przypadku wystąpienia kolizji - czyli w sytuacji, gdy przynajmniej dwa urządzenia chcą nadać pakiet w tej samej sieci w danym momencie, przeprowadzony zostanie arbitraż. Dokonywany jest on zgodnie z algorytmami wielodostępu ze śledzeniem częstotliwości nośnej CSMA/CD (Carrier Sense Multiple Access / with Collision Detect).
Kolizje wykrywane są poprzez monitorowanie przez urządzenie własnej transmisji w kanale transmisyjnym i porównywanie jej z aktualnie nadawanym komunikatem. Jeżeli jest on zgodny, oznacza to, że transmisja odbyła się poprawnie. W przypadku niezgodności stanów logicznych urządzenie rejestruje, że nastąpiła kolizja i wstrzymuje nadawanie oraz wysyła informację o kolizji (sygnał zagłuszania), informując pozostałe urządzenia o niepoprawności komunikatu.
Następnie urządzenia, które weszły w kolizje, czekają przez losowo wybrany czas i ponownie próbują dokonać transmisji. Co więcej, typowe implementacje zakładają eksponencjalny wzrost losowanego czasu oczekiwania w przypadku powtarzającego się występowania kolizji na łączach. Oznacza to, że w przypadku dużego ruchu na łączu efektywny transfer może znacząco obniżyć się, ze względu na ciągłe oczekiwanie na wolne łącze. Ponadto maksymalny czas przesyłania pakietu w sieci jest praktycznie nieograniczony i zależy dosyć losowo od aktualnego natężenia ruchu.
Marcin Karbowniczek,
Zbigniew Piątek