Modbus - один из самых популярных протоколов, используемых в промышленности. Поддержка традиционных последовательных протоколов RS232/422/485 и Ethernet позволяет таким промышленным устройствам как ПЛК (программируемые логические контроллеры), операторские панели и измерительные приборы, использовать Modbus для коммуникации между ними.
Для организации соединения посредством Modbus по последовательному или Ethernet-протоколу необходимо использовать сетевой шлюз. Последовательные сервера MES1A и MES1B от Advantech B&B SmartWorx обеспечивают надежное соединение и транслируют протокол Modbus/TCP в Modbus/ASCII/RTU. Это позволяет связать ПЛК с такими устройствами, как сенсоры, измерительные приборы и инструменты.
Modbus ASCII/RTU
Протокол Modbus впервые появился в середине 1970-х годов для связи терминалов с ПЛК Modicon по принципу "ведущий-ведомый". Из-за простоты и открытости этот протокол был поддержан множеством производителей и вскоре стал де-факто промышленным стандартом. Он поддерживает как двухточечное соединение (PPP), так и шину MultiDrop, и может быть использован со множеством последовательных интерфейсов (RS-232, RS-422, RS-485 и т.д.).
Изначально спецификация Modbus включала в себя два возможных режима передачи: ASCII и RTU (удаленный терминал). Modbus RTU представляет собой наиболее простую реализацию, используя двоичное кодирование и проверку целостности с помощью CRC (циклического избыточного кода). Формат Modbus ASCII предполагает передачу сообщений с помощью символов ASCII, что делает его несколько менее эффективным вместе с использованием проверки с помощью LRC (продольного избыточного кода). Следует принять во внимание, что ввиду использования набора символов ASCII устройство, настроенное для передачи в этом формате, не может быть связано с устройством, сконфигурированным для работы в режиме RTU.
Modbus/TCP
Стандарт Modbus/TCP был разработан гораздо позже и позволяет осуществлять передачу аналогично протоколам Modbus ASCII/RTU через сети TCP/IP. Modbus/TCP встраивает сообщения в пакеты TCP/IP. Несмотря на достаточно простую реализацию, работа с сетью вносит некоторые сложности. Например, из-за того, что ведущие устройства ожидают ответа на запросы в течение определенного временного промежутка, необходимо учитывать недетерминистские аспекты сетей TCP/IP.
Modbus/TCP устанавливает соединение между узлами, посылая запросы в режиме полудуплекса. Протокол TCP позволяет организовать буфер для запросов для последовательной обработки. Modbus/TCP может использовать идентификаторы транзакций, но некоторые производители оборудования на ранних порах внедрения Modbus/TCP не пользовались этой особенностью - в некоторых случаях это может создавать проблемы для устройств, подключенных к сети посредством Modbus/TCP. Если запрос от ведущего устройства потерян или содержит некорректный код, ведомое устройство на него не ответит. Следующий запрос может прийти либо повторно - от "хозяина", либо из буфера; в таком случае ответы могут быть не синхронизированы и ведущее устройство неверно сопоставит ответы с запросами. Это чревато разными последствиями от получения некорректных ответов и отключения ведомых устройств от сети до постепенного увеличения времени ответа.
Информация предоставлена Advantech B&B SmartWorx.