ModBus - один из самых распространенных промышленных протоколов передачи данных. Это открытый коммуникационный протокол, основанный на модели клиент-сервер. Разработка протокола началась в далеком 1979 году фирмой Modicon. Чаще всего передача данных происходит через дифференциальную пару RS-485. Также применяется с использованием RS-422 и RS-232. Существуют три способа организации протокола: ModBus RTU - самый часто используемый вариант, где сообщения разделяются паузой или «молчанием» на линии длительностью не менее 3,5 символа; ModBus ACSII - обмен происходит с использованием только ASCII символов, начало и конец обозначаются специальными символами; ModBus TCP/IP - передача данных происходит на основе TCP/IP соединения. Все способы организации протокола включают в себя контрольную сумму сообщения.
Протокол ModBus имеет структуру MASTER (главный) – SLAVE (подчиненный)(рисунок 1). Структура запроса строится следующим образом: АДРЕС – КОД ФУНКЦИИ – ДАННЫЕ – КОНТРОЛЬНАЯ СУММА. Запрос может инициировать только главное устройство. В адресном поле записывается адрес «подчиненного» устройства, которому предназначен запрос. При значении адреса равному нулю, запрос является широковещательным и распространяется на все SLAVE устройства (если такой запрос поддерживается функцией). В протоколе существуют несколько стандартных функции. Например, функция чтения регистра, имеет код 0x03, и именно такая функция не может поддерживать широковещательный запрос, потому что невозможно прочитать несколько устройств одновременно. В поле данных может быть прописан параметр функции (например, для функции чтения – количество байт и начальный адрес).
Рисунок 1. Структура протокола Mobus
Доступ к элементам в каждой таблице осуществляется с помощью 16-битного адреса. Первой ячейке соответствует адрес 0. Таким образом, каждая таблица может содержать до 65536 элементов.
Данные протокола определяется таблицей входов и регистров. Модель данных протокола приведена в таблице 1.
Таблица 1 – Модель данных протокола ModBus
Таблица |
Тип элемента |
Тип доступа |
Дискретные входы |
Один бит |
Только чтение |
Регистры флагов |
Один бит |
Чтение и запись |
Регистры ввода |
16-битное слово |
Только чтение |
Регистры хранения |
16-битное слово |
Чтение и запись |
Протокол Modbus простой в программной реализации. Применением регистров хранения (holding registers) позволяет решить широкий спектр задач. Одним из основных преимуществ является широкое распространение среди систем автоматизации и управления.
Простота в освоении протокола является также неотъемлемым плюсом в его использовании. Даже на начальном уровне изучения пользователь может внедрить его в готовую систему.
Однако существуют и недостатки. Основным и главным недостатком является отсутствие оповещения MASTER устройства в случае непредвиденного события. Если одно из SLAVE устройств, будь то приводной двигатель, управляемый частотным преобразователем, который подключен к сети ModBus или же иное устройство «откажет», контроллер не сможет тут же получить информацию об этом. Это обусловлено тем, что для постоянного контроля необходимо постоянно посылать запросы на каждое устройство о его состоянии и проверять их. Стандарт не регламентирует начальную инициализацию системы. Определение параметров подключения и инициализацию адресов необходимо осуществлять на этапе подключения устройств к сети.
После инициализации всех устройств в сети, настроив MASTER – устройство, аналогичным образом можно обратиться к каждому устройству по его адресу. Для каждого устройства есть карта регистров, описанная в документации, в которой указаны параметры. Таким образом, проложив сеть из двух проводов по линии RS-485 можно на расстоянии около 1 километра управлять различными устройствами.
Конечно, протокол не всегда в полной мере удовлетворяет потребностям современных устройств. Но, несмотря на 35 – летний стаж работы, он активно используется в самых новейших разработках систем автоматизации и управления.
Литература
AVR Lab устройства на микроконтроллерах AVR (http://avrlab.com/node/34)
Технологии и протоколы передачи данных в промышленности: Industrial Ethernet (http://www.ci.ru/inform13_05/p_22.htm)
Кирсанов В.В. К вопросу о систематизации и конкретизации профилактической работы по повышению уровня промышленной безопасности предприятий нефтехимического комплекса // Вестник Казан. технол. унта. –2013.–№24 –С.138-142.
Денисенко В.В. Компьютерное управление технологическим процессом, экспериментом, оборудованием /В.В. Денисенко. – М.: Горячая линия – Телеком, 2009. – с.105-110