Настройка связи Modbus между ПЛК100 фирмы ОВЕН и программируемым терминалом NB фирмы Omron.

  1. Введение;
  2. Физическое подключение интерфейса RS485;
  3. Настройка протокола Modbus RTU в CodeSys v2.3;
  4. Настройка протокола Modbus RTU в NB-Designer v1.38 (150416);
  5. Передача данных;

Введение (или немного воды)

Упрощенная терминология:

  • Интерфейс – физическая реализация связи, с сигналами, установленного назначения и определенных уровней;
  • Протокол – программная реализация связи, с определенным форматом сообщения. Протокол можно реализовать на разных физических интерфейсах;
У многих начинающих программистов возникают проблемы при настройке связи по различным протоколам. Один из самых распространенных протоколов является Modbus. Сложность в первую очередь возникает в том, что нужно связать устройства разных фирм и, соответственно, хорошо изучить документацию обоих устройств. В данной статье разберем настройку связи контроллера фирмы ОВЕН – ПЛК100-220.Р.М и программируемого терминала фирмы Omron – NB5Q-TW01B. Принципы, описанные в статье можно распространить на другие устройства. Рекомендуемая документация:
  • Конфигурирование области ввода/вывода ПЛК. Руководство пользователя. Овен.
  • Cat.No.V108-E1-07. Programmable Terminals. HOST CONNECTION MANUAL. Omron.
Как правило, программируемые терминалы имеют большие возможности по подключению управляющих устройств. Например, Терминал NB5Q-TW01B имеет возможность подключения к ПЛК Allen-Bradley(AB), Delta Electronics, GE, LSIS, Mitsubishi, Omron, Panasonic Industrial Devices SUNX, Schneider, Siemens, Keyence. Это значит, что терминалом поддерживается протокол производителя, а настройка такого соединения займет минимум времени. Если контроллера используемой фирмы, как в нашем случае, не оказалось, единственной возможностью остается использовать «открытый» протокол. В терминале NB к таким относятся Modbus RTU, Modbus ASCII, Modbus TCP. Остановим наш выбор на протоколе Modbus RTU.

Физическое подключение интерфейса RS485(А и В сидели на трубе)

Modbus может быть настроен как на итерфейсе RS232, таки и на RS485. МЫ будем использовать интерфейс RS485 с его настройкой на протокол Modbus RTU. В документации Omron находим схему подключения:

Со стороны терминала распаиваем разъем D-Sub 9-pin для порта COM2, со стороны контроллера соответствующие провода подключаем на клеммы А-В.

Настройка протокола Modbus RTU в CodeSys v2.3

В этой статье не стоит задача разобраться с программированием в CodeSys, поэтому базовые понятия разбираться не будут. Рассмотрим один из возможных вариантов настройки Modbus, через конфигуркцию контроллера. Для этого во вкладке «Ресурсы» открываем окно «Конфигурация ПЛК»

В окне отображаются физические каналы контроллера (дискретные входы и выходы). Для передачи по Modbus, необходимо добавить его в конфигурацию. Это делается с помощью контекстного меню. Выбираем подэлемент “Modbus(Master)” , Master –потому, что ПЛК в нашей сети будет главным и отсылать запрос на остальные устройства (терминал в нашем случае).

В конфигурации появляется модуль Modbus с настройками. По умолчанию Modbus назначается первому попавшемуся порту «Debug RS-232».

Меняем его на требуемый нам «RS-485-1»

Далее, наконец, мы можем сделать минимальные настройки формата обмена. Для начала скорость обмена ставим 9600 и меняем формат с ASCII на RTU

Таким образом, у нас сконфигурирован Master, но нет ни одного устройства, с которым этот Master будет общаться. Нужно добавить наш терминал в конфигурацию, произвести его настройку и добавить области памяти для обмена. В качестве внешнего ведомого устройства выбираем «Universal Modbus device…» - это любое устройство, для которого фирма Овен не написала конфигурацию.

Настройка протокола Modbus RTU в NB-Designer v1.38 (150416)

В проекте терминала вставляем модель нашего терминала и контроллер с интерфейсом Modbus RTU Slave. На самом деле это интерфейс по которому будет соединяться терминал с контроллером, т.е. в данном случае терминал будет Slave. Коннектор подключаем к порту COM2, т.к. только там есть RS485.

В свойствах терминала (двойной клик на терминале) открываем настройки порта (COM2 Settings). Выделенные настройки должны совпадать с настройками, сделанными в контроллере, а «Device№» должен быть уникальным для всех устройств Slave, если их несколько.

В документации на терминал находим распределение регистров для интерфейса Modbus RTU Slave : Битовые адреса буду находится в системной области от LB0 до LB8999, регистры данных – LW0 до LW8999. Битовые адреса будем использовать для кнопок и ламп, регистры для задания и отображения чисел. Создадим тестовый экран с кнопками с адресами LB0 -7, лампы LB8-15, Регистры ввода и отображения чисел соответственно LW0 и LW1.

Теперь в «Конфигураторе ПЛК» нужно указать, какими данным мы будем обмениваться. Для кнопок создаем «8 bit input module», для ламп «8 bit output module», Register input и output соответственно, для задания и отображения числа. Вход и выход здесь указывается относительно ПЛК.

Для того, чтобы ПЛК знал, к каким ячейкам терминала обращаться в настройках каждого модуля необходимо прописать номер регистра обращения. В терминале битовые регистры и регистры данных находятся в разных областях, и счет у обеих начинается с 0. Таким образом, получается:

  • 8 bit input module – регистр 0 (заняты регистры от 0 до 7);
  • 8 bit output module – регистр 8 (заняты регистры от 8 до 15);
  • Register input module – регистр 0;
  • Register output module – регистр 1;

Таким же образом можно добавить еще битовые и числовые регистры в требуемом объеме, не превышая ограничений сети.

Передача даных (не всегда бывает так гладко)

Остается только проверить работоспособность созданного проекта. Нажимаем кнопку на терминале, форсируем состояние ламп, задаем значение в ячейку ввода на терминале, и ячейку вывода в CodeSys - передача всех регистров осуществляется успешно.

Соблюдая описанную последовательность действий можно успешно настроить связь с ПЛК100 с треминалом NB.

Вернуться к списку статей

Отзывы о пройденном обучении