Использование операторских панелей Weintek в связке с контроллером ОВЕН ПЛК 110-60

03.06.2014

Эта статья может быть полезна будущим, или нынешним системным интеграторам и другим специалистам в области промышленной автоматизации, которым требуется разработать проект автоматизации с использованием операторских панелей Weintek и необходимо начать, или, так сказать, «зацепиться», используя какой-нибудь пример.

В примере будут использованы  две панели Weintek MT8070iE, хотя, это могут быть любые другие модели, главное условие – наличие у одной из них 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В постоянного тока.

Детальное описание разъемов можно посмотреть в инструкции по инсталляции MT8070iE. Описание контактов ПЛК в схемах подключения ОВЕН ПЛК 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 и сопутствующие действия описаны в документации на официальном сайте ОВЕН http://www.owen.ru. После установки самой среды, потребуется также установить набор 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 таких регистра.

В итоге получаем следующее:

  1. IN1, IN2  - регистры дискретных входов;
  2. OUT1, OUT2 – регистры дискретных выходов;
  3. MB_IN – регистр Modbus с адресом 1;
  4. 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 можно скачать на сайте http://www.weintek.net/. ПО абсолютно бесплатное и может использоваться без ограничений. Существует две версии – 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

 

Большинство строк получается автозаполнением. Кроме битовых адресных меток, в таблице имеются метки целых регистров, для полного доступа.

Далее, разместим в главном окне следующие объекты:

  1. 16 битовых индикаторов.
  2. 16 тумблеров (битовых переключателей).
  3. 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.