Co to jest Modbus i dlaczego jest tak popularny w automatyce?

Modbus to otwarty protokół komunikacyjny opracowany w 1979 roku przez firmę Modicon (obecnie kojarzoną z ekosystemem Schneider Electric). Jeśli pytasz co to jest Modbus w praktyce, to jest to po prostu ustandaryzowany sposób wymiany danych pomiędzy urządzeniami automatyki: sterownikami PLC, licznikami energii, czujnikami, falownikami, regulatorami oraz systemami SCADA. Modbus utrzymał pozycję przez dekady, bo jest prosty, przewidywalny, łatwy do wdrożenia i dostępny w ogromnej liczbie urządzeń przemysłowych.

Do czego służy Modbus w systemach przemysłowych?

Modbus służy do łączenia wielu urządzeń w jeden spójny system nadzoru i sterowania. Najczęściej spotkasz go w automatyce budynkowej, produkcji, energetyce oraz projektach IoT/IIoT, gdzie trzeba szybko zebrać dane pomiarowe (np. energia, przepływ, ciśnienie, temperatura) i wykorzystać je w logice PLC lub wizualizacji SCADA. Duża popularność Modbus oznacza krótszy czas uruchomienia instalacji oraz mniejsze koszty integracji, bo integrator nie musi „wynajdywać” własnych metod komunikacji – używa standardu, który jest powszechnie wspierany.

Jak działa protokół Modbus – zasada odczytu i zapisu rejestrów

Modbus działa w modelu zapytań: urządzenie nadrzędne (master) inicjuje komunikację, a urządzenia podrzędne (slave) odpowiadają. Master wykonuje odczyty (read) lub zapisy (write) danych, dzięki czemu może np. pobierać wartości z liczników energii i czujników, a także zmieniać nastawy urządzeń (np. parametry pracy, progi alarmowe, wartości zadane). Dane są przechowywane w postaci rejestrów Modbus, czyli uporządkowanych zmiennych, które można czytać lub nadpisywać.

Typowa ramka danych Modbus zawiera:

  • Identyfikację urządzenia slave – w Modbus RTU jest to adres od 1 do 247, a w Modbus TCP komunikacja odbywa się po adresie IP (z identyfikatorem jednostki w nagłówku MBAP)
  • Kod funkcji – określa, czy wykonujesz odczyt czy zapis, oraz jakiego typu dane obsługujesz
  • Dane – wartości parametrów (np. rejestry, bity, zakres odczytu, wartości do zapisu)
  • Sumę kontrolną CRC/LRC (tylko w Modbus RTU i Modbus ASCII)

Najczęściej spotykane kody funkcji Modbus to:

  • 01 - Odczyt cewek (Read Coils)
  • 02 - Odczyt wejść binarnych (Read Discrete Inputs) (najczęściej stosowane)
  • 03 - Odczyt rejestrów typu Holding (Read Holding Registers) (najczęściej stosowane)
  • 04 - Odczyt rejestrów wejściowych (Read Input Registers)
  • 05 - Zapis pojedynczej cewki (Write Single Coil)
  • 06 - Zapis pojedynczego rejestru (Write Single Register) (najczęściej stosowane)
  • 07 - Odczyt statusu urządzenia (Read Exception Status)
  • 08 - Diagnostyka urządzenia (Diagnostics)
  • 15 (0F) - Zapis wielu cewek (Write Multiple Coils)
  • 16 (10) - Zapis wielu rejestrów (Write Multiple Registers)
  • 17 (11) - Identyfikacja urządzenia (Report Slave ID)

Modbus występuje w trzech podstawowych odmianach: Modbus RTU (szybka, binarna komunikacja po RS485/RS232), Modbus ASCII (tekstowa odmiana po RS485/RS232, czytelna dla człowieka, zwykle wolniejsza) oraz Modbus TCP (komunikacja po IP/Ethernet, dla sieci LAN i Internet).

Modbus RTU – magistrala RS485 w praktyce

Modbus RTU jest najczęściej wybieraną odmianą w instalacjach szeregowych, bo zapewnia wydajną transmisję binarną po RS485 (rzadziej RS232). Teoretycznie adresowanie pozwala na dużą liczbę urządzeń, natomiast w praktyce standardowe ograniczenie wynika z warstwy fizycznej: typowo do 32 urządzeń na jednej magistrali i do ok. 1200 m długości linii. Ten zakres można rozszerzać przy użyciu repeaterów RS485, co pozwala rozbudować sieć nawet do 256 urządzeń. W jednej magistrali Modbus RTU pracuje jeden master oraz wiele urządzeń podrzędnych.

Modbus TCP – komunikacja po Ethernet i IP

Modbus TCP odpowiada na potrzeby nowoczesnych instalacji, w których dominują sieci Ethernet i infrastruktura TCP/IP. Dzięki temu urządzenia Modbus mogą działać w sieci LAN, a w zależności od architektury – również przez Internet. Modbus TCP jest wygodny w integracji z systemami IT, skaluje się znacznie łatwiej niż RS485 i oferuje większą przepustowość. W tej odmianie protokół działa w modelu client-server, umożliwia komunikację z wieloma urządzeniami równolegle, a kontrola błędów CRC/LRC nie występuje, ponieważ odpowiada za nią warstwa TCP/IP.

Bramy Modbus – jak połączyć Modbus RTU z Modbus TCP?

W wielu projektach system nadrzędny (SCADA, BMS, sterownik PLC) pracuje w Modbus TCP, natomiast urządzenia polowe (liczniki, czujniki, regulatory) komunikują się po RS485 w Modbus RTU. W takiej sytuacji standardowym rozwiązaniem są bramy Modbusowe, które pełnią rolę „tłumacza” pomiędzy siecią szeregową i Ethernetową. To prosty sposób, aby zintegrować RS485 z siecią IP bez przebudowy całej instalacji.

Narzędzia diagnostyczne – jak testować i analizować Modbus?

Popularność Modbus spowodowała, że na rynku jest wiele narzędzi do testów, symulacji i diagnostyki, które skracają uruchomienie instalacji oraz ułatwiają weryfikację rejestrów. Do najczęściej używanych należą:

  • Wireshark - do analizy pakietów Modbus TCP/IP
  • Modscan32 - diagnostyka i testowanie Modbus RTU i TCP
  • Modbus pool - testowanie, symulacja odczytu i zapisu rejestrów Modbus RTU i TCP
  • Simply Modbus (dla Modbus RTU i TCP)
  • Cas Modbus Scanner (dla Modbus RTU i TCP)
  • QModMaster
  • Radzio Modbus master - darmowe narzędzie do diagnostyki

Urządzenia i akcesoria do komunikacji w sieciach Modbus

Jeżeli potrzebujesz pomocy w doborze elementów infrastruktury komunikacyjnej, skontaktuj się z naszym ekspertem. Pomożemy dobrać urządzenia dopasowane do Twojej architektury Modbus, w tym: