Jako profesjonaliści w dziedzinie sterowania przemysłowego prawdopodobnie znasz protokół komunikacyjny Modbus. Jest to prawdopodobnie najczęściej używany protokół komunikacyjny w dziedzinie automatyki przemysłowej. Jego otwartość, skalowalność i standaryzacja uczyniły z niego uniwersalny standard przemysłowy.
Uważam, że zalety protokołu Modbus są oczywiste. Celem tego artykułu jest przede wszystkim omówienie wad protokołu Modbus.
Wszystko ma dwie strony i każdy protokół ma swoje wady. Fakt, że Modbus ma wady, nie oznacza, że jest to zły protokół; Mam nadzieję, że wszyscy podejdą do tego racjonalnie.
1. Ograniczenia ilości danych, które można odczytać
Poniższy diagram ilustruje format danych dla kodu funkcji protokołu Modbus RTU 03:

Jak pokazano na rysunku, liczba danych (liczba bajtów) zwrócona przez stację podrzędną wynosi tylko jeden bajt.
Ponieważ liczba bajtów zajmuje tylko jeden bajt, podczas odczytu rejestrów wejściowych/wstrzymujących można jednocześnie odczytać maksymalnie 127 rejestrów. W aplikacjach z bardzo dużą ilością danych, aby odzyskać wszystkie dane, wymagane jest wielokrotne odczyty, co nieuchronnie zmniejsza wydajność komunikacji.
2. Brak obsługi zapisu do poszczególnych bitów rejestru
Wśród ośmiu powszechnie używanych kodów funkcji Modbus nie ma określonej funkcji zapisu do poszczególnych bitów w rejestrze. Dlatego też, gdy musimy ustawić lub wyczyścić określony bit w rejestrze, proces staje się dość uciążliwy.
Generalnie istnieją dwa podejścia do rozwiązania tego problemu:
Pierwsze podejście: musimy najpierw odczytać wartość rejestru, następnie manipulować określonym bitem tej wartości, a na koniec ponownie zapisać zmodyfikowaną wartość. Wymaga to dwóch podróży-w obie strony i z pewnego punktu widzenia nie jest bezpieczne.
Drugie podejście: możemy potraktować pojedynczy bit jako oddzielny rejestr, w którym wpisanie 1 oznacza Prawdę, a wpisanie 0 oznacza Fałsz. Metodę tę można wykonać w ramach pojedynczej interakcji, ale marnuje ona znaczną ilość miejsca w pamięci.
Protokół Modbus powstał w 1979 roku i obecnie jest używany w dziesiątkach tysięcy urządzeń. Wierzę, że jego wynalazcy z pewnością byli świadomi tych problemów, ale nie byli w stanie wdrożyć jednolitego rozwiązania.
Być może pewnego dnia protokół Modbus będzie w stanie rozwiązać te dwa problemy...
Niektórzy mogą argumentować, że protokół Modbus ma luki w zabezpieczeniach. Jednak jako protokół przeznaczony do zastosowań przemysłowych, jego głównym celem jest ułatwienie wymiany danych. W środowisku offline nie ma szkody, jeśli nie ma ataku.




