Использование операторских панелей Weintek в связке с контроллером ОВЕН ПЛК 110-60
Использование операторских панелей Weintek в связке с контроллером ОВЕН ПЛК 110-60
Эта статья может быть полезна будущим, или нынешним системным интеграторам и другим специалистам в области промышленной автоматизации, которым требуется разработать проект автоматизации с использованием операторских панелей Weintek и необходимо начать, или, так сказать, «зацепиться», используя какой-нибудь пример.
В примере будут использованы две панели Weintek MT8071iE, хотя, это могут быть любые другие модели, главное условие – наличие у одной из них Ethernet. В качестве программируемого логического контроллера будет использован ОВЕН ПЛК 110-60 (далее ПЛК).
Предлагается испытать ПЛК в качестве Modbus-сервера, работающего сразу по двум интерфейсам RS-485 и Ethernet. Одна панель подключена к ПЛК по RS-485 и протоколу Modbus RTU, вторая панель подключена по Ethernet и протоколу Modbus TCP. При этом Modbus-сервер остается один и тот же для обеих панелей. Таким образом, одна панель может зафиксировать изменения регистров сервера, сделанные другой панелью.
Выбранный для тестирования ПЛК, судя по маркировке «110-220.60.P-L», имеет напряжение питания 220 Вольт, 24 релейных выхода и 36 дискретных входов. Все модели панелей оператора Weintek имеют напряжение питания 24 Вольта, таким образом, для нашего примера понадобится два источника питания: 220В переменного и 24В постоянного тока.
Детальное описание разъемов можно посмотреть в инструкции по инсталляции MT8071iE. Описание контактов ПЛК в схемах подключения ОВЕН ПЛК 110-60. Принципиальная схема соединений нашего оборудования выглядит так:
HMI-1 и HMI-2 необходимо запитать от блока питания на 24 В, а ПЛК от сети 220В. HMI-1 соединяем с ПЛК с помощью прямого Ethernet-кабеля. HMI-2 COM1 RS-485 соединяем с выводами А1,В1 ПЛК двужильным кабелем.
Чтобы максимально упростить пример, ПЛК будет предоставлять через Modbus-сервер доступ к 16 входам и 16 выходам, а панели оператора будут клиентами этого сервера. Они будут отображать состояние 16 входов ПЛК и предоставлять пользователю возможность включить/выключить каждый из 16 выходов.
Разработка пользовательской программы для ПЛК 110-60 в среде программирования CoDeSys 2.3.
Процедура установки среды CoDeSys 2.3 и сопутствующие действия описаны в документации на официальном сайте ОВЕН. После установки самой среды, потребуется также установить набор target-файлов для того чтобы CoDeSys мог работать с целевым контроллером. После создания проекта и выбора целевого контроллера, первое, что потребуется сделать, - это настроить конфигурацию ПЛК:
Такой список элементов конфигурации доступен по умолчанию для ПЛК110-60. В нем представлены все физические входы/выходы, доступные пользователю. К этому списку необходимо добавить новый элемент «Modbus-slave» через контекстное меню следующим образом:
Этот модуль будет отвечать за функционирование Modbus-сервера. После создания модуля конфигурации «Modbus-slave», необходимо настроить интерфейсы, через которые будет доступен наш сервер. Для этого добавим к элементу Modbus[FIX] два подэлемента RS-485-1 и TCP. Единица в интерфейсе RS-485 означает номер интерфейса, всего их два, выводы интерфейсов маркированы соответствующим образом – А1,В1 и А2,В2. Каждый добавленный нами интерфейс необходимо настроить во вкладке «Параметры модуля». Для TCP зададим только номер порта, оставим значение по умолчанию (502). Для RS-485 необходимо задать скорость, четность и др. параметры последовательной передачи, в нашем примере будем использовать параметры «115200,N,8,1».
Теперь, когда интерфейсы настроены, необходимо составить карту адресов Modbus-сервера. Адреса регистров назначаются средой автоматически, по мере добавления новых регистров, в соответствующей порядку элементов последовательности. Мы будем использовать только 2-байтовые регистры, что соответствует стандарту Modbus и не вызовет трудностей с расчетом адресов. Так как ПЛК должен предоставлять прямой доступ к 16 входам и 16 выходам через регистры Modbus, будем использовать один регистр для входов и один для выходов. Таким образом, 16-битный регистр входов будет предоставлять информацию о состоянии 16 входов, по одному биту на вход, а 16-битный регистр выходов будет управлять состоянием 16 релейных выходов, по одному биту на реле.
Добавим к модулю Modbus(slave) два элемента «2 byte»:
Теперь, необходимо задать имена регистров Modbus и регистров входов/выходов, чтобы можно было использовать их в программе:
Регистры дискретных входов/выходов имеют размер 8 бит, поэтому для одного 16-битного регистра Modbus понадобится 2 таких регистра.
В итоге получаем следующее:
- IN1, IN2 - регистры дискретных входов;
- OUT1, OUT2 – регистры дискретных выходов;
- MB_IN – регистр Modbus с адресом 1;
- MB_OUT – регистр Modbus с адресом 2;
Можно переходить к написанию программы. Перейдем на вкладку “POU” и откроем основной и единственный программный компонент - PLC_PRG. Это и есть главная программа, которая выполняется циклически. Язык программы выбирается во время создания проекта, но его можно поменять в любой момент, создав новый программный компонент с нужным языком. Рассмотрим 2 варианта реализации одного и того же алгоритма, используя языки программирования ST (структурированный текст) и FBD (функциональные блоковые диаграммы). Алгоритм программы очень простой, от нее требуется только связать регистры дискретных входов/выходов с регистрами Modbus.
Программа на языке ST:
OUT1 := WORD_TO_SINT(MB_OUT); (*выделяем младший байт регистра MB_OUT и присваиваем регистру OUT1.*)
OUT2 := WORD_TO_SINT(SHR(MB_OUT,8)); (*выделяем старший байт регистра MB_OUT и присваиваем регистру OUT2.*)
MB_IN := IN1 + IN2*256; (*размещаем регистр IN1 в младшем байте регистра MB_IN, а IN2 в старшем.*)
Программа на языке FBD:
Программы идентичны и, как можно видеть, цепи 1,2,3 на языке FBD соответствуют строкам 1,2,3 на языке ST. Единственное отличие в том, что для перемещения старшего байта на место младшего на языке FBD используется функция деления(DIV), а на языке ST используется функция сдвига(SHR). Кстати, если запустить автоматическое преобразование языка из ST в FBD получится та же самая диаграмма, только вместо блока деления DIV будет блок сдвига SHR.
Программа готова. Чтобы загрузить ее, необходимо подключить ПЛК к USB-порту компьютера и установить соответствующий драйвер. Выбираем пункт меню «онлайн/параметры связи» и указываем номер порта, на который установился ПЛК:
После подключения и загрузки программы, можно задать IP-адрес, это потребуется для подключения панели к ПЛК по Ethernet. Для этого воспользуемся ПЛК-браузером:
Командой SetIP зададим IP-адрес, пусть это будет 192.168.0.2. Этот адрес в дальнейшем потребуется указать при создании проекта для панели оператора HMI-1.
Разработка проекта для панели оператора HMI-1.
Среду разработки EasyBuilder для панелей Weintek можно скачать на нашем сайте. ПО абсолютно бесплатное и может использоваться без ограничений. Существует две версии – EasyBuilder8000 и EasyBuilderPro, они для разных серий панелей, но по использованию одинаковы.
Для того, чтобы панели Weintek обладали одинаковым функционалом, достаточно сделать один проект для любого из интерфейсов, а для другой панели в уже готовом проекте интерфейс связи поменять. Начнем с проекта для панели с Ethernet. После запуска EasyBuilder и выбора типа панели, сразу же появятся системные настройки, в которых необходимо добавить интерфейс связи:
Во вкладке «Устройства» нажимаем кнопку «Создать» и в параметрах нового устройства задаем следующие настройки:
Здесь надо обратить внимание на «Тип ПЛК», «ПЛК I/F» и «IP», остальные параметры установлены по умолчанию. IP-адрес – адрес ПЛК, который мы задавали в ПЛК-браузере. Порт 502, такой же должен быть в проекте CoDeSys. Нажимаем кнопку “OK” и закрываем окно, связь настроена.
Теперь, для удобства привязки объектов к адресам ПЛК создадим библиотеку адресных меток. Для этого выбираем пункт меню «Библиотека/Адресные ярлыки», появится следующее окно:
Здесь можно вручную создать каждую метку, указав устройство и адрес. Имя метки – это имя, которое будет использоваться во время привязки объекта. В нашем примере мы будем создавать 16 объектов-индикаторов входов и 16 объектов-тумблеров, каждый из этих объектов будет привязываться к одному из битов регистра Modbus, поэтому необходимо создать 32 адресных метки с типом адреса «бит». Привязка к биту 16-битного регистра в EasyBuilder осуществляется заданием типа 16-битного регистра, адреса регистра и номера бита. Адрес регистра и номер бита указываются в одном поле без знаков разделения, номер бита указывается двумя десятичными знаками. В нашем ПЛК регистры типов «3х» (Input registers) и «4х» (Holding Registers) ссылаются на одну область памяти, поэтому для индикаторов состояния дискретных входов можно выбрать и тот и другой тип. Номер регистра входов – 1, адрес нулевого бита будет выглядеть так – «100»(1-первый регистр, 00-нулевой бит), следующий – «101» и т.д., и т.п. Тумблеры необходимо привязывать к регистрам типа «4х», потому что регистры «3х» доступны только для чтения.
Более удобный и быстрый способ редактирования библиотеки меток – создание/редактирование таблицы в формате Excel или CSV. Можно создать пару меток и экспортировать библиотеку в файл, затем этот файл отредактировать в табличном редакторе. Должно получиться примерно следующее:
Relay1 |
MODBUS |
4x_Bit |
200 |
Relay2 |
MODBUS |
4x_Bit |
201 |
Relay3 |
MODBUS |
4x_Bit |
202 |
Relay4 |
MODBUS |
4x_Bit |
203 |
Relay5 |
MODBUS |
4x_Bit |
204 |
Relay6 |
MODBUS |
4x_Bit |
205 |
Relay7 |
MODBUS |
4x_Bit |
206 |
Relay8 |
MODBUS |
4x_Bit |
207 |
Relay9 |
MODBUS |
4x_Bit |
208 |
Relay10 |
MODBUS |
4x_Bit |
209 |
Relay11 |
MODBUS |
4x_Bit |
210 |
Relay12 |
MODBUS |
4x_Bit |
211 |
Relay13 |
MODBUS |
4x_Bit |
212 |
Relay14 |
MODBUS |
4x_Bit |
213 |
Relay15 |
MODBUS |
4x_Bit |
214 |
Relay16 |
MODBUS |
4x_Bit |
215 |
Input1 |
MODBUS |
4x_Bit |
100 |
Input2 |
MODBUS |
4x_Bit |
101 |
Input3 |
MODBUS |
4x_Bit |
102 |
Input4 |
MODBUS |
4x_Bit |
103 |
Input5 |
MODBUS |
4x_Bit |
104 |
Input6 |
MODBUS |
4x_Bit |
105 |
Input7 |
MODBUS |
4x_Bit |
106 |
Input8 |
MODBUS |
4x_Bit |
107 |
Input9 |
MODBUS |
4x_Bit |
108 |
Input10 |
MODBUS |
4x_Bit |
109 |
Input11 |
MODBUS |
4x_Bit |
110 |
Input12 |
MODBUS |
4x_Bit |
111 |
Input13 |
MODBUS |
4x_Bit |
112 |
Input14 |
MODBUS |
4x_Bit |
113 |
Input15 |
MODBUS |
4x_Bit |
114 |
Input16 |
MODBUS |
4x_Bit |
115 |
RelayReg |
MODBUS |
4x |
2 |
InputReg |
MODBUS |
4x |
1 |
Большинство строк получается автозаполнением. Кроме битовых адресных меток, в таблице имеются метки целых регистров, для полного доступа.
Далее, разместим в главном окне следующие объекты:
- 16 битовых индикаторов.
- 16 тумблеров (битовых переключателей).
- 2 байтовые кнопки для быстрого включения и выключения всех релейных выходов.
Необходимо настроить расположение, внешний вид и связать наши объекты с адресными метками. Для каждого битового объекта есть своя метка, поэтому ее просто необходимо выбрать в настройках объекта:
Байтовые кнопки привязываем к метке «RelayReg». Для настройки действия кнопки в атрибутах объекта есть соответствующий пункт:
Кнопка «вниз» должна выключать все релейные выходы, а кнопка «вверх» наоборот, включать. Поэтому в поле «установить значение» кнопке «вниз» прописываем «0», а кнопке «вверх» значение «65535», что соответствует высокому уровню во всех шестнадцати битах регистра. Проект для панели с Ethernet готов, осталось загрузить его и в самой панели настроить IP-адрес, например 192.168.0.1. Проверяем:
Разработка проекта для панели оператора HMI-2.
Для второй панели мы возьмем тот же самый проект и сделаем небольшое изменение в нем. В Системных настройках (Правка/Системные настройки), во вкладке «Устройства» выбираем ранее настроенное устройство «MODBUS» и нажимаем кнопку «Параметры». Меняем тип ПЛК на «MODBUS RTU», выбираем интерфейс «RS-485 2W» и выставляем параметры связи «115200, N, 8, 1». «ОК». Закрываем, компилируем и заливаем в панель HMI-2. Готово.
Проекты для панелей можно протестировать на компьютере, для этого в EasyBuilder есть режим онлайн-симуляции, то есть проект запускается в самой среде и использует коммуникационные интерфейсы компьютера для подключения к ПЛК. Проект HMI-1 для симуляции потребует соединение компьютера с ПЛК по сети, а проект для HMI-2 потребует наличие последовательного порта COM1 реального, или виртуального. Для соединения компьютера с ПЛК по интерфейсу RS485 можно использовать преобразователь интерфейса USB-RS485, например ОВЕН АС4.
Иван Морев