Основы Modbus
«Modbus - последовательный протокол связи, впервые опубликованный компанией Modicon (ныне Schneider Electric) в 1979 году для её программируемых логических контроллеров (ПЛК). Modbus стал стандартом де-факто и сегодня широко применяется для подключения промышленных электронных устройств» - статья о Modbus в Википедии (https://en.wikipedia.org/wiki/Modbus ).
Сообщения
Весь обмен по Modbus выполняется отправкой сообщений (пакетов).
Modbus RTU, ASCII и TCP
Modbus RTU, Modbus ASCII и Modbus TCP - три самых распространённых типа протоколов Modbus. Шлюзы Tibbo Modbus Gateway поддерживают все три.
Modbus RTU и Modbus ASCII используют последовательную связь (RS232 или RS485). Сообщения Modbus RTU состоят из двоичных блоков данных, разделённых (обрамлённых) паузами. В передачах Modbus ASCII для обрамления сообщений служат начальное двоеточие («:») и завершающий перевод строки (CR/LF). Шлюзы Tibbo Modbus Gateway оснащаются не более чем четырьмя последовательными портами. Доступны порты RS232, RS485 и универсальные порты RS232/422/485.
Устройства Modbus TCP передают сообщения Modbus по протоколу TCP/IP. Как и в Modbus RTU, сообщения Modbus TCP - двоичные блоки, разделённые паузами. Все шлюзы Tibbo Modbus Gateway имеют порт Ethernet для связи с устройствами Modbus TCP. По желанию наши шлюзы можно оснастить и портами Wi-Fi.
Ведущие и ведомые
Устройство Modbus может быть либо ведущим (Master), либо ведомым (Slave). Ведущие инициируют весь обмен с ведомыми и не общаются с другими ведущими. Ведомые полностью пассивны и общаются, только отправляя ответы на запросы ведущих. Запросы ведущих содержат команды, которые ведомые должны выполнить.
Каждый раз, отправив запрос конкретному ведомому, ведущий должен дождаться ответа. Все ведомые обязаны ответить в течение определённого времени. Ведущему не следует отправлять следующий запрос, пока адресованный ранее ведомый не ответит или не истечёт время ожидания. Ведомый может отправить либо «обычный» ответ, либо ответ об «исключении». «Обычный» ответ отправляется, когда команда ведущего успешно принята. Ответ об «исключении» отправляется, когда принятая от ведущего команда не поддерживается или произошла какая-то ошибка.
Ведущие могут также отправлять так называемые широковещательные запросы всем ведомым. Широковещательные запросы обрабатываются всеми ведомыми, до которых они дошли. Ведомые никогда не отвечают на широковещательные запросы.
Идентификаторы ведомых
Каждому ведомому в системе Modbus назначается уникальный идентификатор (ID). Допустимы номера от 1 до 247. Номер 0 используется для широковещательной отправки одного и того же запроса всем доступным ведомым. Номера с 248 по 255 зарезервированы, их использовать нельзя. Каждый запрос ведущего содержит ID адресата (или 0, если ведущий отправляет широковещательное сообщение). У ведущих ID нет.
Объединение устройств Modbus RTU, Modbus ASCII и Modbus TCP
Шлюзы Tibbo Modbus Gateway позволяют устройствам Modbus RTU, Modbus ASCII и Modbus TCP общаться друг с другом.
Для этого наши шлюзы Modbus должны прозрачно маршрутизировать сообщения Modbus между этими тремя типами устройств. Шлюзы Tibbo Modbus Gateway предоставляют несколько методов маршрутизации и параметры конфигурации (настройки), определяющие обработку сообщений Modbus при прохождении через шлюзы.