СТА 2009-2

наличие в структуре только одного ве дущего устройства и от 1 до 247 ведо мых. В качестве ведомого устройства обычно выступает ПЛК Modicon с ин терфейсом EIA 232C. Роль ведущего устройства обычно играет либо панель программирования, либо главный компьютер. Следовательно, если одно му главному компьютеру необходимо обмениваться информацией с четырь мя ПЛК, то нужно, чтобы этот компью тер располагал четырьмя последова тельными портами. Это приводит к не обходимости иметь систему с тополо гией звезды. Допустимая длина интер фейсного кабеля EIA 232C сравнитель но невелика, поэтому если надо обеспе чить связь на большие расстояния, то требуются модемы. Многоточечные се ти с 2 проводными и 4 проводными интерфейсами EIA 485 (RS 485) поя вились значительно позднее. По правилам протокола Modbus пе редача сообщения может иницииро ваться только ведущим устройством, ведомые этого делать не могут. Поэто му если ведомое устройство отмечает такое событие, как «остановились на сосы подачи воды в систему охлажде ния атомного реактора», то оно не мо жет проинформировать об этом веду щее устройство до тех пор, пока веду щее не пришлет ему запрос о том, как идут дела. Идеология протокола тако ва, что ведущему устройству адрес не присваивается, а ведомые пронумеро ваны от 1 до 247. Адрес «0» зарезервирован в качестве адреса широковещательной передачи сообщений, предназначенных всем ве домым устройствам. Такое сообщение получают все ведомые устройства, но ответ на него не предусмотрен. О БМЕН СООБЩЕНИЯМИ ПО ПРИНЦИПУ « ЗАПРОС ОТВЕТ » Сообщения команды, исходящие от ведущего устройства, именуются зап росами, а ответные сообщения, присы лаемые ведомым устройством, ответа ми. Формат сообщения на рис. 1 пока зывает упрощенную структуру как зап росов, так и ответов. Ведущее устройство не имеет адреса вообще, поэтому в поле адреса всегда указывается номер ведомого устрой ства. Если это запрос, то он направля ется ведомому устройству с указанным адресом. Если сообщение является от ветом, то оно поступает от ведомого устройства с проставленным в этом по ле адресом. Сообщение запрос всегда содержит тот или иной код функции, например, код 03 — это функция «Чте ние регистров хранения». В этом слу чае ведущее устройство должно указать диапазон номеров подлежащих считы ванию регистров. Ведомое устройство отвечает на такой запрос сообщением, содержащим запрошенные данные, с учётом указанного в запросе диапазона регистров. Формат сообщения одина ков для всех кодов функций, но содер жимое поля данных, естественно, для разных кодов будет различным. В пос леднем поле каждого сообщения поме щается код ошибки, формируемый уст ройством отправителем, так что уст ройство получатель может проверить целостность пришедшего сообщения. Описанный сценарий предполагает успешный обмен «запрос ответ». Если же ведомое устройство хочет сообщить об ошибке или об исключительной си туации (исключении), то оно модифи цирует поле кода функции, устанавли вая в старший значащий разряд кода значение «1». В поле данных помеща ется информация, описывающая иск лючение. Но и при этом ведущее уст ройство может выделить тот код функ ции, который оно посылало ведомому устройству в своем запросе. Следует отметить, что ведущее уст ройство может перейти к отправке сле дующего запроса тому же самому или другому ведомому устройству только по завершении предыдущего цикла « запрос ответ». Это отличает данный протокол от других, таких как Devi ceNet, которые могут отправлять ко манду, предназначенную сразу не скольким ведомым устройствам, и за тем переходить в режим ожидания от ветов. При этом никакого определён ного порядка очерёдности ответов не существует. В протокол Modbus воз можность широковещательной переда чи запросов по нескольким адресам не заложена, поэтому имеет место опре делённая потеря времени, так как при каждом запросе со стороны ведущего устройства ведомое устройство должно не только получить сам запрос, но так же его обработать и на него ответить, и после этого ведущее устройство может перейти к следующему циклу обмена. Р ЕЖИМЫ ASCII И RTU До сих пор всё просто, но дальше идут определённые сложности, пос кольку протокол Modbus рассчитан на два режима последовательной переда чи данных. Один именуется ASCII ( American Standard Code for Information Interchange), а второй — режимом RTU ( Remote Terminal Unit). Термин RTU ведет происхождение от SCADA сис тем (Supervisor Control and Data Acqu sition), в которых ведущее устройство, именуемое CTU (Central Terminal Unit), обменивается информацией с несколькими удалёнными устройства ми (RTU), находящимися от него на определённых расстояниях. Такая кон фигурация подобна первоначальной реализации Modicon, где одно CTU об менивалось информацией с несколь кими RTU в системах с топологией « звезда». Применение режимов ASCII и RTU никак не связано с топологией, но для каждого режима определена структура кадров сообщений и их синхронизация. В процессе передачи по каналам последовательной связи оба режима предусматривают асин хронную передачу, при которой имеет ся заранее определённая структура кад ра и символы пересылаются последова тельно — по одному в каждый момент. Рисунок 2 иллюстрирует отправку символа при использовании асинхрон ной последовательной передачи дан ных. Каждый символ передаётся как последовательность битов, причем время, затрачиваемое на передачу од ного бита, обратно пропорционально скорости передачи данных (бод). Нап ример, при скорости 9600 бод время передачи 1 бита равно 104,1 мкс. Когда информация не передаётся, говорят о ОБ ЗОР / П РОМЫШЛ Е ННЫЕ С Е Т И 53 СТА 2/2009 www.cta.ru Адрес устройства Код функции Данные Контрольная сумма Рис. 1. Упрощённый формат сообщения в протоколе Modbus Стартовый бит 1 2 3 4 5 6 7 8 Стоповый бит Стоповый бит Стартовый бит 1 2 3 4 5 6 7 8 Бит чётности Стоповый бит Стартовый бит 1 2 3 4 5 6 7 Стоповый бит Стоповый бит Стартовый бит 1 2 3 4 5 6 7 Бит чётности Стоповый бит Рис. 2. Структура кадра для 7#битового режима ASCII и 8#битового режима RTU с битом чётности или без него © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy