Menu
Modbus TCP kontra Modbus RTU: Stary protokół wciąż obsługuje połowę twoich maszyn

Modbus TCP kontra Modbus RTU: Stary protokół wciąż obsługuje połowę twoich maszyn

Modbus TCP vs RTU — wyjaśnienie: rejestry, okablowanie, prędkość i dlaczego ten protokół używany od dziesięcioleci nadal jest najtańszym, niezawodnym sposobem zbierania danych OEE z maszyn.
Modbus TCP kontra Modbus RTU: Stary protokół wciąż obsługuje połowę twoich maszyn

Modbus to prosty, otwarty protokół szeregowy i Ethernetowy, który pozwala sterownikowi odczytywać i zapisywać ponumerowane lokalizacje danych (rejestry) wewnątrz urządzeń przemysłowych; jego dwa dominujące warianty to Modbus RTU (szeregowy, przez RS-485) oraz Modbus TCP (ten sam model danych opakowany w pakiety Ethernet/IP). Opublikowany przez firmę Modicon w 1979 r., powstał przed większością sprzętu na hali produkcyjnej, a mimo to wciąż — cicho — jest sposobem, w jaki komunikuje się duża część sterowników PLC, napędów, mierników i czujników. Nie jest efektowny. Nie ma wbudowanych zabezpieczeń, nie oferuje mechanizmu autoopisania, a model danych wydaje się archaiczny. Ale jest darmowy w implementacji, trywialny do debugowania i obsługiwany przez praktycznie wszystko — i właśnie dlatego pozostaje domyślnym wyborem do taniego, niezawodnego zbierania danych maszynowych.

Dwa warianty w skrócie

Oba warianty dzielą identyczną warstwę aplikacji. Te same kody funkcji i ta sama mapa rejestrów działają niezależnie od tego, czy bajty podróżują przez skrętkę miedzianą, czy przez przełącznik Ethernet. Różni je warstwa transportowa pod spodem.

  • Modbus RTU działa przez port szeregowy RS-485 (sporadycznie RS-232). To magistrala typu master/slave: jeden węzeł nadrzędny odpyta, do 247 urządzeń podrzędnych odpowiada, i tylko jedno urządzenie nadaje w danym momencie. Ramkowanie jest zwarte, binarne, z 16-bitowym CRC do sprawdzania błędów. Typowe prędkości transmisji to 9600 lub 19200 bitów/s, choć okablowanie pozwala na szybsze.
  • Modbus TCP działa przez standardowy Ethernet na porcie TCP 502. CRC jest pominięte (TCP już gwarantuje dostarczenie) i zastąpione krótkim nagłówkiem MBAP. Wielu klientów może jednocześnie zapytywać ten sam serwer, a do dyspozycji masz całe narzędzia sieciowe: przełączniki, routery, VLAN-y i długie odcinki kablowe.

Krótko: RTU jest tani, odporny i wolny na współdzielonym przewodzie; TCP jest szybszy, równoległy i korzysta z istniejącej sieci zakładowej, ale wymaga urządzenia z obsługą Ethernetu lub bramki.

Rejestry: model danych, który musisz zrozumieć

Modbus nie wysyła nazwanych tagów. Wysyła zawartość ponumerowanych lokacji i występują dokładnie cztery tabele:

  • Cewki (bity do odczytu i zapisu) dla wyjść takich jak przekaźnik lub polecenie startu.
  • Wejścia dyskretne (bity tylko do odczytu) dla elementów typu krańcówka czy flaga błędu.
  • Rejestry wejściowe (16‑bitowe słowa tylko do odczytu) dla wartości mierzonych, jak temperatura czy licznik.
  • Rejestry holdingowe (16‑bitowe słowa do odczytu i zapisu) dla nastaw, konfiguracji i większości danych, które będziesz faktycznie odpytywać.

Ponieważ rejestr ma tylko 16 bitów, wartość większa niż 65535 (licznik produkcji 32‑bitowy, liczba zmiennoprzecinkowa) jest rozdzielana na dwa kolejne rejestry. Oto klasyczna pułapka: kolejność bajtów i słów nie jest ustandaryzowana. 32‑bitowy licznik części o wartości 1 000 000 może przyjść jako para słów (15, 16960) w jednym urządzeniu, a jako (16960, 15) w innym. Jeśli licznik pokazuje śmieci, zamień kolejność słów zanim obwinisz okablowanie. Zawsze potwierdzaj mapę rejestrów i kolejność bajtów/słów (endianness) w instrukcji urządzenia, a nie zgaduj.

Przykład: odczyt licznika części dla OEE

Powiedzmy, że chcesz pobrać liczbę dobrych części z prasy, aby zasilić obliczenia dostępności i wydajności. Instrukcja mówi, że całkowita liczba jest w rejestrach holdingowych 40001 i 40002 jako 32‑bitowa liczba bez znaku, najpierw słowo wysokie.

  1. Wysyłasz kod funkcji 03 (odczyt rejestrów holdingowych), adres startowy 0, ilość 2. (Adres 40001 mapuje się na przesunięcie protokołu 0; numeracja 4xxxx to konwencja ludzka, w transmisji używa się offsetów zerowych.)
  2. Urządzenie zwraca dwa słowa: 0x000F i 0x4240.
  3. Łączysz je: 0x000F4240 = 1 000 000 części.
  4. Odpytujesz ponownie 60 sekund później i czytasz 1 000 450. Delta to 450 części na minutę.

Podstawiając tę prędkość do idealnego czasu cyklu maszyny otrzymujesz bieżącą wydajność; dodaj zaplanowany czas i przestoje i masz ogólną efektywność urządzeń (OEE). To cała magia. Odczyt dwóch rejestrów, raz na sekundę, przemienia cichą prasę w źródło danych i nie kosztuje nic poza odpytem. Sparuj ten sam strumień z przepustowością i współczynnikiem odpadów i zobaczysz straty, których raport zmian nigdy nie uchwycił.

RTU kontra TCP: jak wybrać

Decyzja zwykle sprowadza się do tego, co urządzenie już obsługuje i jak daleko dane muszą podróżować.

  • Wybierz RTU, gdy urządzenie ma tylko port szeregowy, gdy połączenia mieszczą się w obrębie maszyny lub komórki, oraz gdy łańcuszysz kilka tanich mierników na jednej magistrali. RS‑485 dobrze toleruje zakłócenia elektryczne i nie wymaga przełącznika sieciowego.
  • Wybierz TCP, gdy urządzenie ma port Ethernet, gdy potrzebujesz wielu systemów odczytujących te same dane, albo gdy odległości i zarządzanie kablami na magistrali szeregowej stają się uciążliwe. Możliwość pracy równoległej często decyduje o wyborze.
  • Użyj bramki, gdy masz starsze urządzenia RTU, ale chcesz je udostępnić w sieci. Bramka Modbus RTU‑to‑TCP to małe, niedrogie urządzenie, które łączy oba światy i pozwala zmodernizować zbieranie danych bez ingerencji w maszynę.

Żaden z wariantów nie jest systemem sterowania. Modbus jest protokołem wymiany danych, nie SCADA i nie warstwą bezpieczeństwa, więc trzymaj go z dala od ścieżek wymagających gwarantowanego czasu reakcji lub bezpieczeństwa.

Pułapka: budżety odpytań i brak zabezpieczeń

RTU to łącze półdupleksowe na współdzielonym przewodzie, więc timing odpytywania ma znaczenie. Jeśli jeden master odpyta 20 slave'ów przy 9600 baud, a każda transakcja (zapytanie plus odpowiedź plus czas przełączenia) zajmuje około 30–50 ms, pełne przejście wszystkich 20 urządzeń trwa około sekundy. Dodaj więcej urządzeń lub niższą prędkość transmisji, a twoje dane się zestarzeją. Gdy ważna jest rozdzielczość poniżej sekundy, rozdziel obciążenie na kilka portów szeregowych lub przenieś zajęte urządzenia na TCP.

Bezpieczeństwo to drugi istotny zastrzyk. Klasyczny Modbus nie ma uwierzytelniania ani szyfrowania; każdy na magistrali może czytać lub zapisywać dowolny rejestr. Trzymaj go w izolowanych sieciach OT lub VLAN-ach, nigdy nie wystawiaj portu 502 w Internecie i traktuj dostęp do zapisu jako uprzywilejowany. Ta sama baza danych zasila metryki niezawodności, takie jak MTBF i MTTR, i wspiera przejście w kierunku utrzymania opartego na stanie, ale tylko jeśli kanał przenoszący te dane został zaprojektowany z myślą o tych ograniczeniach.

Gdzie pasuje Fabrico

Fabrico to fundament danych czasu rzeczywistego, który zamienia surowe odczyty Modbus w decyzje. Przechwytuje bieżącą produkcję i OEE z danych maszynowych, które już masz, niezależnie od tego, czy wartości przychodzą przez RTU, TCP czy przez pośrednią bramkę. Gdy maszyna nie ma PLC lub nie udostępnia użytecznych danych po kablu, Fabrico może odczytać stan wizualnie za pomocą widzenia komputerowego, więc nie utkniesz na starej linii. Na warstwie monitoringu spoczywa gotowy do pola CMMS do zleceń roboczych, zarządzania majątkiem, planowania prewencyjnego i części zamiennych — co oznacza, że ten sam sygnał, który mierzy postój, może wywołać reakcję. Fabrico jest tworzone w UE z lokalizacją danych w UE — realne znaczenie, gdy twoje dane produkcyjne opuszczają halę. Po stronie utrzymania ruchu zobacz, jak wspiera przejście od reaktywnego do proaktywnego utrzymania.

Najczęściej zadawane pytania

Czy Modbus jest przestarzały?

Nie. Jest stary (1979) i technicznie ograniczony, ale jest otwarty, darmowy do implementacji i wspierany przez ogromną zainstalowaną bazę sterowników PLC, napędów i mierników. Do prostych odczytów rejestrów, które stanowią większość prac monitorujących maszyny, nowsze protokoły dodają złożoność bez korzyści. Modbus pozostaje pragmatycznym wyborem właśnie dlatego, że jest wszędzie i łatwo go debugować.

Czy Modbus RTU i Modbus TCP mogą się komunikować ze sobą?

Nie bezpośrednio, ponieważ używają różnych nośników fizycznych, ale dzielą tę samą warstwę aplikacji, więc bramka Modbus tłumaczy pomiędzy nimi bez problemu. Mapy rejestrów i kody funkcji są identyczne po obu stronach, dlatego mostkowanie to proste, niedrogie urządzenie zamiast pełnej przebudowy systemu.

Dlaczego moja 32‑bitowa wartość jest odczytywana nieprawidłowo przez Modbus?

Praktycznie zawsze to kwestia kolejności słów lub bajtów. 32‑bitowa liczba rozciąga się na dwa 16‑bitowe rejestry, a Modbus nigdy nie ustandaryzował, które słowo idzie pierwsze, więc wartość może przychodzić jako najpierw słowo wysokie lub najpierw słowo niskie w zależności od producenta. Sprawdź w instrukcji urządzenia kolejność bajtów i słów, a następnie popraw parsowanie w kodzie. Rzadko kiedy winne jest okablowanie.

Stary protokół, nowoczesne wnioski: jeśli twoje maszyny już mówią Modbusem, jesteś o jedno odpytywanie od bieżącego OEE. Zarezerwuj demo Fabrico, aby zobaczyć, jak twoje rzeczywiste dane maszynowe zamieniają się w decyzje.

Najnowsze wiadomości z naszego bloga

COSHH Explained: Controlling Substances Hazardous to Health
Czytaj teraz
Zdefiniuj swoją mapę drogową niezawodności
Sprawdź swój potencjalny zwrot z inwestycji: zarezerwuj prezentację na żywo
Zdefiniuj swoją mapę drogową niezawodności
Klikając przycisk Akceptuj, wyrażasz zgodę na korzystanie z plików cookie podczas uzyskiwania dostępu do tej witryny i korzystania z naszych usług. Aby dowiedzieć się więcej o tym, jak pliki cookie są używane i zarządzane, zapoznaj się z naszą Polityką prywatności Polityka prywatności i Deklaracja plików cookie