Gdy sterownik PLC ma jednocześnie obsłużyć wyspę zaworową, falownik, czujnik ciśnienia i panel operatorski, szybko pojawia się pytanie, jak wymieniać między nimi dane bez prowadzenia osobnego przewodu do każdego sygnału. Modbus rozwiązuje ten problem, pozwalając przesyłać wartości pomiarowe, stany wejść oraz polecenia sterujące przez wspólną sieć. Wyjaśnię, co to jest Modbus, czym różnią się jego odmiany i na co uważać podczas uruchamiania komunikacji w automatyce oraz pneumatyce.
Modbus to prosty sposób wymiany danych między urządzeniami przemysłowymi
- Modbus jest protokołem komunikacyjnym warstwy aplikacji stosowanym między sterownikami, czujnikami, napędami i systemami SCADA.
- Modbus RTU działa najczęściej przez RS-485, a Modbus TCP wykorzystuje sieć Ethernet i port 502.
- Dane są zapisane w formie cewek, wejść binarnych oraz rejestrów, które urządzenie nadrzędne odczytuje lub zmienia.
- Najczęstsze problemy wynikają z błędnego adresu rejestru, parametrów transmisji albo niewłaściwego okablowania RS-485.
- Protokół jest tani i łatwy do wdrożenia, ale nie zapewnia sam z siebie szyfrowania ani funkcji bezpieczeństwa.

