Jak działa konwerter protokołów?

Piotr Gocłowski Produkty, Protokoły i konwertery przemysłowe Tagi: , , , , ,

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.

Podział rynku dla nowo instalowanych sieci szeregowych, przemysłowego Ethernetu i sieci bezprzewodowych w 2019 roku, Ź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:

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 dość prosta 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ć.

Zrzut ekranu z konfiguracji tabeli ID w konwerterze protokołu Modbus
Tabela z opisem działania mechanizmu przesuwania 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.

Jak działa tryb 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:

Rysunek prezentujący w jaki sposób są wymieniane dane w konwerterze protokołów.

Jak skonfigurować taki konwerter protokołów?

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 konswersji), 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:

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 będzie miejsce dla konwerterów protokołów przemysłowych. Aktualne trendy w przemyśle takie jak Industry 4.0 czy IIoT sprawiają że potrzeba połączenia wszelkich urządzeń na obiektach jest większa niż kiedykolwiek wcześniej.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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *