Jak działa konwerter protokołów?
Dlaczego właściwie istnieją konwertery protokołów? Skąd się bierze na nie zapotrzebowanie? Jak wybrać właściwy model? Zapraszam do lektury.
Co to jest konwerter protokołów?
Czym właściwie jest konwerter protokołów? Jaka jest jego funkcja? W najprostszych słowach jest to tłumacz pomiędzy różnymi protokołami, pozwala na „dogadanie się” urządzeń używających różnych protokołów. Ale właściwie dlaczego jest zapotrzebowanie na takie urządzenia? Aktualnie w użyciu jest kilkadziesiąt przemysłowych protokołów komunikacyjnych. Powstanie konwerterów protokołów zrodziło się właśnie z potrzeby połączenia różnych sieci i magistral komunikacyjnych. Dzięki nim możliwa jest łatwa modernizacja i uaktualnienie sieci przemysłowych, np. w kierunku Ethernetu przemysłowego.
Udział rynku poszczególnych standardów i protokołów przemysłowych w roku 2019. źródło: HMS.
Ale skąd taka różnorodność protokołów?
Odpowiedź na to pytanie jest dość intuicyjna, każdy większy producent urządzeń wyposażonych w interfejsy komunikacyjne ma „swój” protokół, który stosuje w swoich urządzeniach i stara się przekonać świat, że właśnie on jest najlepszy. Końcowa popularność danego protokołu zależy od wielkości sprzedaży wspierających go urządzeń, ale też od lokalizacji producenta. Np. w automatyce przemysłowej w Europie znacznie częściej spotkamy Profibus i Profinet, a w USA w tej samej branży będzie to EtherNet/IP. Występuje tu nieco podobne zjawisko jak przy konkurencji pomiędzy językami naturalnymi.
Kolejnym faktem, z którego wynika różnorodność protokołów i standardów to ich długowieczność, w przemyśle niektóre technologie żyją znacznie dłużej niż w świecie elektroniki konsumenckiej. Np. standardy szeregowe takie jak RS-232/422/485 nadal można spotkać w wielu urządzeniach, co sprawia, że często zachodzi potrzeba przejścia pomiędzy protokołem opartym na Ethernecie na protokół pracujący na RS-485.
A czym się różni konwerter protokołu od serwera portu szeregowego?
Opisywaliśmy na łamach bloga tę subtelną różnicę pomiędzy takimi urządzeniami firmy Moxa, czyli pomiędzy Nport a MGate. Poniżej link do wpisu:
Konwersja protokołu Modbus i konwertery firmy Moxa
Jaka działają konwertery protokołów
Konwertery protokołów Modbus
Tryb transparentny
Konwertery protokołów w zależności od konwersji jaką wykonują działają nieco inaczej. Np. konwersja z protokołu Modbus RTU na Modbus TCP jest łatwa do zrealizowania i w najprostszej formie działa transparentnie. Oznacza to, że konwerter przerzuca dane z jednego interfejsu na drugi dokonując tylko minimalnej modyfikacji, w przypadku Modbus usuwając sumę kontrolną lub ją dodając. W przypadku takich konwerterów firmy Moxa, jedyne co trzeba ustawić to zakres ID, w którym mieszczą się rzeczywiste urządzenia podrzędne (slave’y), a także offset, czyli przesunięcie zakresu ID. Przesunięcie to jest przydatne jeśli konwerter ma odczytywać 2 slave’y, które mają takie samo ID, parametr offset niezerowy tworzy 2 przestrzeń adresową (wirtualną), dzięki czemu rzeczywiste ID urządzeń do niego podłączonych mogą się dublować.
Routing zapytań Modbus realizowany na podstawie źródłowego ID
Tabela opisująca mechanizm przesunięcia ID
Tryb agenta
Tzw. tryb agenta to tryb który działa nieco inaczej niż transparentna konwersja. Rolę takiego agenta pełni właśnie konwerter protokołu, w zależności od rodzaju bramki, może ona uczyć się zapytań Modbus i potem samodzielnie wysyłać zapytania których się nauczyła. Alternatywnie można też ręcznie dodać zapytania definiując wszystkie niezbędne parametry takie jaki, kod funkcji, ID slave’ów, adres rejestru, ilość rejestrów oraz interwał wysyłania zapytań. Co daje tryb agenta? Przede wszystkim krótszy czas uzyskania informacji od końcowego urządzenia, ponieważ bramka cyklicznie odpytuje urządzenia końcowe, dzięki czemu stan danych rejestrów jest już w jej pamięci, i nie trzeba czekać dłużej.
Schemat działania trybu agenta
Konwersja mniej spokrewnionych protokołów
Jeśli protokoły są mniej podobne niż Modbus TCP i Modbus RTU, czyli tak jak w większości sytuacji, to wtedy konwertery protokołów używają mechanizmu wymiany danych za pośrednictwem wewnętrznej pamięci. Polega to na tym że niezależnie od siebie konfiguruje się parametry komunikacyjne dla strony „A” i „B”, a jedyna część wspólna to właśnie miejsce zapisu/odczytu danych – w pamięci wewnętrznej dwukierunkowej. To właśnie w tej pamięci następuje transfer danych pomiędzy protokołami. Pamięć ta jest podzielna na 2 części, „Input” i „Output”, co oznacza kierunek przepływu danych, poniżej grafika reprezentująca:
Wymiana danych poprzez wewnętrzna pamięć konwertera MGate
Poniżej ogólna lista rzeczy, które trzeba zrobić praktycznie w każdym konwerterze protokołów, aby skonfigurować go poprawnie.
Proste konwertery protokołów
- Dostosowanie adresacji IP do docelowej instalacji
- Ustawienie prawidłowych parametrów portu szeregowego, typ interfejsu, Bity danych, bity stopu, parzystość, baudrate
- Zdefiniowanie kierunku konwersji, czyli tego, po której stronie będzie Master a po które slave
- Na koniec należy ustawić odpowiednie ustawienia Modbus Routing, czyli właściwy zakres ID, i offset dla wszystkich kanałów.
Pozostałe konwertery protokołów
- Dostosowanie adresacji IP do docelowej instalacji
- Ustawienie prawidłowych parametrów portu szeregowego (o ile jest używany w konwersji), typ interfejsu, Bity danych, bity stopu, parzystość, baudrate
- Wybranie właściwego wariantu konwersji, czyli wybranie właściwego protokołu po każdej stronie.
- Konfiguracja parametrów protokołu A
- Konfiguracja parametrów protokołu B
- Ustawienie automatycznego lub ręcznego mapowania danych/rejestrów pomiędzy stronami A i B.
Jak wybrać właściwy model?
Gdy dzwonią do nas klienci właśnie z takim pytaniem, i nie zawsze jesteśmy w stanie na nie natychmiast odpowiedzieć. Dlaczego? Ponieważ, aby dobrać właściwy model konwertera protokołu, potrzebne są szczegółowe informacje na temat urządzeń, które chcemy połączyć, a najważniejsze to:
- Jaki protokół jest wspierany przez urządzenie A, i jaką rolę w nim pełni? (Slave, master, adapter, I/O itd.)
- Jaki protokół jest wspierany przez urządzenie B, i jaką rolę w nim pełni? (Slave, master, adapter, I/O itd.)
- Jakie są parametry komunikacyjne protokołów, zarówno dla urządzenia po stronie A jak i B.
- Ile urządzeń komunikacyjnych będzie po obu stronach?
- Jaka jest ilość konwertowanych danych?
Pojawiają się dodatkowe pytania, ale generalnie informacje w powyższych punktów (szczególnie 2 pierwszych) praktycznie zawsze pozwolą wybrać właściwy model.
W przypadku konwerterów firmy Moxa bardzo pomocna może okazać się tabela, którą przygotował producent z rozpiską wariantów konwersji, można ją pobrać poniżej:
https://info.elmark.com.pl/Tabela_wyboru_konwertera_MGate
Podsumowanie
Póki co nie zanosi się, aby wszystkie urządzenia z szeroko rozumianego przemysłu przeszły na jeden ujednolicony protokół, właśnie dlatego jest i jeszcze przez bardzo długi czas (może zawsze) będzie miejsce dla konwerterów protokołów przemysłowych.
Dzięki za poświęcony czas i jak zawsze zapraszam do lektury innych materiałów na naszym blogu!
Linki źródła:
Lista protokołów przemysłowych:
https://en.wikipedia.org/wiki/List_of_automation_protocols
Konwertery protokołów Moxa:
https://www.elmark.com.pl/producenci/sklep/moxa-konwertery-protokolow-przemyslowych
Skontaktuj się ze specjalistą Elmark
Masz pytania? Potrzebujesz porady? Zadzwoń lub napisz do nas!