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

Реализация сервера Modbus RTU с помощью интерфейсного модуля FASTWEL и ПО CoDeSys

1562 0

В статье рассмотрена интеграция программируемого логического контроллера CPM713 компании FASTWEL, работающего на базе протокола Modbus TCP, с панелью оператора Weintek, поддерживающей последовательный вариант протокола Modbus RTU/ASCII, с помощью интерфейсного модуля NIM742 и готовой библиотеки для адаптированной к FASTWEL среды CoDeSys.

Введение 

Промышленные протоколы на базе сетей Ethernet приобретают всё большую популярность. Использование данной технологии в промышленных системах имеет такие преимущества, как возможность гибкой модернизации и масштабирования системы, простота построения архитектуры и невысокая стоимость создания сетей [1]. Однако внедрение новых технологий в области АСУ ТП происходит достаточно медленно, поэтому до сих пор многими устройствами используются традиционные промышленные сети на базе последовательных шин. 
При создании автоматизированных систем нередко требуется наладить обмен данными между устройствами, поддерживающими различные протоколы обмена данными или различные модификации одного и того же протокола.
Так, контроллер CPM713 компании FASTWEL использует для передачи данных протокол Modbus TCP на базе сетей Ethernet [2]. При работе с данным контроллером возникла задача получать и передавать данные с панели оператора MT6100i компании Weintek, поддерживающей последовательный протокол Modbus RTU/ASCII (рис. 1). 

Использование бесшовной интеграции устройств всегда является приоритетным по сравнению с применением шлюзов сторонних производителей, поэтому для решения данной задачи был взят интерфейсный модуль NIM742 компании FASTWEL, позволяющий подключать устройства с интерфейсом RS-232 и работать с ними через пользовательскую программу контроллера CPM713.
Модуль NIM742 совместно с пользовательской программой контроллера CPM713 реализует работу подчинённого узла Modbus RTU. NIM742 подключается в общую линейку модулей и по шине FBUS обменивается данными с контроллером CPM713 (рис. 2).

Для обеспечения работы NIM742 с протоколом Modbus RTU используется библиотека для CoDeSys FastwelModbusServer.lib, входящая в пакет адаптации FASTWEL.

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

Для конфигурирования и программирования контроллера CPM713 и интерфейсного модуля NIM742 использовались следующие компоненты и аксессуары:
  • кабель для конфигурирования ACS00019, входящий в комплект поставки контроллера;
  • бесплатный программный пакет CoDeSys фирмы 3S Smart Software Solutions с адаптационным пакетом FASTWEL CoDeSys Adaptation для работы с FASTWEL. 
Для работы с панелью оператора Weintek MT6100i понадобились:
  • соединительные кабели для конфигурирования, которые также входят в комплект поставки;
  • бесплатное программное обеспечение для конфигурирования EasyBuilder 8000. 
Подключение интерфейсного модуля к панели оператора осуществляется с помощью соединительного кабеля. Данный кабель можно изготовить самостоятельно, используя информацию о назначении контактов, представленную в руководстве по эксплуатации панели Weintek (рис. 3).

Для связи с модулем NIM742 использовался порт COM3 (RS-232) операторской панели, в котором имеется трёхконтактное подключение для передачи данных: TxD (передача), RxD (приём) и GND (земля). 
На рис. 4  изображена схема подключения контактов модуля NIM742 к пор-ту COM3 панели оператора [3, 4].

При подключении необходимо иметь в виду, что контакт передачи данных TxD интерфейсного модуля должен подключаться к контакту приёма данных RxD панели оператора, а контакт RxD соответственно к TxD панели. 
Таким образом, для осуществления связи между панелью оператора и модулем NIM742 необходимо соединить контакты TxD и RxD с 8-м и 7-м контактами разъёма SUB-D, а землю модуля с 5-м контактом (рис. 5). 

Настройка панели оператора

Экранная форма панели оператора создаётся и конфигурируется с помощью бесплатного программного обеспечения EasyBuilder 8000. При создании нового проекта необходимо указать модель используемой панели Weintek (рис. 6). 

Далее при создании проекта необходимо отредактировать системные настройки и указать список устройств, с которыми связывается панель оператора (рис. 7).

В нашем случае это будет подчинённое устройство Modbus RTU [5].
Для используемого нами клиента настраиваются следующие параметры: расположение ПЛК, тип связи, COM-порт, скорость и режим работы (рис. 8).

Эти данные также будут указаны в рабочей программе ПЛК.
После ввода всех параметров коммуникации необходимо добавить в экранную форму элементы управления и отображения: битовые индикаторы, переключатели, цифровые индикаторы и т.д. На рис. 9 представлен внешний вид готового тестового проекта. 

Данные элементы отображения и управления связываются с переменными Modbus. Адресация переменных Modbus RTU указана в руководстве по подключению панели Weintek к ПЛК (табл. 1). 

