Фильтр по тематике

Программируемый контроллер WAGO 750-880 в режиме Master

2797 0

Протоколу Modbus уже много лет, тем не менее, он до сих пор не теряет актуальность и активно применяется во многих современных ПЛК. В статье рассматривается решение задачи организации обмена данными по протоколу Modbus TCP между контроллерами WAGO 750-880 с помощью специальной библиотеки ModbusEthernet_04.lib, поставляемой компанией WAGO.

Введение

При разработке автоматизированных систем часто возникает задача передачи информации с одного контроллера на другой. Осуществляется это с помощью специализированных промышленных сетей. На сегодняшний день спектр таких сетей довольно широк (CAN, FIP, PROFIBUS, ControlNet, DH+, Modbus RTU, Modbus TCP/IP, Modbus Plus, Genius, DirectNet, DeviceNet, INTERBUS, SDS, AS-i, HART и ещё несколько десятков протоколов).

Протокол Modbus и одноимённая сеть являются самыми распространёнными в мире. Несмотря на свой возраст (стандартом де-факто Modbus стал ещё в 1979 году), Modbus не только не устарел, но, наоборот, существенно возросло количество новых разработок и объём организационной поддержки этого протокола. Миллионы Modbus-уст­ройств по всему миру продолжают успешно работать [1].

Преимуществами Modbus являются отсутствие необходимости в специальных интерфейсных контроллерах (PROFIBUS и CAN требуют для своей реализации заказных микросхем), простота программной реализации и элегантность принципов функционирования. Всё это снижает затраты на освоение стандарта как системными интеграторами, так и разработчиками контроллерного оборудования. Высокая степень открытости протокола обеспечивается бесплатными текстами стандартов, которые можно скачать с сайта www.modbus.org.

Протокол привлекает простотой логики и независимостью от типа интерфейса (RS-232, RS-422, RS-485 или же токовая петля 20 мА). Modbus работает по принципу Master/Slave (ведущий/ведомый). Конфигурация на основе этого протокола предполагает наличие одного Master-узла и до 247 Slave-узлов. Только Master инициирует циклы обмена данными.

Modbus поддерживает 4 типа данных:
  1. Discrete Inputs – один бит, доступен только для чтения;
  2. Coils – один бит, доступен для чтения и записи;
  3. Input Registers – 16-битовый беззнаковый или знаковый тип, доступен только для чтения;
  4. Holding Registers – 16-битовый беззнаковый или знаковый тип, доступен для чтения и записи.
Разновидностями Modbus являются протоколы Modbus Plus – многомастерный протокол с кольцевой передачей маркера и Modbus TCP, рассчитанный на использование в сетях Ethernet и Интернет [1].

В данной статье будет рассмотрен обмен данными между контроллерами с помощью протокола Modbus TCP.

Modbus TCP – это сетевой протокол обмена данными, который представляет собой симбиоз RTU-спецификации протокола и Ethernet TCP/IP. Наряду с RTU и Plus, Modbus TCP использует тот же прикладной уровень сетевой модели, где и достигается совместимость на уровне обработки данных. Протокол TCP/IP устроен по принципу «клиент–сервер». Для обмена данными клиент открывает сеанс связи с сервером, указывая его адрес.

Многие производители выпускают процессорные модули, которые могут работать как в режиме приёма данных, так и передачи. Так, контроллер WAGO 750-880 использует для передачи данных протокол Modbus TCP на базе сети Ethernet и оснащён двумя портами RJ-45. Контроллер может работать как в режиме Master, так и в режиме Slave. Рассмотрим задачу организации передачи данных с одного контроллера на другой, при этом один из них работает в режиме Master, другой – в режиме Slave.

Эту задачу будем решать с помощью специальной библиотеки ModbusEthernet_04.lib [2].

Подключение устройств

Для организации передачи данных один из контроллеров (Master) необходимо подключить в сеть Ethernet, для этого нужно использовать один из портов Ethernet, другой порт задействуем для связи с подчинённым контроллером (рис. 1).

Оба контроллера имеют одинаковую конфигурацию:
  1. 750-880 – программируемый контроллер узла сети Ethernet TCP/IP 10/100 Mбит/с;
  2. 750-1405 – 16-канальный модуль дискретного ввода, 24 В;
  3. 750-1504 – 16-канальный модуль дискретного вывода, 24 В, 0,5 A;
  4. 750-454 – 2-канальный модуль аналогового ввода, дифференциальный, 4–20 мА;
  5. 750-560 – 2-канальный модуль аналогового вывода, 0–10 В;
  6. 750-600 – оконечный модуль.
Конфигурирование и программирование контроллеров WAGO I/O осуществляется в бесплатном программном пакете CODESYS v2.3 компании 3S Smart Software Solutions с установленным пакетом адаптации.

Для организации работы контроллера в режиме Master можно воспользоваться библиотекой ModbusEthernet_04.lib, входящей в пакет адаптации CODESYS для WAGO. После установки пакета адаптации библиотеку можно найти в директории C:\Program Files\WAGO Software\CoDeSys V2.3\Targets\WAGO\Libraries\Application.

Программа для контроллера, работающего в режиме Slave

Для управления физическими выходами системы WAGO необходимо дополнительно настроить Modbus-переменные контроллера в качестве посредников между физическими каналами и переменными верхнего уровня. Создадим эти переменные. Последовательность действий:
1. Откройте PLC Configuration на вкладке Resources и разверните ветку K-bus.
2. Нажмите правой кнопкой мыши на Flag Variables и выберите Edit.
3. В открывшемся окне создайте переменные Flag для дискретных и аналоговых каналов, как показано на рис. 2.


В программе необходимо присвоить значения переменных Flag выходным физическим каналам. Вы можете использовать адреса переменных или их имена. Пример присвоения показан на рис. 3, где do1, do2, do3 – имена выходных дискретных каналов, ao1 – имя аналогового канала.

Программа для контроллера, работающего в режиме Master

Добавим в проект контроллера, работающего в режиме Master, библиотеку ModbusEthernet_04.lib, при этом автоматически будут добавлены ещё две библиотеки: Ethernet.lib* и mod_com.lib* (рис. 4).

В этой библиотеке будем использовать функциональный блок ETHER-NET_MOD­BUSMAS­TER_UDP (рис. 5).

В табл. 1 и 2 приведены входные и выходные параметры блока соответственно.


Для использования блока ETHERNET_MODBUSMASTER_UDP объявим в программе переменные, как показано в листинге 1.

На рис. 6 показан код проекта на языке LD.

Обратите внимание на необходимость использования функционального блока с дополнительным входом EN. Для этого при добавлении блока в программу необходимо выбрать пункт меню Box with EN.

Согласно таблицам распределения Modbus-адресов контроллера WAGO 750-880, приведённым в документации [3] (можно загрузить с технического портала https://tp.prosoft.ru/ или с сайта компании WAGO), адресация флаговых переменных начинается с адреса 12288, поэтому начальное значение StartWrite_ADDRESS зададим равным 12288.

Для чтения аппаратных входов подчинённого контроллера начальное значение переменной StartREAD_ADDRESS лежит в диапазоне 0…255 для аналоговых и 0…511 для дискретных переменных. Для чтения аппаратных выходов начальное значение переменной StartREAD_ADDRESS лежит в диапазоне 256…511 для аналоговых и 512…1023 для дискретных переменных.

На рис. 7 показан результат работы программы в режиме исполнения. В первый элемент массива InData записываются данные входных каналов аналогового модуля 750-454, во второй – дискретного 750-1405. Первый элемент массива OutData записывает значения в дискретный модуль вывода 750-1504, второй – в модуль аналогового вывода 750-560.

В рассмотренном примере аналоговые и дискретные входные данные считываются в один массив InData, что, возможно, не очень удобно. Для разделения этих данных можно использовать несколько экземпляров функционального блока ETHERNET_MODBUSMASTER_UDP с разными кодами функции Modbus (входной параметр bFUNCTION_CODE). Аналогично можно поступить и с выходными данными.

Заключение

Приведённый пример наглядно показывает, насколько просто можно организовать связь между двумя ПЛК WAGO по протоколу Modbus. А наличие специализированных библиотек делает данный процесс интуитивно понятным, не требующим лишних и точных действий от разработчика. ●

Литература

  1. Денисенко В.В. Протоколы и сети Modbus и Modbus TCP // Современные технологии автоматизации. – 2010. – № 4.
  2. ModbusEthernet_04.lib [Электронный ресурс] // Сайт компании WAGO. – Режим доступа : http://www.wago.us/appnoteadmin/libraries23/ModbusEthernet_04/
    public/ModbusEthernet_04_en.pdf
    .
  3. WAGO-I/O-SYSTEM 750 Ethernet Programmable Fieldbus Controller 750-880, 750-880/025-000 : Manual [Электронный ресурс] // Сайт компании WAGO. – Режим доступа : http://www.wago.us/media/us/collection/products/gamechanger/
    m07500880_00000000_0en.pdf
    .
Автор – сотрудник фирмы ПРОСОФТ
Телефон: (495) 234-0636
E-mail: info@prosoft.ru
2797 0
Комментарии
Рекомендуем

ООО «ПРОСОФТ» 7724020910 2SDnjdbfYK3
ООО «ПРОСОФТ» 7724020910 2SDnjdbfYK3