Як професіонали промислового керування, ви, напевно, знайомі з протоколом зв’язку Modbus. Це, мабуть, найбільш широко використовуваний протокол зв'язку в галузі промислової автоматизації. Його відкритість, масштабованість і стандартизація зробили його універсальним промисловим стандартом.
Я вважаю, що переваги протоколу Modbus само собою зрозумілі. Метою цієї статті є насамперед обговорення недоліків протоколу Modbus.
Усе має дві сторони, і кожен протокол має свої недоліки. Той факт, що Modbus має недоліки, не означає, що це поганий протокол; Я сподіваюся, що всі сприймуть це раціонально.
1. Обмеження щодо обсягу даних, які можна прочитати
На наступній діаграмі показано формат даних для коду функції 03 протоколу Modbus RTU:

Як показано на малюнку, кількість даних (кількість байтів), які повертає підлегла станція, становить лише один байт.
Оскільки підрахунок байтів займає лише один байт, під час читання регістрів введення/утримання одночасно можна прочитати максимум 127 регістрів. У програмах з дуже великими обсягами даних для отримання всіх даних потрібні багаторазові зчитування, що неминуче знижує ефективність зв’язку.
2. Відсутність підтримки для запису в окремі біти регістру
Серед восьми часто використовуваних кодів функцій Modbus немає спеціальної функції для запису в окремі біти в регістрі. Тому, коли нам потрібно встановити або очистити певний біт у регістрі, процес стає досить громіздким.
Зазвичай існує два підходи до вирішення цього питання:
Перший підхід: ми повинні спочатку прочитати значення регістра, потім маніпулювати певним бітом цього значення і, нарешті, записати змінене значення назад. Це потребує двох -поїздок і, з певної точки зору, небезпечно.
Другий підхід: ми можемо розглядати один біт як окремий регістр, де запис 1 означає True, а запис 0 означає False. Цей метод можна виконати за одну взаємодію, але він витрачає значну кількість пам’яті.
Протокол Modbus був створений у 1979 році і зараз використовується в десятках тисяч пристроїв. Я вважаю, що його винахідники знали про ці проблеми, але не змогли реалізувати уніфіковане рішення.
Можливо, одного разу протокол Modbus зможе вирішити ці дві проблеми...
Дехто може заперечити, що протокол Modbus має вразливість у безпеці. Однак, як протокол, розроблений для промислових застосувань, його основна мета полягає в полегшенні обміну даними. В автономному середовищі немає шкоди, якщо немає атаки.




