Zaawansowane 1, 2 i 4-portowe bramy Modbus TCP na Modbus RTU zgodne z IEC 62443-4-2
Koszyk
Uruchomienie bramki do konwersji protokołów rzadko kończy się na zapisaniu konfiguracji. Zaraz potem pojawia się pytanie, czy dane rzeczywiście płyną, a jeśli nie – po której stronie leży problem: w sieci Ethernet, w samej bramce czy na magistrali szeregowej.
MGate MB3000-G2 wyróżnia się tym, że diagnostyka jest wbudowana w konsolę webową bramki. W wielu prostszych konwerterach Modbus jedyną informacją o komunikacji są diody LED, a do szukania przyczyny potrzebny jest laptop oraz port szeregowy na USB. Seria MB3000-G2 pokazuje statystyki komunikacji dla każdego klienta i portu szeregowego, przechwytuje ramki po obu stronach konwersji, wysyła zapytania testowe do urządzeń końcowych, a także zlicza błędy transmisji z poziomu konsoli webowej. Zakres narzędzi zależy częściowo od trybu pracy: w trybie Transparent bramka przekazuje zapytania systemu nadrzędnego na magistralę, w trybie Agent sama odpytuje urządzenia i udostępnia dane z własnej pamięci.
| Funkcja | Tryb Transparent | Tryb Agent | Zastosowanie |
|---|---|---|---|
| Protocol Diagnostics | Status i liczniki dla każdego klienta TCP i portu szeregowego | Tag View z bieżącymi wartościami tagów oraz liczniki zapytań | Wskazanie urządzenia, które nie odpowiada oraz podgląd wartości (Agent) |
| Funkcja TEST dostępna w Protocol Diagnostics | Wysłanie zapytania z określoną funkcją Modbus do urządzenia | Zapis testowej wartości do tagu | Odczyt lub nadpisanie wartości rejestrów lub stanu cewek |
| Traffic Monitor | Obie strony konwersji w jednym widoku, Converter Tool | Jedna rola protokołu naraz | Podgląd ramek: adresy, kod funkcji, dane, przyczyny odrzucenia |
| Network Monitor | Jednakowo w obu trybach | Błędy w sieci Ethernet, liczba i stan połączeń TCP | |
| Serial Port Monitor | Jednakowo w obu trybach | Błędy transmisji na porcie szeregowym | |
| Ping | Jednakowo w obu trybach | Dostępność innych urządzeń w sieci z perspektywy bramki | |
| System Log | Jednakowo w obu trybach | Zbieranie logów / zdarzeń z poziomu bramki | |
| Active Relay | Jednakowo w obu trybach | Możliwość ustawienia przekaźnika alarmowego w zależności od zdarzenia | |
| Support | Jednakowo w obu trybach | Tworzenie zaszyfrowanego pakietu diagnostycznego dla wsparcia technicznego Moxa | |
Tabela 1 zestawia te funkcje wraz z typowymi zastosowaniami. Dalsza część artykułu pokazuje je w działaniu na przykładzie modelu MGate MB3270-G2.
W trybie Transparent strona ma dwie zakładki odpowiadające dwóm stronom konwersji. Zakładka Client – MGate pokazuje podłączonych klientów wraz z adresem IP, portem i statusem oraz licznikami zapytań, odpowiedzi i ramek odrzuconych. Zakładka MGate – Server pokazuje to samo od strony urządzeń końcowych.
Istotną informacją są statusy, wskazują one dokładny stan pracy klienta/serwera, w tym informacje na temat błędu oraz ostrzeżeń, takich jak błędy topologii, brak połączenia, pełna kolejka bufora, czy też ponawianie zapytań przez system nadrzędny zanim przyjdzie odpowiedź.
Zestawienie obu zakładek pomaga przy lokalizacji problemu. Klient dostaje odpowiedź na każde zapytanie, więc strona ethernetowa działa; ruch urywa się dopiero na porcie 1, który nie dostaje nic z magistrali. Status opisuje przy tym stan bieżący, a liczniki narastają aż do naciśnięcia RESET COUNTERS – kilkadziesiąt timeoutów przy statusie Normal to ślad po wcześniejszych problemach, a nie po bieżących.
W zakładce MGate <-> Server przy każdym porcie szeregowym, a także przy każdym połączonym serwerze Modbus TCP, jest przycisk TEST uruchamiający wbudowany Test Modbus Device. Narzędzie wysyła zapytanie bezpośrednio z bramki do urządzenia wskazanego w polu Modbus ID i pokazuje wynik, przyczynę ewentualnego błędu oraz surową odpowiedź.
Zapytanie wybiera się z listy standardowych kodów funkcji – odczyt 01, 02, 03, 04 lub zapis 05, 06, 15, 16 – albo wpisuje jako własny ładunek (User-defined payload) w postaci szesnastkowej, bez adresu i sumy kontrolnej, które bramka dodaje sama. Odpowie każde urządzenie, które obsługuje dany kod funkcji i adres rejestru. Jeśli nie obsługuje, odsyła wyjątek, np. 02 Illegal Data Address, widoczny w polu Reason – to też informacja: urządzenie odpowiada, a błąd leży w adresie lub kodzie funkcji. Test można wykonać jednorazowo albo cyklicznie.
W praktyce: narzędzie pozwala na odczyt/zapis rejestru lub cewki urządzenia Modbus, podłączonego do bramki. Pozwala to na szybkie sprawdzenie prawidłowości działania układu.
W trybie Agent ta zakładka wygląda inaczej, z racji charakterystyki pracy bramki. Zakładka Tag View pokazuje wszystkie tagi wraz z bieżącymi wartościami, typem danych i znacznikiem czasu ostatniej aktualizacji. To najprostsze potwierdzenie, że odpytywanie działa i że wartości mają sens.
Tag View pokazuje wartości przeliczone według typu danych tagu, więc od razu widać błędy w konfiguracji komend. Dla przykładu wartość Moc_Czynna_P.
Przycisk TEST w Tag View działa inaczej niż w trybie Transparent: nie wysyła dowolnego zapytania, tylko zapisuje wartość do wybranego tagu, a przez niego do rejestru urządzenia. Nie ma tu odczytu ani testu cyklicznego.
Okno Write Value Test pokazuje, którego tagu dotyczy zapis: Provider to rola bramki obsługująca tag (modbus_serial_client – strona szeregowa), Source – nazwa urządzenia z konfiguracji, Name – nazwa tagu, Type – typ danych. Wartość wpisuje się szesnastkowo, w długości wynikającej z typu: dla float są to 4 bajty, więc 25,0 to 41C80000. Jeśli urządzenie pokaże wpisaną wartość, adres rejestru, typ danych i kolejność bajtów w komendzie są poprawne. Pozwala to sprawdzić ścieżkę zapisu, np. zmianę nastawy lub przełączenie wyjścia, zanim użyje jej system nadrzędny.
Write Value Test zapisuje wartość do urządzenia. Nie jest to podgląd ani symulacja – rejestr zmienia się naprawdę. Funkcji tej nie należy używać na w pełni pracującym obiekcie.
Druga zakładka, Diagnostic Details, pokazuje liczniki wybranej roli protokołu – rolę wskazuje się z listy MGate Role, bo w trybie Agent obie strony pracują niezależnie od siebie. Liczniki są zawsze liczone z perspektywy bramki: „Valid Request to MGate” to zapytania, które do niej dotarły, „Exception from MGate” – wyjątki, które sama odesłała.
Kolumna Time w Tag View to najprostszy test sprawności urządzenia. Gdy urządzenie przestaje odpowiadać, znacznik czasu jego tagów przestaje się aktualizować. Sama wartość zależy od ustawienia Fault Protection w komendzie: przy Keep latest data zostaje ostatnia odczytana, przy pozostałych opcjach zmienia się na zero lub wartość zdefiniowaną przez użytkownika. Widok odświeża przycisk REFRESH.
Traffic Monitor przechwytuje ramki Modbus przechodzące przez bramkę: z czasem co do milisekundy, źródłem, celem, Modbus ID, kodem funkcji, danymi oraz dla ramek błędnych z przyczyną odrzucenia. W trybie Transparent obie strony konwersji widać w jednym widoku, w trybie Agent jedną rolę naraz. Przechwytywanie uruchamia przycisk START, a zebrane ramki można przefiltrować i wyeksportować do pliku CSV. Przejście na inną stronę konsoli lub wygaśnięcie sesji zatrzymuje monitor i czyści zapis, dlatego eksport wykonuje się przed opuszczeniem strony.
W trybie Transparent dane w monitorze są szesnastkowe, więc do ich odczytania można użyć wbudowanego konwertera, uruchamianego linkiem ze strony monitora. Przepisuje się do niego pojedynczą wartość – nie całą ramkę – a narzędzie pokazuje, jak ten sam ciąg bajtów wygląda w różnych typach danych. Działa to w obie strony: dla przykładu, jeśli licznik pokazuje 21 Hz, wpisanie 21 pokaże 0015 – ten ciąg powinien pojawić się w polu Data ramki. Pozwala to też szybko ustalić, czy urządzenie zwraca liczbę całkowitą, czy zmiennoprzecinkową.
W trybie Agent monitor obejmuje jedną stronę naraz – wskazaną na liście MGate Role. Rola Modbus RTU/ASCII Client pokazuje zapytania, które bramka sama wysyła na magistralę – kolejno na oba porty – oraz odpowiedzi urządzeń na te zapytania.
Po przełączeniu na rolę Modbus TCP Server widać ruch od strony systemu nadrzędnego – z adresem IP klienta zamiast numeru portu szeregowego. Zestawienie obu widoków rozdziela problemy sieciowe od problemów na magistrali, bo obie strony pracują tu niezależnie od siebie.
Tabela 2 zestawia kody i komunikaty błędów widoczne w Traffic Monitorze wraz z miejscem, od którego zaczyna się szukanie przyczyny.
| Kod lub komunikat | Znaczenie | Gdzie szukać przyczyny |
|---|---|---|
| 0x0A Gateway Path Unavailable | Brak ID w tabeli routingu, konflikt adresów w tabeli routingu, milczący serwer Modbus TCP | Tabela routingu, topologia, stan serwera Modbus TCP |
| 0x0B Gateway Target Device Failed To Respond | Brak odpowiedzi serwera: urządzenie offline albo przerwany kabel szeregowy | Okablowanie, adres urządzenia, parametry portu, Response Timeout |
| 0x06 Server Device Busy | Kolejka pełna; mieści 32 zapytania na klienta | Zbyt częste odpytywanie lub zbyt wolna prędkość magistrali |
| Unknown Packet | Niekompletna ramka | Stabilność sieci, poprawność ramek po stronie klienta |
| Error PID | Protocol ID inne niż 0x0000, czyli ruch nie jest Modbus TCP | Obcy klient łączący się na port Ethernet |
| Error Length | Długość w nagłówku MBAP niezgodna z danymi albo obcięta ramka RTU | Utrata pakietów, parametry portu, Response Timeout, okablowanie |
| CRC Error (RTU) / LRC Error (ASCII) | Uszkodzona suma kontrolna | Parametry portu, zakłócenia i ekranowanie, kilka urządzeń nadających naraz |
| Exceed Maximum Length | Ramka ponad limit: 261 bajtów w TCP, 256 w RTU, 513 w ASCII | Konstrukcja ramki po stronie klienta albo kolizja na magistrali |
Network Monitor pokazuje ruch na interfejsie Ethernet bramki. Zakładka Network Statistics zawiera liczniki ramek Ethernet (unicast, broadcast, multicast i błędy) oraz liczniki pakietów według protokołów TCP, UDP, ICMP, IPv4 i IPv6, z przyrostem na sekundę. Rosnące liczniki Error albo Drop i Retransmitted wskazują na problem w sieci: uszkodzony kabel lub wtyk, przeciążony przełącznik, niezgodne ustawienia portów. Jeśli stoją, a komunikacja Modbus zawodzi, przyczyna leży wyżej – w konfiguracji albo na magistrali. Modele ze złączem światłowodowym mają dodatkowo zakładkę Fiber Check.
Zakładka Network Connections to lista gniazd sieciowych bramki ze stanem połączeń. Wpis z lokalnym portem 502 w stanie ESTABLISHED to aktywna sesja Modbus TCP.
Wiszące sesje. Gdy komputer SCADA lub sterownik traci zasilanie, ktoś odłącza kabel albo aplikacja się zawiesza, klient nie zamyka połączenia i bramka nadal utrzymuje sesję. Po powrocie klient otwiera nowe połączenie, a stare wciąż zajmuje miejsce w puli 32 połączeń. Bramka zwalnia nieaktywne sesje po czasie TCP Alive Check Time – domyślnie 5 minut w trybie Transparent i 1 minuta w trybie Agent.
Serial Port Monitor pokazuje warstwę fizyczną magistrali: liczbę bajtów nadanych i odebranych na każdym porcie oraz cztery liczniki błędów – ramkowania, parzystości, przepełnienia bufora i przerwania transmisji.
Najwięcej mówi porównanie liczników Serial Tx i Serial Rx. Gdy Tx rośnie, a Rx stoi, bramka nadaje, ale nic nie wraca: przerwany lub zamieniony przewód (A/B), brak zasilania urządzenia, zły adres albo prędkość transmisji. Gdy oba rosną, a błędy ramkowania i parzystości narastają, urządzenie odpowiada, ale sygnał dociera zniekształcony.
Narastające błędy ramkowania lub parzystości to zwykle warstwa fizyczna. Najpierw należy sprawdzić parametry portu, terminację, polaryzację i uziemienie ekranu, a dopiero potem szukać przyczyny na poziomie protokołu.
Sekcję domyka Ping. Wystarczy podać adres IP i nacisnąć PING, a bramka sprawdzi, czy urządzenie o podanym adresie IP odpowiada. Test biegnie z samej bramki, więc rozstrzyga, czy problem leży w sieci, czy w protokole Modbus. Brak odpowiedzi nie zawsze oznacza awarię: zapora systemu Windows domyślnie blokuje ping, więc komputer SCADA może nie odpowiadać mimo sprawnej sieci.
System Log zapisuje zdarzenia systemowe i sieciowe bramki: restart, zmianę konfiguracji, zanik łącza Ethernet, konflikt adresu IP. Rejestrowanie jest domyślnie wyłączone i należy je włączyć w System Settings > Notification, zanim wystąpi usterka. Przerwę w danych widoczną w systemie SCADA można wtedy porównać z wpisem Ethernet link down lub restartem bramki.
Gdy własna analiza jest niewystarczająca do rozwiązania problemu, w zakładce Diagnostics > Support istnieje możliwość przygotowania specjalnego zaszyfrowanego raportu diagnostycznego przeznaczonego dla inżynierów Moxy. Raport zawiera informacje identyfikujące urządzenie oraz komplet danych diagnostycznych.
Przy planowaniu instalacji należy uwzględnić limity bramki. Poniższe wartości pochodzą z instrukcji serii MB3000-G2.
| Parametr | MGate MB3170-G2 / MB3270-G2 / MB3470-G2 |
|---|---|
| Zapytania w kolejce od jednego klienta TCP | 32 |
| Obsługiwane serwery Modbus TCP | do 32 |
| Urządzenia na jednym porcie RS-485 | do 31 |
| Porty RealCOM | 1–4 |
| Klienci na jeden port szeregowy (routing po IP lub porcie TCP) | do 4 |
| Adresy Modbus ID w tabeli routingu | 1–255 |
Opisane narzędzia diagnostyczne są dostępne w całej serii. Warianty różnią się liczbą portów szeregowych.