В протоколе Modbus поддерживаются переменные четырёх типов:
  • дискретный вход (Discrete Input, 1 бит);
  • дискретный выход (Coil, 1 бит);
  • аналоговый вход (Input Register, 16 бит);
  • аналоговый выход (Holding Register, 16 бит). 
Для доступа к конкретной переменной также необходимо указать адрес в сети Modbus.
В зависимости от типа переменной для доступа к данным используются адреса вида 0х, 1х, 3х, 4х. Адрес 0x соответствует типу Coil, который является выходной переменной для записи значения в битовую переменную. Адрес 1x хранит состояние битовой переменной Discrete Input. Адрес 3x соответствует Input Register и используется для считывания состояния аналоговой переменной. Адрес 4x записывает аналоговую переменную Holding Register.
Таким образом, адрес первого переключателя будет 0x1 (рис. 10), второго – 0х2 и так далее. 

Адреса всех элементов рабочего экрана мнемосхемы представлены в табл. 2. 

Программа для ПЛК

Тестовый проект для CPM713 базируется на готовом примере для библиотеки FastwelModbusServer.lib, входящей в пакет адаптации CoDeSys для FASTWEL. Данная библиотека реализует высокую скорость работы, универсальна и проста в реализации, поэтому при организации обмена данными по протоколу Modbus RTU рекомендуется использовать именно её. FastwelModbusServer.lib реализует функциональность подчинённого узла сети ModbusRTU/ASCII через доступные пользовательской программе порты контроллера, в том числе для организации доступа к сети Modbus RTU через порт модуля NIM742.
Для организации обмена данными между пользовательским приложением и модулями ввода-вывода требуется добавить конфигурацию системы ввода-вывода согласно физическому подключению к контроллеру. В тестовом проекте мы использовали только модуль NIM742, конфигурация контроллера представлена на рис. 11. 

Библиотека FastwelModbusServer имеет единственную функцию FwModbusServerInit(), которая предназначена для инициализации и конфигурирования сервера. При вызове данной функции пользователь задаёт коммуникационные параметры узла сети и описывает области данных, которые будут отображаться на пространстве адресов сервера Modbus. Инициализация сервера происходит только из обработчика системного события OnInit, который инициализирует Modbus-сервер один раз, после включения питания и до того, как основная пользовательская программа будет запущена.
Параметры обмена данными через COM-порт указываются в самой функции в области задания локальных переменных (рис. 12).

Здесь Port – номер порта, BaudRate – скорость обмена данными, StopBit – длина стопового бита, Parity – режим контрольного бита, ByteSize – количество битов в кадре, NodeAddress – адрес устройства в сети Modbus.
Данные, которыми обменивается основная программа с панелью оператора, задаются в пользовательских типах данных PLC_PRG_IN (то, что принимается по сети) и PLC_PRG_OUT (то, что отправляется в сеть). Эти переменные представляют собой массив из четырёх переменных типа WORD, двойного слова DWORD и вещественного числа REAL (рис. 13). 

После того как экранная форма и программа загружены в соответствующие устройства, панель оператора в режиме мастера опрашивает контроллер CPM713. Рабочий экран панели оператора в режиме исполнения представлен на рис. 14. 

Далее при необходимости с помощью средств CoDeSys можно собирать данные, получаемые контроллером CPM713 по сети Modbus TCP, и перенаправлять их на панель оператора по протоколу Modbus RTU. Таким образом, с помощью средств CoDeSys и интерфейсного модуля NIM742 может быть создана бесшовная интеграция протоколов Modbus RTU и Modbus TCP. ● 

Литература

  1. Орлов С. Ethernet и промышленные сети. // Журнал сетевых решений LAN. – 2013. – № 9.
  2. FASTWEL I/O распределённая система ввода-вывода. Руководство по эксплуатации. ФАПИ.421459.700 РЭ. Версия 2.12. – М. : FASTWEL, 2009.
  3. Система ввода-вывода FASTWEL I/O. Модули ввода-вывода. Руководство программиста. ИМЕС.00300-02 33 01. Версия 2.0. – М. : FASTWEL, 2015.
  4. Weintek MT-600/8000 series. MT-607i, MT-8070iH / MT-6070iH. Installation Instruction [Электронный ресурс] // Режим доступа : http://weintekhmi.com/Installation/GME607080_MT607i_MT6070iH_MT8070iH_Installation_120409.pdf.
  5. Руководство пользователя EasyBuilder 8000 [Электронный ресурс] // Режим доступа : ftp://ftp.prosoft.ru/pub/Hardware/Weintek/MT8000/EasyBuilder/UserManual_separate_chapter/EB8000_rus.pdf.
Авторы – сотрудники компании FASTWEL и фирмы ПРОСОФТ
Телефон: (495) 234-0636
E-mail: info@prosoft.ru
1562 0
Комментарии
Рекомендуем

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