АРБИТР ИНТЕРФЕЙСА RS-485
RS-485 INTERFACE ARBITRATOR

Изобретение относится к технике передачи информации между абонентами в локальных вычислительных сетях (ЛВС), в частности к способам доступа к коллективному каналу передачи данных, и может применяться в автоматизированных системах управления, в которых необходимо обеспечить обмен информацией двух ведущих абонентов с ведомыми абонентами по интерфейсу RS-485.
Объединение в сеть блоков управления, датчиков и приводов посредством шинных систем обмена данными получает все более широкое распространение в системах автоматизированного управления технологическими процессами. Одним из известных в этой области протоколов обмена данными является протокол MODBUS, который чаще всего базируется на физическом интерфейсе RS-485, имеющем шинную архитектуру. Протокол Modbus применяет цикл запроса-ответа ведущий-ведомый для обмена информацией между ведущими абонентами и полевыми устройствами. Одно устройство, ведущее, инициирует транзакции, такие как запросы изменения точек установки, диагностика и т.п., передавая сообщение, адресованное другому устройству - ведомому. По протоколу Modbus сообщение, переданное ведущим, форматируется так, чтобы включить в себя адрес ведомого устройства, код функции, определяющий запрошенное действие, любые данные, которые должны быть посланы ведомому устройству, и информацию контроля ошибок. Ведомое устройство обнаруживает и принимает сообщение от ведущего, основанное на адресе в сообщении, и обрабатывает транзакцию или функцию, указанную кодом функции в сообщении. После обработки транзакции или выполнения запрошенной функции ведомый передает ответное сообщение, построенное с использованием протокола Modbus и содержащее информацию, подтверждающую выполненное действие, любые данные, которые должны быть возвращены ведущему, и информацию контроля ошибок. При этом протоколом MODBUS работа двух ведущих устройств на одном интерфейсе RS-485 не предусмотрена из-за возможных столкновений (коллизий) в общей линии связи. Но в практике построения АСУ нередко требуется обеспечить поочередный доступ двух или более ведущих устройств к ведомым устройствам на одной общей шине RS-485. Такая необходимость возникает как для резервирования ведущих устройств, с целью повышения надежности системы, так и из-за необходимости получения информации от ведомых устройств поочередно в разные ведущие абоненты, например, при подключении второго ведущего абонента к уже существующей сети с одним ведущим абонентом.
Из существующего уровня техники известен шлюз, обеспечивающий подключение нескольких ведущих устройств к общей шине интерфейса RS-485. При этом дополнительные ведущие устройства подключаются к шлюзу через сетевой интерфейс Ethernet с множественным доступом (см. MGateMB3000 Modbus Gateway. User Manual. Sixth Edition, July 2012, c. 11-4. http://www.moxa.com/product). Недостатком такого подключения является изменение временной диаграммы обмена между ведущим и ведомыми устройствами по интерфейсу RS-485 из-за переменных задержек, характерных для механизма случайного доступа сети Ethernet, что не всегда допустимо для системы, уже находящейся в эксплуатации и работающей в режиме реального времени. Кроме того, шлюз, к которому подключены все ведущие устройства, становится централизующим звеном, выход из строя которого приводит к отключению от интерфейса RS-485 сразу всех ведущих устройств.
Наиболее близким по технической сущности к заявляемому решению является устройство переключения интерфейсов, содержащее интерфейсные микросхемы, соединенные друг с другом и имеющие входы управления включением, микроконтроллер, входы и выходы которого соединены с интерфейсными микросхемами (патент RU 2421794 C1 приоритет от 15.01.2010, опубл. 20.06.2011. Бюлл. №17.), оно выбрано в качестве прототипа. Данное устройство предназначено для реализации обмена нескольких ЭВМ с абонентами, имеющими на входе/выходе по одному интерфейсу RS-232, что делает невозможным его использование для поочередного подключения двух ведущих абонентов к сети ведомых абонентов с многоточечным подключением к физическому интерфейсу RS-485, имеющему шинную архитектуру. Таким образом, в прототипе не достигается технического результата, выраженного в повышении надежности работы АСУ ТП, построенных на базе интерфейса RS-485.
Заявленное изобретение направлено на создание арбитра интерфейса RS-485, обеспечивающего, в частности:
- автоматическое подключение к сети ведомых абонентов на общей шине RS-485 одного из двух ведущих абонентов, проявившего активность;
- снижение вероятности конфликта при подключении активного абонента к сети RS-485;
- автоматическое подключение к сети RS-485 одного предопределенного ведущего абонента при выключении питания арбитра;
- автоматическое подключение к сети RS-485 одного предопределенного ведущего абонента, если будет обнаружена неисправность арбитра при его самопроверке по встроенной тестовой программе;
- расширение арсенала технических средств в данной области техники.
Применение заявленного арбитра интерфейса RS-485 в составе АСУ ТП позволит получить технический результат, выраженный в повышении надежности системы управления и обеспечении поочередной работы в сети двух ведущих абонентов.
Технический результат достигается тем, что в известное устройство переключения интерфейсов, содержащее интерфейсные микросхемы, соединенные с входами микроконтроллера, который управляется программой, анализирующей уровни сигналов на его входах, а выходы соединены с управляющими входами интерфейсных микросхем, дополнительно введены два электронных и один релейный переключатели, причем интерфейсные микросхемы реализуют функцию преобразования уровней сигналов RS-485/TTL, а выходы приемников первой и второй интерфейсных микросхем соединены с нормально замкнутым и нормально открытым контактами первого электронного переключателя и с первым и вторым входами микроконтроллера соответственно, а входы передатчиков упомянутых микросхем соединены с нормально замкнутым и нормально открытым контактами второго электронного переключателя соответственно, а средний переключающийся контакт первого электронного переключателя соединен со входом передатчика третьей интерфейсной микросхемы, а средний переключающийся контакт второго электронного переключателя соединен с выходом приемника третьей интерфейсной микросхемы и с третьим входом микроконтроллера, первый второй и четвертый выходы микроконтроллера соединены с входами управления направлением передачи информации первой, второй и третьей интерфейсных микросхем соответственно, а третий выход микроконтроллера соединен с управляющими входами первого и второго электронных переключателей, а к интерфейсным входам первой и второй интерфейсных микросхем через разъемы могут подключаться первый и второй ведущие абоненты интерфейса RS-485 соответственно, причем интерфейсный вход RS-485 первой интерфейсной микросхемы соединен с нормально замкнутыми контактами релейного переключателя, а интерфейсные входы третьей интерфейсной микросхемы соединены с нормально разомкнутыми контактами релейного переключателя, управляющий вход которого соединен с пятым выходом микроконтроллера, а к средним переключающимся контактам релейного переключателя через разъем может подключаться сеть RS-485 с управляемыми абонентами.
Техническим результатом, обеспечиваемым приведенной совокупностью существенных признаков арбитра интерфейса RS-485, является:
- повышение надежности АСУ ТП за счет автоматического подключения с помощью электронного переключателя к сети RS-485 одного из двух ведущих абонентов, проявивших активность;
- снижение вероятности конфликта при подключении активного абонента к сети RS-485 за счет переключения направления передачи информации через интерфейсные микросхемы и электронный переключатель в моменты паузы активности в сети;
- автоматическое подключение с помощью релейного переключателя к сети RS-485 одного из двух ведущих абонентов при выключении питания арбитра или обнаружении его неисправности путем самотестирования;
- расширение арсенала технических средств в данной области техники.
В качестве примера построения арбитра интерфейса RS-485 рассмотрим схему устройства для подключения двух ведущих абонентов к сети ведомых абонентов на базе интерфейса RS-485, приведенную на фиг.1. Ведущие абоненты могут по своей инициативе посылать запросы ведомым абонентам и получать от них ответы, тогда, как ведомые абоненты могут только получать запросы от ведущих абонентов и посылать на них ответы.
Устройство включает: три интерфейсные микросхемы ИМ1, ИМ2 и ИМ3, микроконтроллер, два быстродействующих электронных переключателя S1 и S2, релейный переключатель К1 и источник питания (на схеме не показан). Каждая интерфейсная микросхема содержит один приемник, выполняющий преобразование уровней интерфейса RS-485 в уровни TTL и один передатчик, выполняющий преобразование уровней TTL в уровни интерфейса RS-485. Приемники и передатчики всех интерфейсных микросхем управляются сигналами RE и DE, которые соединены между собой на входе каждой микросхемы и подключены к управляющим выходам микроконтроллера. При подаче от микроконтроллера логического сигнала нулевого уровня на управляющие входы RE и DE приемник включается и передает информацию с линий связи А и В интерфейса RS-485 на свой выход R, а передатчик находится в выключенном состоянии. При единичном уровне сигнала на входах RE и DE приемник выключается, а передатчик включается и передает сигнал с входа D на линии связи А и В интерфейса RS-485. Таким образом, микроконтроллер может управлять направлением передачи информации через интерфейсные микросхемы ИМ1-ИМ3. При подаче от микроконтроллера логического сигнала единичного уровня на объединенные управляющие входы IN1 и IΝ2 электронных переключателей S1 и S2 сигнал передается с входов S1A и S2A на выходы D1 и D2, а при подаче нулевого уровня - со входов S1B и S2B на выходы D1 и D2 соответственно. При подаче от микроконтроллера логического сигнала нулевого уровня на управляющий вход релейного коммутатора К1 замыкаются нормально замкнутые контакты (НЗ), а при подаче единичного сигнала замыкаются нормально открытые контакты (НО).
Выходы R приемников интерфейсных микросхем ИМ1 и ИМ2 соединены с первым и вторым входами микроконтроллера и входами S1B, S1A электронного переключателя S1 соответственно, а выход D1 этого переключателя соединен с входом D микросхемы ИМ3.
Входы D интерфейсных микросхем ИМ1 и ИМ2 соединены с входами S2B и S2A электронного переключателя S2 соответственно, а выход D2 переключателя соединен с выходом R приемника микросхемы ИМ3 и с третьим входом микроконтроллера.
К интерфейсным входам микросхем ИМ1 и ИМ2 через разъемы подключаются первый и второй ведущий абоненты интерфейса RS-485, причем интерфейсный вход RS-485 первой интерфейсной микросхемы дополнительно соединен с нормально замкнутыми контактами релейного переключателя K1, а интерфейсные вход микросхемы ИМ3 соединен с нормально разомкнутыми контактами упомянутого релейного переключателя. К средним контактам релейного переключателя К1 через разъем подключается сеть RS-485 с управляемыми абонентами.
Первый, второй и четвертый выходы микроконтроллера соединены с входами управления направлением передачи информации интерфейсных микросхем ИМ1, ИМ2 и ИМ3 соответственно, третий выход микроконтроллера соединен с объединенными входами управления IN1 и IN2 электронных переключателей S1 и S2, а пятый выход соединен с входом управления релейного переключателя К1.
Арбитр может быть практически реализован с использованием комплектующих изделий разных изготовителей, например, в качестве одного из вариантов, были применены три интерфейсные микросхемы SN65176B и микроконтроллер MSP430F5132 фирмы Texas Instruments, два быстродействующих электронных переключателя ADG736 фирмы Analog Devices и релейный переключатель TRS-24DC-SB-L20 фирмы TTI.
Устройство работает следующим образом, в исходном состоянии при выключенном источнике питания первый ведущий абонент всегда подключен к сети RS-485 через нормально замкнутые контакты релейного переключателя К1. Это необходимо для того, чтобы в сети всегда был хотя бы один ведущий абонент, управляющий работой сети.
Блок-схема алгоритма работы арбитра приведена на фиг.2. При подаче на устройство напряжения питания (блок 1) начинается исполнение рабочей программы микроконтроллером, которая проводит начальную инициализацию всех регистров микроконтроллера, настраивает соответствующие входы и выходы, тестирует все узлы устройства, и, если обнаружены ошибки в его работе, микроконтроллер своим нулевым выходным сигналом оставляет неизменным положение переключателя К1, при котором первый ведущий абонент остается подключенным к сети RS-485 (блоки 2, 3, 4). Если при тестировании ошибки не обнаружены, то микроконтроллер нулевым выходным сигналом переключает электронные переключатели S1 и S2 в нормально закрытое состояние (НЗ) (нижнее по схеме), а логическим нулем переключает все интерфейсные микросхемы в режим приема информации с интерфейсов RS-485 (блок 5). Далее работа арбитра происходит следующим образом.
Микроконтроллер циклически опрашивает выход R приемника интерфейсной микросхемы ИМ1, ожидая появления паузы активности в сети RS-485 (блок 6). При обнаружении паузы переключает единичным логическим выходным сигналом релейный переключатель К1 в другое состояние, при котором его нормально замкнутые контакты размыкаются и отключают первый ведущий абонент от сети RS-485, и замыкаются нормально открытые (НО) контакты, подключая к сети RS-485 интерфейсные выходы микросхемы ИМ3 (блок 7). Таким образом, происходит «безударное» физическое подключение арбитра к сети RS-485, уменьшающее вероятность внесения помех в ее работу.
Поскольку до включения арбитра в сеть в ней работал только первый ведущий абонент, то арбитр, после своего включения, должен обеспечить ему условия для нормального завершения текущего цикла обмена, начатого ранее (до включения арбитра). После этого арбитр начинает принимать и удовлетворять запросы на подключение и от второго ведущего абонента.
Для этого счетчик таймаута загружается выбранной величиной, определяющей допустимое время ожидания ответа от ведомого абонента на предшествующий запрос ведущего абонента. Для примера была выбрана величина 1000 миллисекунд (блок 8).
Далее микроконтроллер циклически опрашивает выходы R приемников интерфейсных микросхем ИМ1 и ИМ3, выполняя в каждом цикле декремент на одну единицу счетчика таймаута (блоки 9, 10, 11, 12).
Если микроконтроллер обнаруживает активность на выходе R микросхемы ИМ1 (блок 11), то единичным логическим сигналом переключает микросхему ИМ3 в режим передачи (блок 16), образуя через замкнутый контакт S1B, сквозной канал передачи запроса от первого ведущего абонента в сеть RS-485. При этом микроконтроллер продолжает следить за сигналом на выходе R микросхемы ИМ1 и по наступлению паузы определяет момент окончания передачи сообщения (блок 17) и сразу переключает микросхему ИМ3 на прием (блок 18), загружает счетчик таймаута величиной, определяющей допустимое время ожидания ответа от ведомого абонента (блок 19). Далее микроконтроллер циклически опрашивает выход R приемника интерфейсной микросхемы ИМ3, выполняя в каждом цикле декремент на одну единицу счетчика таймаута (блоки 20, 21, 22). Появление активности на выходе R микросхемы ИМ3 свидетельствует о том, что пришел ответ ведомого абонента на запрос, посланный ему ранее первым ведущим абонентом, тогда логической единицей на управляющем входе DE микроконтроллер переключает интерфейсную микросхему ИМ1 в режим передачи информации первому ведущему абоненту (блок 23). По наступлению паузы активности микроконтроллер определяет окончание передачи ответа (блок 34). Если ответ от ведомого абонента не пришел в течение заданного времени (счетчик таймаута исчерпался), то происходит переход от блока 21 к блоку 13.
Если микроконтроллер обнаруживает активность на выходе R микросхемы ИМ3 (блок 12), то единичным логическим сигналом переключает микросхему ИМ1 в режим передачи (блок 23), образуя через замкнутый контакт S2B, сквозной канал передачи ответа первому ведущего абоненту из сети RS-485. В момент окончания приема ответа, определяемого по паузе активности на выходе ИМ3 (блок 34), выполняется переход к блоку 13, где все интерфейсные микросхемы переключаются на ввод.
Далее микроконтроллер циклически опрашивает выходы R микросхем ИМ1 (блок 14) и ИМ2 (блок 24), ожидая появления активности первого или второго ведущего абонента соответственно
При появлении активности на выходе микросхемы ИМ1 микроконтроллер нулевым выходным сигналом переключает электронные переключатели S1 и S2 в нормально закрытое состояние (нижнее по схеме), соединяя микросхему ИМ1 с микросхемой ИМ3 (блок 15). Далее через микросхему ИМ1, электронный переключатель S1 и микросхему ИМ3 происходит передача запроса первого ведущего абонента в сеть RS-485 (блоки 16, 17), ожидание ответа из сети (блоки 18-22) и получение ответа (блоки 23, 34), как описано выше.
При появлении активности на выходе микросхемы ИМ2 микроконтроллер единичным выходным сигналом переключает контакты электронных переключателей S1 и S2 в верхнее (по схеме) положение, соединяя микросхему ИМ2 с микросхемой ИМ3 (блок 25). Далее через микросхему ИМ2 переключатель S1 и микросхему ИМ3 происходит посылка запроса второго ведущего абонента в сеть RS-485 (блоки 26, 27), ожидание ответа из сети (блоки 28-32) и получение ответа (блоки 33, 34), как описано выше.
Как видно из алгоритма работы устройства, включение арбитра в сеть RS-485 и поочередные подключения ведущих абонентов к сети, а также переключения направления передачи информации производятся в моменты наступления паузы активности в сети, что значительно снижает вероятность конфликтов в сети и порчи передаваемых сообщений. Если коллизия все же произойдет, то она разрешается ведущими абонентами путем повторной посылки запроса и получения ответа от ведомого абонента.