Pomimo, że protokół komunikacyjny MODBUS został stworzony jeszcze w latach 70-tych, do chwili obecnej jest z powodzeniem wykorzystywany, nie tylko przez firmę Modicon, która jest jego producentem, lecz również dzięki temu że jest protokołem otwartym stał sie standardem zaakceptowanym przez wielu światowych producentów automatyki.
Protokół Modbus zyskał swoją popularność w szczególności przez to, że od samego początku był tworzony z myślą jego zastosowania w automatyce, jest protokołem otwartym i pozbawionym opłat, umożliwia przesyłanie zabezpieczonych komunikatów pozbawionych przekłamań, sygnalizację błędów oraz jest łatwy do wdrożenia i utrzymania.
Istnieje kilka typów omawianego protokłu, są wersje do komunikacji szeregowej, jak również do komunikcacji poprzez sieć Ethernet. Jednak w automatyce przemysłowej najszerzej wykorzystywana jest komunikacja poprzez interfejs RS-485 i w tym artykule to jej poświecona zostanie największa uwaga.
MODBUS RTU
Powyższy typ transmisji szeregowej używany jest najczęściej. Charakteryzuje się on nastepującymi właściwościami:
Ramka komunikacji w trybie RTU wygląda następująco:
Przykładowe, najczęściej wykorzystywane kody funkcji pokazuje poniższa tabelka:
Kody o numerach 128 - 255 są zarezerwowane dla odpowiedzi błędnych.
Pole danych ramki zawiera dodatkowe informacje takie jak: adresy rejestrów, liczba bajtów w polu danych, dane, itp., które są potrzebne jednostce Slave do wykonania rozkazu określonego kodem funkcji, np. kiedy Master żąda odczytu grupy rejestrów (kod funkcji 3) to pole danych zawiera: adres rejestru początkowego oraz ilość rejestrów do odczytu.
Pole kontrolne zajmuje dwa bajty na końcu ramki, przy czym pierwszy bajt jest bajtem mniej znaczącym CRC Lo, zaś drugi jest bajtem starszym CRC Hi.
Warstwa sprzętowa
W celu umożliwienia komunikacji urządzeń z wykorzystaniem protokołu Modbus RTU, należy zbudować połączenie sieciowe, dwuprzewodowe zgodne ze standardem RS-485
By komunikacja działała prawidłowo, w jednej chwili może nadawać wyłącznie jedno urządzenie, pozostałe zaś muszą słuchać, jednak konstrukcja portów zapewnia ochronę urządzeń przed uszkodzeniem nawet gdy przypadkowo dwa urządzenia będą nadawać w tym samym czasie. Sygnałem, który przenosi informację jest różnica potencjaówł pomiędzy żyłami A i B. Dla tak zbudowanej sieci muszą zostać ustalone parametry transmisji tj. szybkość transmisji (powinna być ustawiona na najwyższą jaką może obsłużyć najwolniejsze urzadzenie w sieci), ilość bitów na znak, bit parzystości, stopu.
W tak zbudowanej sieci komunikacja odbywa się na zasadzie: urządzenie nadrzędne - Master, zajmuje linie i wysyła pytanie (w formie opisywanej powyżej ramki) do urządzenia podrzędnego Slave o określonym adresie, następnie pytane urządzenie odpowiada informacją albo kodem błędu. W przypadku gdy pytane urządzenie nie zwóci odpowiedzi lub kodu błędu w określonym maksymalnym dopuszczalnym czasie odpowiedzi, Master w zależności od ustawień wyśle pytanie ponownie lub wyświetli operatorowi komunikat błedu: "No response".