Co to jest Modbus i jak działa w praktyce
Modbus to otwarty protokół komunikacyjny używany do wymiany danych między urządzeniami automatyki. Nie jest konkretnym przewodem ani złączem. Opisuje sposób budowania komunikatów, adresowania urządzeń i interpretowania odpowiedzi.
W klasycznej sieci jedno urządzenie pełni funkcję nadrzędną. Może to być sterownik PLC, komputer przemysłowy albo panel HMI. Wysyła zapytanie, a urządzenie podrzędne, na przykład falownik lub moduł wejść, odpowiada na nie. W nowszym nazewnictwie spotyka się określenia klient i serwer, choć w dokumentacji wielu producentów nadal występują słowa master i slave.
Przykładowa wymiana może wyglądać bardzo konkretnie. Sterownik pyta moduł o aktualne ciśnienie, a moduł odsyła liczbę zapisaną w rejestrze. Innym razem PLC zapisuje wartość do rejestru falownika, aby ustawić prędkość silnika albo uruchomić napęd.
W komunikacji szeregowej urządzenia mają adresy od 1 do 247. Adres 0 może służyć do rozgłaszania polecenia, na które urządzenia nie odsyłają odpowiedzi. Dzięki temu na jednej magistrali RS-485 można połączyć wiele elementów, ale tylko jedno urządzenie powinno nadawać w danym momencie.
Modbus należy do warstwy aplikacji modelu OSI. Oznacza to, że sam definiuje znaczenie komunikatów, natomiast niższe warstwy mogą korzystać z RS-485, RS-232 albo Ethernetu. To rozróżnienie jest istotne, ponieważ RS-485 i Modbus RTU nie są tym samym. RS-485 określa elektryczny sposób transmisji, a RTU opisuje format danych.
Modbus RTU, TCP i ASCII czym się różnią
Najczęściej spotykam trzy odmiany tego protokołu. Wszystkie korzystają z podobnych kodów funkcji i modelu danych, ale różnią się medium transmisyjnym, budową ramki oraz sposobem kontroli błędów.
| Odmiana | Typowe medium | Kontrola błędów | Najlepsze zastosowanie |
|---|---|---|---|
| Modbus RTU | RS-485, rzadziej RS-232 | CRC | Maszyny, czujniki, falowniki i moduły oddalone na kilkaset metrów |
| Modbus TCP | Ethernet i TCP/IP | Kontrola zapewniana przez TCP oraz warstwy sieciowe | PLC, SCADA, serwery, rozproszone instalacje zakładowe |
| Modbus ASCII | Łącze szeregowe | LRC | Starsze instalacje i sytuacje, w których czytelny zapis znakowy ma znaczenie |
Modbus RTU przez RS-485
RTU zapisuje dane w postaci binarnej, dlatego ramki są krótkie i wydajne. W typowej instalacji ustawia się prędkość, na przykład 9600, 19200 lub 38400 bit/s, liczbę bitów danych, parzystość i bity stopu. Wszystkie urządzenia na magistrali muszą mieć zgodne parametry.
RS-485 dobrze sprawdza się w hali produkcyjnej, gdzie występują długie przewody i zakłócenia od silników. Magistralę prowadzi się liniowo, stosuje skrętkę ekranowaną i rezystory terminujące na końcach segmentu. Połączenie w formie gwiazdy często powoduje odbicia sygnału i trudne do wykrycia błędy.
Modbus TCP w sieci Ethernet
Modbus TCP przesyła komunikaty przez sieć Ethernet. Standardowo korzysta z portu 502, a w ramce znajduje się między innymi nagłówek MBAP, który pomaga zidentyfikować transakcję. Nie trzeba ustawiać prędkości transmisji ani bitu parzystości, ale nadal trzeba poprawnie skonfigurować adres IP, maskę i parametry urządzenia.
Ta odmiana ułatwia połączenie sterownika z systemem wizualizacji, komputerem lub urządzeniami znajdującymi się w innej szafie. Nie oznacza jednak, że każde urządzenie Ethernet automatycznie obsługuje Modbus TCP. Zgodność z Ethernetem i zgodność z protokołem to dwie różne rzeczy.
Przeczytaj również: Budowa siłownika pneumatycznego - elementy i dobór
Modbus ASCII
W odmianie ASCII bajty są przedstawiane jako znaki ASCII. Ramka jest bardziej rozwlekła niż w RTU, więc komunikacja zwykle działa wolniej, ale zapis może być łatwiejszy do obserwowania podczas prostych testów. W nowych projektach przemysłowych zdecydowanie częściej wybiera się RTU albo TCP.
Jak Modbus zapisuje i odczytuje dane
Najwięcej nieporozumień nie dotyczy przewodów, lecz tabeli adresów dostarczonej przez producenta. Modbus rozróżnia cztery podstawowe obszary danych, a każdy z nich ma inne przeznaczenie i dostępne operacje.
- Coils to wyjścia binarne, które można odczytywać i zapisywać. Mogą sterować na przykład cewką zaworu.
- Discrete inputs to wejścia binarne tylko do odczytu, takie jak sygnał z wyłącznika krańcowego.
- Input registers przechowują wartości analogowe tylko do odczytu, na przykład ciśnienie lub temperaturę.
- Holding registers służą do odczytu i zapisu parametrów, nastaw oraz wartości zadanych.
Do komunikacji służą kody funkcji. Kod 03 odczytuje rejestry holding, kod 04 rejestry wejściowe, a kody 06 i 16 pozwalają zapisywać odpowiednio jeden lub wiele rejestrów. Kod 01 dotyczy cewek, a kod 02 wejść binarnych.
Trzeba uważać na sposób zapisu adresu. Producent może opisać rejestr jako 40001, podczas gdy oprogramowanie sterownika oczekuje offsetu 0. Inne urządzenie może wymagać wpisania 1. Ten sam fizyczny rejestr bywa więc oznaczany różnie, mimo że dokumentacja opisuje tę samą wartość.
Sam rejestr Modbus ma zwykle 16 bitów. Jeżeli urządzenie przesyła liczbę zmiennoprzecinkową 32-bitową, zajmuje ona dwa rejestry. Wtedy trzeba sprawdzić kolejność słów i bajtów. Błędny parametr endianess może zamienić prawidłowe ciśnienie 6,5 bara w absurdalną liczbę, mimo że komunikacja formalnie działa bez błędów.
W dokumentacji powinny znaleźć się także jednostki i przelicznik. Czujnik może wysyłać wartość 650, która oznacza 6,50 bara po zastosowaniu skali 0,01. Bez tej informacji operator zobaczy poprawnie odczytaną, ale źle zinterpretowaną wartość.
Gdzie Modbus przydaje się w pneumatyce i automatyce
W instalacjach pneumatycznych Modbus często łączy sterownik z wyspą zaworową, czyli zespołem elektrozaworów z elektroniką komunikacyjną. Zamiast prowadzić osobny przewód do każdej cewki, sterownik wysyła przez magistralę informację o stanie zaworów, a moduł zwraca sygnały diagnostyczne.
Przydatne są również moduły obsługujące czujniki ciśnienia, przepływu i temperatury. Można wtedy monitorować spadek ciśnienia, wykrywać nieszczelność albo zatrzymać cykl, gdy siłownik nie osiągnie położenia w wyznaczonym czasie.
W automatyce przemysłowej protokół łączy między innymi:
- sterowniki PLC z falownikami i serwonapędami,
- panele HMI z regulatorami temperatury,
- liczniki energii i analizatory sieci,
- moduły wejść i wyjść rozproszonych,
- sprężarki, osuszacze i stacje przygotowania powietrza,
- systemy SCADA zbierające dane z maszyn.
Przykładowo falownik może udostępniać częstotliwość pracy, prąd silnika, temperaturę i kod alarmu. Sterownik może z kolei przesłać częstotliwość zadaną oraz polecenie startu. Taki układ ogranicza liczbę przewodów, ale wymaga dokładnego uzgodnienia mapy rejestrów.
Modbus dobrze nadaje się do nadzoru i sterowania procesem, lecz nie powinien zastępować obwodu bezpieczeństwa. Wyłącznik awaryjny, blokada osłony czy funkcja STO muszą korzystać z rozwiązania przeznaczonego do funkcji safety, a nie ze zwykłego polecenia przesłanego przez Modbus.
Jak uruchomić komunikację i znaleźć błąd
Przy pierwszym uruchomieniu nie zaczynam od losowej zmiany parametrów. Najpierw porównuję dokumentację obu urządzeń i zapisuję w jednym miejscu adres, kod funkcji, numer rejestru, typ danych, skalę oraz jednostkę.
- Sprawdź, czy oba urządzenia obsługują tę samą odmianę protokołu, na przykład RTU albo TCP.
- W przypadku RS-485 ustaw identyczne parametry transmisji: prędkość, parzystość, bity danych i bity stopu.
- Nadaj każdemu urządzeniu unikalny adres. Dwa moduły z tym samym adresem będą odpowiadały jednocześnie.
- Zweryfikuj przewody A i B, ekran, wspólny potencjał oraz terminację magistrali.
- Skonfiguruj rejestry zgodnie z mapą producenta, uwzględniając offset adresu i kolejność słów.
- Uruchom najpierw jeden odczyt z jednego urządzenia, dopiero później dodawaj kolejne zapytania.
Brak odpowiedzi w RTU najczęściej oznacza zły adres, niezgodne parametry transmisji, zamienione przewody albo problem z terminacją. Jeżeli odpowiedź przychodzi, ale wartość jest błędna, podejrzewam najpierw adresowanie, typ danych i skalowanie, a nie sam kabel.
W Modbus TCP trzeba sprawdzić, czy urządzenie odpowiada na adres IP i czy port 502 nie jest blokowany przez zaporę. Przy użyciu konwertera Ethernet-RS-485 dochodzi jeszcze parametr Unit ID, który wskazuje urządzenie szeregowe znajdujące się za bramą.
Do diagnostyki przydaje się podgląd ramek w programie serwisowym albo analizatorze protokołu. Jeśli widzę zapytanie bez odpowiedzi, szukam problemu w warstwie fizycznej lub konfiguracji. Jeśli pojawia się odpowiedź z kodem wyjątku, urządzenie odebrało komunikat, ale nie może wykonać żądanej operacji, na przykład dlatego, że wskazano nieistniejący rejestr.
Co sprawdzić przed wyborem Modbus do nowej instalacji
Modbus jest rozsądnym wyborem, gdy liczy się prosta integracja wielu urządzeń, dostępność komponentów i łatwa diagnostyka. Nie wymaga skomplikowanej infrastruktury, a obsługę można znaleźć w szerokiej gamie sterowników, falowników i modułów I/O.
Trzeba jednak zaakceptować jego ograniczenia. Klasyczny Modbus nie zapewnia szyfrowania, uwierzytelniania ani kontroli dostępu. Sieci Modbus TCP nie powinno się wystawiać bezpośrednio do internetu. W zakładzie należy oddzielić ją od sieci biurowej, ograniczyć dostęp zaporą i stosować bezpieczne rozwiązania zdalnego dostępu.
Protokół nie gwarantuje też deterministycznego czasu reakcji. Przy dużej liczbie urządzeń, krótkim czasie cyklu i wielu odczytywanych rejestrach magistrala może stać się wąskim gardłem. W takich warunkach planuję częstotliwość odpytywania, grupuję sąsiednie rejestry i nie pobieram w kółko danych, które zmieniają się raz na godzinę.
Moja praktyczna zasada jest prosta. Do małej i średniej maszyny Modbus RTU często wystarczy, szczególnie przy komunikacji z falownikami, wyspami zaworowymi i czujnikami. Gdy potrzebuję łatwego wpięcia do infrastruktury Ethernet, wybieram Modbus TCP, ale od razu uwzględniam segmentację sieci oraz zabezpieczenia.
Najważniejszym dokumentem przed zakupem nie jest folder reklamowy, lecz aktualna mapa rejestrów. Jeżeli producent nie podaje adresów, kodów funkcji, formatów danych i sposobu skalowania, późniejsze uruchomienie może potrwać znacznie dłużej niż sam montaż urządzenia.