Bramka protokołów Modbus, 1 port
Konwersja Modbus RTU/ASCII na Modbus TCP dla pojedynczej magistrali szeregowej. Tryb Transparent i tryb Agent, komplet narzędzi diagnostycznych w konsoli webowej.

Bramka protokołów Modbus, 2 porty
Model użyty w tym artykule. Dwa niezależne porty szeregowe pozwalają rozdzielić magistrale oraz korzystać z mapowania adresów Mapped ID.

Bramka protokołów Modbus, 4 porty
Wariant do instalacji z kilkoma magistralami szeregowymi obsługiwanymi przez jedno urządzenie, z rozdzieleniem ruchu na poziomie tabeli routingu.
Diagnostyka serii G2 układa się w prostą kolejność. Protocol Diagnostics odpowiada na pytanie, które urządzenie milczy. Traffic Monitor pokazuje, co dokładnie przez bramkę przeszło i dlaczego zostało odrzucone. Serial Port Monitor rozstrzyga, czy problem nie znajduje się w warstwie fizycznej magistrali, a Ping oddziela awarię sieci od awarii protokołu z poziomu bramki.
Wszystkie narzędzia są dostępne z poziomu przeglądarki, bez konieczności używania analizatora magistrali oraz dodatkowego oprogramowania na komputerze.
