Пример проекта для панели Weintek, демо проект
Предисловие
Панели оператор используются для взаимодействия человека с системой управления чем-либо, например, технологическим процессом переработки нефти или дизель-генератором и т.п..
Примечание: Не всем системам управления необходим контакт с пользователем, например, ABS в автомобиле работает без участия человека.
Примеры шкафов управления без панели оператора и с панелью оператора:
Шкаф управления без панели | Шкаф управления с панелью |
Панели оператора позволяют увеличить плотность информации на единицу площади шкафа/щита (громоздкие стрелочные/индикаторные приборы заменяются числовыми выводами и миниатюрными анимациями на экране панели), панель позволяет регистрировать аварийные события (появление, исчезновение, подтверждение оператором), отображать хронологию технологических параметров в виде кривых на графике, передавать информацию другим устройствам и многое другое.
Рассмотрим простой пример проекта для панели оператора, в котором будет базовый набор всего необходимого:
- сбор данных;
- отображение состояния технологического процесса в виде мнемосхем;
- регистрация аварийных событий (тревог, алармов);
- запись значений технологических величин для отображения их в виде графиков (тренды);
- отправка команд в систему управления технологическим процессом (в ПЛК, уставки);
- разделение прав доступа к различным объектам управления/наблюдения (пользователи , пароли);
- интерфейс на английском и русском языке;
- отображение состояния объектов/устройств текстом.
Дано:
- ПЛК, связь с панелью оператора по Modbus TCP;
- панель оператора Weintek MT8071iP.
Содержание:
- Знакомство EasyBuilder Pro
- Создание нового проекта
- Создание окон с мнемосхемами
- Рисование мнемосхем
- Создание трендов
- Создания алармов
- Создание пользователей/паролей
- Создание простого макроса
- Загрузка проекта в панель и запуск
1. Знакомство EasyBuilder Pro
В верхней части окна EasyBuilder Pro расположены следующие вкладки с инструментами:
- Домой;
- Проект;
- Объект;
- Данные/История
- IIot/Энергетика;
- Вид;
- Инструменты.
Вкладка "Домой"
На вкладке "Домой" находятся инструменты работы с буфером обмена, кнопка вызова окна системных параметров проекта, органы управления выравниванием графических объектов в окне, органы управления параметрами шрифтов, органы смены состояния/языка в режиме разработки.
Вкладка "Проект"
На вкладке "Проект" находятся органы управления проектом:
- кнопка вызова окна редактирования текста системных сообщений;
- кнопка вызова окна выбора количества языков в проекте и шрифтов;
- команда на компиляцию проекта;
- кнопка запуска онлайн симуляции (симулятор подключается к ПЛК);
- кнопка запуска оффлайн симуляции (теги всех устройств создаются в памяти ПК);
- кнопка вызова окна загрузки проекта в панель по сети/usb;
- кнопка вызова окна для создание файлов для загрузки проекта через USB флешку или SD карту;
- команда на перезагрузку панели;
- кнопка вызова Библиотеки фигур;
- кнопка вызова Библиотеки изображений;
- кнопка вызова Библиотеки меток;
- кнопка вызова окна с макросами;
- кнопка вызова Библиотеки адресных меток;
- кнопка вызова Библиотеки групп (сгруппированных объектов);
- кнопка вызова Библиотеки звуков;
- кнопка вызова окна Библиотеки Контрольных знаков (управляющих токенов, только в cMT/cMT_X сериях).
Вкладка "Объект"
На вкладке "Объект" находятся объекты, которые можно использовать в проекте:
- блок "Рисовать" содержит графические примитивы типа линии, окружности, прямоугольника, текста;
- блок "Лампа" содержит объекты для отображения значения бита или комбинации бит;
- блок "Кнопка/переключатель" содержит объекты "Битовая кнопка", "Числовая кнопка", Многофункциональный переключатель, "Функциональная кнопка", "Комбинированная кнопка", "Ползунок", "Список опций";
- блок "Число" содержит объекты для ввода/вывода чисел и строк: "Число", "ASCII";
- блок "Иллюстрации" содержит объекты для различных диаграмм (круговая диаграмма, двумерный график, цифровой индикатор и т.п. ) и анимаций (перемещение, масштабирование и т.п.);
- блок "Триггеры" позволяет создавать команды на выполнение некоторых действий (например, открыть определенное окно по команде с ПЛК или сделать скриншот) при определенных значениях тегов;
- блок "Другое" содержит объекты для управления встроенными окнами, объекты отображения медиа контента, для работы с штрих-кодами, файловый проводник, объект для работы с JavaScript и т.д.
Вкладка "Данные/История"
На вкладке " Данные/История " находятся объекты для:
- управления трендами (выборка данных);
- алармами (тревоги/событии/аварии);
- базой данных рецептов;
- резервным копированием;
- журналированием действий оператора (нажатие на кнопки, ввод новых значений и т.п.);
- работы с базами данных;
- работы с FTP серверами.
Вкладка "IIot/Энергетика"
На вкладке " IIot/Энергетика" находятся объекты для:
- работы с MQTT:
- конфигурирования панели как OPC UA сервера.
Вкладка "Вид"
На вкладке "Вид " находятся органы управления внешним видом EasyBuilder Pro:
- различные окна;
- адреса у объектов, имена объектов, комментарии;
- сетка, направляющие, управление привязкой графических объектов к узлам сетки;
- окна библиотек в правой части окна EasyBuilder Pro (библиотеки фигур, изображений, звуков и т.п.);
- управление масштабом, позиционированием дочерних окон.
Вкладка "Инструменты"
На вкладке "Инструменты" находятся кнопки вызова утилит из комплекта EasyBuilder Pro:
- Конвертер данных (EasyConverter);
- просмотрщик адресов;
- EasyWatch;
- административные инструменты;
- редактор системных настроек;
- редактор базы данных рецептов;
- cMT Viewer;
- Codesys (если установлен в системе).
Вкладка "Weincloud"
На вкладке " Weincloud " находятся кнопки:
- вызова окна конфигурирования Дашборда;
В левой части окна EasyBuilder Pro расположены окна "Дерево окон" и "Адрес".
Панель "Дерево окон"
Панель "Адреса"
Ячейки адресов имеют следующие цветовое обозначение:
- зеленый – адрес нигде в проекте не используется;
- красный – адрес типа WORD используется в проекте;
- желтый – адрес типа BIT используется в проекте.
В правой части окна EasyBuilder Pro располагаются окна для быстрого доступа к библиотечным элементам (формы, изображения, звуки). С помощью этих окон можно производить групповую смену формы/изображения у нескольких объектов в окне проекта.
Для группового изменения формы/изображения, цвета фона/контура необходимо выделить несколько объектов (например, кнопки или битовые переключатели) в окне мнемосхемы и нажать на зеленый кружок с галкой в углу нужной формы/изображения.
Панель библиотеки фигур
Панель библиотеки изображений
Панель библиотеки звуков
2. Создание нового проекта
Проекты для панелей оператора Weintek создаются в EasyBuilder Pro. Скачать последнюю версию можно по ссылке.
Для создания проекта запускаем EasyBuiledr Pro и выбираем в меню Файл – Новое.
Окно выбора модели для нового проекта
В открывшемся окне выбираем модель панели, для которой создаем проект. В нашем проекте это будет модель MT8071iP.
Специально выбрали модель самой простой серии iP. Доступные опции по моделям/сериям можно посмотреть в сравнительной таблице.
До недавнего времени серия iP была самая ограниченная (даже не было возможности подключить сервис EasyAccess 2.0).
В данном примере мы продемонстрируем что можно создать в панели Weintek даже с минимум возможностей.
Добавляем новое устройство в проект. Подробно о подключении ПЛК читайте в статье Как подключить ПЛК к панели Weintek ?
В нашем проекте это будет Modbus TCP.
В проектах панелей Weintek можно пользоваться (привязывать) регистрами (абсолютными адресами), но это очень неудобно. Гораздо удобнее создать текстовые метки для адресов.
Для этого в проекте предназначена "Библиотека адресных меток".
Окно "Библиотека адресных меток"
Создавая текстовую метку для адреса (далее будем использовать словосочетание "адресная метка") необходимо:
- указать имя метки;
- выбрать устройство, в котором располагаются необходимые адреса;
- выбрать тип адреса (см. описание драйвера, в Modbus это будут области holding registers, input registers, coils, discrete inputs),
- указать адрес регистра, формат данных (16 бит со знаком, 16 бит без знака, с плавающей запятой и т.п.),
- добавить комментарий (описание).
Пример адресных меток
Для хранения уставок в панели будем использовать RW регистры. RW регистр сохраняет значение после обесточивания панели (после выключения, после перезагрузки).
Примечание: Располагая переменные в карте регистров устройства (в данном случае регистров Modbus) необходимо последовательно располагать те переменные, которые будут в дальнейшем учитываться в Выборке данных (трендах).
3. Создание окон с мнемосхемами
Каждое окно в проекте имеет номер. По этому номеру его можно вызывать, например, в объекте "Косвенный вызов окна".
Для пользователя доступны окна начиная с 10-го.
Окно №10 присутствует по умолчанию
В нашем примере создадим два полноэкранных окна, а нужные нам всплывающие уже есть в проекте (если не снимали флажок "Использовать шаблон" в окне создания нового проекта и проект создан на основе шаблона, например template_iP_800x480.emtp для iP серии).
Щелчок правой кнопкой мыши на окне позволят выбрать пункт "Атрибут" и изменить параметры окна (цвет фона, толщину и цвет контура, выбрать окно для переднего/заднего плана, выбрать макрос для исполнения при открытии/закрытии/отображении окна).
Окно "Параметры окна"
Создадим второе окно и переименуем его в "Уставки".
Озаглавим каждое окно мнемосхемой с помощью объекта "Текст".
Панели Weintek позволяют создавать интерфейс оператора на нескольких языках (до 24 в проекте) и переключать их в Runtime. Мы будем создавать на двух языках: русском и английском.
На вкладке "Проект" откроем окно "Язык и шрифт", оставим только два языка и дадим им соответствующие ярлыки: RU и EN.
Окно "Язык и шрифт"
Далее нам надо составить словарь языковых пар русский-английский. Для этого предусмотрена "Таблица строк", но в серии iP она недоступна. Поэтому сделаем на базе "Библиотеки меток".
Примечание: Библиотека меток предназначена для создания пар "значение – текст". Такие пары удобно использовать, когда состояние оборудования передается целым числом, а оператору надо показать осмысленным текстом.
Для статичных заголовков (когда текст зависит только от выбранного языка) мы создаем текстовую метку с одним состоянием и двумя текстами соответственно на русском и английском языке.
Окно содержания текстовой метки
Для описания состояния оборудования создаем метку с несколькими состояниями, на каждое состояние делам текст на двух языках.
Создание текстовых меток для разных состояний
Для алармов так же можно создавать языковые пары.
Текстовые метки для алармов
Примечание: минусом использования текстовых меток и библиотечных строк является отсутствие возможности изменить шрифт в каждом объект. Везде будет использован шрифт, указанный для языка в окне "Язык и шрифт".
4. Рисование мнемосхем
Мнемосхема является важной частью в процессе взаимодействия человека с машиной (ЧМИ/HMI).
Одно из определений термина мнемосхема:
Мнемосхема представляет собой наглядное графическое изображение функциональной схемы управляемого или контролируемого объекта. Это может быть технологический процесс, энергетическая система, цех станков с числовым программным управлением и т.п.
Примеры мнемосхем:
Все мнемосхемы будут создаваться в окнах.
Окно – базовое понятие графического интерфейса оператора. В общей сложности в EasyBuilder Pro можно создать и отредактировать 1997 окон, пронумерованных от 3 до 1999. Окнам посвящена глава 6 Window operations в Руководстве пользователя EasyBuilder Pro.
Типов окон в EasyBuilder Pro несколько:
- базовое (Base Window): основной тип окон для пользовательских задач;
- окно быстрого вызова (Fast Selection Window, окно №3): предназначено для создания всплывающего меню с кнопками перехода между окнами, только для MT* серий;
- общее окно (Common Window, окно №4): фон для всех окон, все, что расположено в этом окне будет видно/показано во всех других окнах;
- системные окна (System Message Window, окна №5 - №9): окна для системных сообщений, вызываются системой автоматически.
Для перехода между окнами (смены окон) мы будем использовать объекты "Функциональная кнопка" с параметром "Изменить полноэкранное окно".
На мнемосхеме будем использовать следующие графические объекты:
- "Изображение" для ёмкости;
- "Функциональная кнопка" для переключения окон, вызова всплывающего окна;
- "Линия" для изображения трубопровода между баком и насосом;
- "Текст/Комментарий" для заголовков окон, подписей технологических объектов;
- "Гистограмма" для индикации уровня в ёмкости.
Для добавления изображения емкости выберем объект "Изображение" и в Библиотеке изображений найдем подходящую картинку.
Окно параметров объекта "Изображение"
Примечание: необходимо использовать изображения без масштабирования. Если в окне мнемосхемы картинка имеет размер 100х200 пикселей, то и исходной изображение должно иметь размер 100х200 пикселей, т..е. масштаб 100%. В противном случае (любой масштаб отличный от 100%) возможно замедление работы панели (потеря отзывчивости на действия оператора, торможение и т.п.).
Изображения можно использовать не только те, что в комплекте с EasyBuilder Pro. Пользователь может импортировать в проект или в Библиотеку изображений свои картинки. Импорт изображений происходит через Менеджер изображений. Поддерживаются форматы BMP, DPD, JPG, GIF, PNG, SVG.
Окно "Менеджер изображений"
В нашем проекте мы будем отображать состояние насос тремя разными картинками, которые мы подготовили в стороннем графическом редакторе.
Конфигурация нового изображения с несколькими состояниями
Для добавления нового изображения в Менеджере изображений необходимо нажать кнопку "Добавить новое изображение".
Новое изображение будет добавлено и выделено желтым фоном. В правой части окна Менеджера изображений станет доступна кнопка "Новый", посредством которой мы сможем добавлять графические файлы.
Нам понадобиться изображение с тремя состояниями. Соответственно на каждое состояние (0, 1, 2) мы добавляем соответствующую картинку.
Для отображения насоса мы используем объект "Числовой индикатор", режим выбираем "значение", привязываем его адресной метке состояния насоса, в атрибуте указываем количество состояний 3, на вкладке "Фигура" выбираем наше изображение мотора, которое мы ранее подготовили.
Привязка к пользовательской адресной метке
Окно параметров объекта "Числовой индикатор"
Выбор изображений для каждого состояния объекта "Числовой индикатор"
Для отображения состояния насоса в текстовом виде мы используем объект "Числовой индикатор". Режим выбираем "значение". В блоке "Чтение" выбираем адресную метку состояния насоса. В атрибуте указываем количество состояний 3. На вкладке "Фигура" снимаем флажки "Изображение" и "Фигура". На вкладке "Метка" ставим флажок "Использовать библ." и выбираем соответствующую текстовую метку. Тут же можно проверить отображение текстовой метки на всех языках для всех состояний.
Привязка текстовой метки в объекте "Числовой индикатор"
Для озаглавливания наших окон мы используем объект "Текст/Комментарий". На вкладке "Текст/Комментарий" поставим флажок "Использовать библ." и выберем соответствующую текстовую метку. Проверить ее для разных языков можно тут же.
Текстовая метка у объекта "Текст/Комментарий"
Такой же объект (только с привязкой к соответствующей текстовой метке) используем для подписи числа оборотов насоса.
Для переключения языка интерфейса на наших мнемосхемах мы используем два объекта "Числовая кнопка". На вкладке "Общие" укажем системный регистр LW-9134 для записи. В атрибуте выберем стиль "Записать". В кнопке для русского языка будем записывать значение 0, в кнопке для английского языка будем записывать 1 (нумерация языков берется из окна "Язык и шрифт", нумерация с 0).
Окно параметров кнопки переключения языка
Для отображения уровня жидкости в ёмкости мы используем объект "Гистограмма". На вкладке "Общие" привяжем к адресной метке уровня.
Параметры контура у объекта "Гистограмма"
На вкладке "Диапазон" укажем технологически допустимый диапазон. При необходимости можем выбрать изменение цвета при достижении того или иного значения (аварийный, предупредительный).
Параметры диапазона у объекта "Гистограмма"
Для наглядности достижения уровнем в баке тревожных значений добавим индикаторы достижения верхнего и нижнего уровней. Используем для этого объекты "Битовый индикатор".
Добавление индикатора аварийного уровня
На вкладке "Общие" привяжем его к адресной метке высокого (или соответственно низкого) уровня в ёмкости. На вкладке "Фигура" выберем подходящее изображение в Библиотеке изображений.
Поскольку в нашем примере нам нужно показывать картинку только для одного состояние, то в Библиотеке изображений нам надо вставить "Прозрачное состояние" для значения 0 и необходимую картинку для значения 1.
Добавление прозрачного состояния
Для отображения трубопроводов (между насосом и емкостью, от ёмкости далее согласно технологическому процессу) используем объект "Линия".
Параметры стиля объекта "отрезок"
На вкладке "Стиль" можно выбрать цвет линии, её толщины, типы ее начала и конца (стрела, шар и т.п.)
Трубопроводы так же можно изобразить объектами "Прямоугольник" и "Изображение" (библиотека изображений содержит в том числе и картинки для трубопроводов).
Для переключения окон используем объект "Функциональная кнопка".
Окно параметров объекта "Функциональная кнопка"
На вкладке "Общие" выберем функцию "Изменить полноэкранное окно" и укажем на какое окно. На вкладке "Фигура" выберем подходящую картинку. На вкладке "Метка" поставим флажок "Использовать библ." и выберем соответствующую метку.
Для отображения числа оборотов насоса используем объект "Число".
Объект "Число" для отображения числа оборотов
На вкладке "Общие" привяжем к соответствующей адресной метке и снимем флажок "Разрешить ввод". На вкладке "Формат числа" укажем нужное число знаков до и после запятой, формат будет взят из конфигурации адресной метки.
Формат числа в объекте "Число"
Для подачи команд управления насосом (включить, отключить) мы можем использовать два объекта: "Битовая кнопка" и "Переключатель".
В случае использования "Битовой кнопки" нажатием мы зададим соответствующее значение выбранному биту. Если потом его значение изменится мы никак об этом не узнаем (для отображения текущего значения этого бита нам понадобиться отдельный объект, например "Битовый индикатор").
В случае использования "Переключателя" мы получаем возможность задавать соответствующее значение выбранному биту и индикатор значения этого бита (если меняется значение бита, то меняется картинка объекта "Переключатель").
В своем проекте мы выберем объект "Переключатель". На вкладке "Общие " привязываем к соответствующей адресной метке и выбираем режим задания нового значение (1, 0, переключить текущее, 1 пока касаемся кнопки и 0 при отпускании).
Окно параметров объекта "Тумблер"
На вкладке "Фигура" выбираем подходящее изображение и задаем цвет для каждого состояния.
Настройка внешнего вида объекта "Тумблер"
На вкладке "Метка" выбираем соответствующую текстовую метку, задаем размер шрифта, цвет, выравнивание и т.д.
Привязывание текстовой метки в объекте "Тумблер"
В итоге у нас получилась вот такая мнемосхема:
Окно "Мнемосхема"
Непременный атрибут системы управления – уставки. Хранить и задавать их удобно в панели управления.
Для уставок создадим отдельное окно, сконфигурируем его аналогично первому. Отличием будут два объекта "Число" привязанные к RW регистрам (энергонезависимая память, сохраняют значение после выключения питания панели, после перезагрузки, подробнее тут).
Окно "Уставки"
Концепция хранения уставок в нашем проекте такая: каждая уставка - это пара переменных с одинаковыми именами, но в разных устройствах. Одна переменная находится в ПЛК, вторая – в панели.
Привязка переменных в окне "Уставки"
Оператор вводит новое значение уставки в поле "значение в панели", для копирования значений уставок из панели в ПЛК мы будем использовать макрос, который будем вызывать объектом "Функциональная кнопка" (кнопка "Применить" в окне).
Перед созданием окон "Тренды" и "Алармы" необходимо сконфигурировать тренды и алармы.
5. Создание трендов
Как мы уже обозначили ранее тренды – это отображение изменения значения технологической величины со временем в виде кривой на графике.
В панелях Weintek вместо термина "тренды" используется понятие "выборка данных". Выборке данных посвящена глава 8 в Руководстве пользователя EasyBuilder Pro.
Для работы с выборками данных необходимо перейти на вкладку "Данные/история" в EasyBuipder Pro и нажать кнопку "Выборка данных".
Окно "Выборки данных"
Одна выборка предполагает последовательно расположенные переменные в одном устройстве.
В правом нижнем углу окна со списком выборок данных указано текущее количество выборок из возможного и количество данных в этих выборках в машинных словах из возможного.
Для создания новой выборки данных необходимо нажать кнопку "Создать" в окне "Выборки данных".
Окно параметров выборки данных
В каждой выборке данных необходимо настроить:
- описание (текстовый комментарий позволяющий ее идентифицировать при использовании в графических объектах);
- режим: временнАя (задать интервал/период выборки) или триггерная (выбрать переменную-триггер и ее значение);
- адрес первого элемента выборки (для абсолютной адресации, например как LW регистры или регистры Modbus);
- формат данных каждого элемента выборки (здесь мы формируем последовательность машинных слов, указывая их представление, связи с адресными к сожалению нет; именно поэтому переменные для трендов должны располагаться в памяти устройства подряд; для драйверов с символьной адресацией необходимо использовать массив);
- количество записей (эдакий размер буфера для режима отображения в реальном времени)
- удерживать управление – это возможность ставить на паузу процесс записи трендов;
- файл журнала – включает запись значений в файл, позволяет задать место хранения файла, способ формирования имени файла;
- ограничить архив трендов заданным количеством дней.
Тренды сконфигурированы. Для их отображения в окне доступны несколько графических объектов:
- график выборки (те самые привычные графики);
- дисплей кругового тренда;
- дисплей данных журнала (отображение архива значений в табличном виде).
Мы выберем объект "График выборки" и добавим его в окно "Тренды".
Вкладка "Общие" объекта "График журналов"
На вкладке "Общие" выбираем:
- индекс объекта выборки данных – нужную выборку (в нашем случае она одна);
- тип графика: журнал (данные будут браться из файлов, можно отображать данные за прошлые периоды);
- способ обновления данных на графике (автоматически – каждые 10 секунд, иначе только при смене окна)
- временной промежуток по оси Х (отрезок времени, за который будут отображены данные; листание ползунком тоже будет шагом в этот отрезок);
- управление журналом – выбор файла с данными по индексу (если файл создается каждый день, то листание по дням получится);
- линия наблюдения – когда ставим точку на поле графика, то в эти адреса/переменные будут помещаться значения с кривых в этой точке (для отображения этих значений мы используем объект "Число" с соответствующим форматом);
Вкладка "Журнал" объекта "График журналов"
На вкладке "Журнал" выбираем:
- цвет рамки (контур и фон);
- наличие и цвет сетки, количество делений по осям X и Y;
- наличие подписей времени и даты по оси Y;
Вкладка "Канал" объекта "График журналов"
На вкладке "Канал" выбираем:
- отображать или нет тот или иной канал (переменную из выборки);
- цвет и толщину кривой канала;
- допустимый диапазон по оси Y;
- можно добавить управление видимостью канала через регистр/переменную в Runtime.
Вкладка " Y шкала" объекта "График журналов"
На вкладке "Y шкала" выбираем:
- тип Y оси: нет оси, главная (только у одного канала может быть), дополнительная;
- шрифт подписей у шкалы, его цвет и размер.
В итоге у нас получилось вот такое окно:
Окно трендов (выборки данных)
6. Создания алармов
Назначение алармов – это сигнализировать пользователю о критических значениях технологических параметров (превышение уровня жидкости в баке, низком давлении в резервуаре, срабатывании защиты и т.п.).
В панелях Weintek вместо термина "алармы" используется понятие "события (аварии)". Событиям (авариям) посвящена глава 7 в Руководстве пользователя EasyBuilder Pro.
Для работы с алармами необходимо перейти на вкладку "Данные/история" в EasyBuipder Pro и нажать кнопку "Журнал событий (Аварий)".
Окно "Журнал сигналов/событий"
Окно "Журнал сигналов/событий":
- отображает список алармов;
- отображает текущее количество алармов в проекте относительно максимально возможного;
- позволяет задать включение подсветки панели при возникновении аларма, если таковая будет отключена в .этот момент;
- позволяет указать место хранения файлов архива алармов (панель, USB флешка, SD карта и т.п.);
- позволяет ограничить срок хранения алармов;
- позволяет создать новый аларм, удалить текущий, изменить параметры текущего;
- позволяет сделать импорт/экспорт списка алармов;
Для создания нового аларма необходимо нажать кнопку "Новый…".
Окно создания нового аларма
В открывшемся окне на вкладке "Общие" можно:
- задать категорию аларма (от 0 до 255);
- задать приоритет (низкий, обычный, высокий, авария);
- задать задержку мониторинга при включении панели (например, если ПЛК долго стартует и т.п.);
- выбрать тип переменной, для которой аларм (дискретная или аналоговая величина);
- выбрать устройство, типа адреса, адрес переменной для аларма;
- задать отправку уведомления о срабатывании аларма на другой адрес какого-либо устройства;
- задать условие срабатывания аларма (для дискретного; ON, OFF, ON->OFF, OFF->ON, для аналогового >=, <=, ==, <> и т.д.).
Хорошим тоном программирования является использование только дискретных алармов в интерфейсе оператора (АРМ, панель и т.д.), т.е. ПЛК предоставляет готовый флаг "Уровень в баке выше нормы", сам вычисляет сравнение и соответственно реагирует на нештатную ситуацию.
Конфигурирование сообщения аларма
На вкладке "Сообщение" можно:
- вписать текст сообщения, который будет отображаться оператору (мы используем строку из библиотеки, поскольку у нас двуязычный интерфейс оператора);
- выбрать шрифт (при использовании строк из библиотек шрифт задается в окне "Язык и шрифт") сообщения, размер шрифта, цвет текста и цвет фона теста (заданный цвет используется в объекте "Дисплей событий" в режиме "Реальное время" и объекте "Дисплей аварий");
- задать проигрывание звука при срабатывании аларма (у всех панелей есть пищалка Beep, а возможность проигрывать файл *.wav смотрите в таблице параметр Audio Output);
- добавить отображение аналоговой величины (тега, адресной метки) в текст аларма (те самые WATCH1…WATCH8, синтаксис смотрите по ссылке "Синтаксис…" в этом же окне).
Отображать алармы можно двумя способами:
- текущее состояние (активен, квитирован и т.п.);
- журнал (каждый переход из одного состояния в другой сопровождается новой записью в архив ).
Для отображения алармов в EasyBuilder Pro предусмотрено три объекта:
- строка алармов (бегущая строка с текущим последним алармом);
- дисплей аварий (отображение аварий);
- дисплей событий (отображение событий).
Для отображения списка активных алармов мы будем использовать объект Дисплей событий (Отображение событий) в режиме "Реальное время". Он в отличие от объекта "Дисплей аварий" (Отображение аварий) позволяет сконфигурировать в каких состояниях отображать алармы, а в каких нет.
Конфигурация отображаемых алармов в реальном времени
Для отображения алармов из архива будем использовать объект Дисплей событий (Отображение событий) в режиме "Журнал".
Для отображения алармов создадим отдельное окно и разместим на нем два объекта "Дисплей событий".
Вкладка "Общие" объекта Дисплей событий
На вкладке "Общие" можно:
- выбрать режим отображения: в реальном времени или журнал (режим "В реальном времени" объект будет отображать алармы только из оперативной памяти панели, режим "Журнал" позволяет брать информацию из архивных фалов);
- задать регистры/переменные для управления журналом (управление периодом времени за который отображаются алармы).
На вкладке "Отображение событий" можно:
- выбрать категории сообщений, которые будут отображаться в этом объекте;
- выбрать цветовые настройки (сетки, рамки, фона, текста и фона квитированных сообщений и вернувшихся в нормальное/пассивное состояние).
Вкладка "Отображение событий" объекта Дисплей событий
На вкладке "Сортировка" можно:
- выбрать способ сортировки: по возрастанию времени или по убыванию;
- выбрать отображаемые столбцы и их порядок (дата и время срабатывания аларма, текст аларма и т.д.), количество отображаемых символов;
- выбрать формат отображения даты и времени.
Вкладка "Сортировка" объекта Дисплей событий
Управление журналом возможно в двух вариантах:
- выбрать сутки, за которые отображать данные (достаточно в блоке "Управление журналом" указать регистр, в котором содержится число дней от текущего: 0 – сегодня, 1 – вчера, 2 – позавчера и т.д.);
- выбрать период, за который будут отображаться данные (необходимо поставить флажок "Включить чтение множественных логов", тогда указанный регистр должны содержать день начала периода от текущей даты, а следующий регистр количество дней назад)
Для выбора конкретной даты можно использовать объект "Список опций". Для этого на вкладке "Источник данных" объекта "Список опций" нужно выбрать:
- источник данных об элементе: даты данных журнала;
- тип: журнал событий (если выбрать "Выборка данных", то можно использовать с объектом "График журналов");
- формат отображения даты (ММ/ДД/ГГ, ДД,ММ,ГГГГ и т.д.).
Вкладка "Источник данных" объекта Список опций
В итоге у нас получилось вот такое окно:
Окно "Алармы"
7. Создание пользователей/паролей
Отличительной чертой хорошей системы управления является разграничение функционала по уровням доступа (например, администратор может все, мастер задавать уставки, оператор управлять технологическим процессом, наблюдатель только смотреть).
Система безопасности в панелях Weintek предлагает два режима:
- основной (необходимо ввести только пароль);
- расширенный (необходимо ввести имя пользователя и пароль).
Примечание: В панелях серий cMT/cMT_X не доступен основной режим безопасности.
Основной режим безопасности
Расширенный режим безопасности
В основном режиме безопасности:
- доступны для конфигурирования 12 паролей (пароль – это число в диапазоне 0 - 4294967295);
- 6 классов безопасности (от A до F)
Примечание: В панелях серий cMT/cMT_X не доступен основной режим безопасности.
В расширенном режиме безопасности:
- доступны для конфигурирования 11 пользователей с паролями (до 127 пользователей может быть создано через утилиту "Административные инструменты");
- встроенный пользователь Administrator со всеми привилегиями;
- пользователей можно скрывать из списка в объекте "Список опций" (опция "Секретный пользователь", имя такого пользователя придется вписывать вручную);
- 12 классов безопасности (от A до L).
Примечание: Для моделей eMT/iE/XE/mTV в EasyAccess 2.0’s в HMI Viewer (Просмотрщик HMI) недоступен расширенный режим безопасности, используйте VNC Viewer (любой VNC клиент) для этого.
Создание пользователей в утилите "Административные инструменты"
В своем проекте мы будем использовать расширенный режим безопасности и зададим двух пользователей:
- operator (может только включать и отключать насос);
- master (может включать/отключать насос и изменять значения уставок).
Cписок пользователей в нашем проекте
Теперь необходимо назначить соответствующие классы безопасности графическим объектам в окнах (кнопкам, полям ввода и т.п.).
Для этого переходим на вкладку "Безопасность" объекта кнопка и в блоке "Ограничения пользователя" выбираем соотвествующий класс.
Выбор класса безопасности для объекта "Тумблер"
После выбора соответствующего класса безопасности доступны 3 опции поведения объекта:
- отключить защиту навсегда после начальной активации;
- отображать предупреждающее сообщение, если доступ запрещен;
- сделать невидимым пока защищён.
Опции поведения защищенного объекта "Тумблер"
В своём проекте мы выберем опцию c показом предупреждающего сообщения. Таким образом, пользователь будет знать, у каких объектов есть управление и в то же время не иметь возможности управлять без ввода пароля.
Дополнительно мы поставим флажок "Показать запрос на подтверждение", который должен обезопасить т случайного включения/отключения.
Для второй кнопки необходимо проделать соответствующие манипуляции.
Для полей ввода уставок и кнопки вызова макроса копирования уставок в ПЛК необходимо выбрать соответствующий класс безопасности и опцию поведения.
Класс безопасности и опции поведения защищенного объекта "Число"
Для вызова окна авторизации (ввода пользователя и пароля) расположим в окне "Мнемосхема" кнопку вызова всплывающего окна №70 "Login & Logout".
Кнопка вызова окна авторизации
Интерфейс окна авторизации можно перевести на русский язык, изменить его размер, цвет фона и т.п. Для расположения объектов для авторизации можно создать своё окно и вызывать его, просто окно №;70 уже есть в проекте и его сразу можно использовать.
Окно авторизации
Для отображения текущего пользователя рядом с кнопкой авторизации расположим объект ASCII, который привяжем к системному регистру LW-1074.
Объект для отображения имени текущего пользователя
8. Создание простого макроса
Важной частью EasyBuilder Pro является макросы. По своему назначению они аналагичны макросам в MS Office – помогают выполнять специфичные задачи.
Макросы – это программирование в панелях Weintek.
С помощью макросов, например, мы делали экспорт данных в стороннюю БД посредством SQL запросов в наших видео СКАНЕР ШТРИХ и QR КОДОВ и RFID и панели оператора Weintek
Макросы предоставляют дополнительную функциональность, которая может потребоваться вашему приложению.
Макросы - это автоматизированные последовательности команд, которые выполняются в Runtime. Макросы позволяют выполнять такие задачи, как сложные операции масштабирования, обработка строк и взаимодействие пользователя с вашими проектами.
Подробно про макросы вы можете узнать из:
- главы 18 Macro Reference в Руководстве пользователя EasyBuilder Pro;
- темы на нашем форуме;
- наших статей 1, 2 и 3;
- видео на нашем Youtube канале.
В нашем проекте мы будем использовать один макрос – копирование значений уставок из панели в ПЛК. В реальном проекте как минимум необходимо добавить макросы по синхронизации уставок между панелью и ПЛК (в панели корректные – в ПЛК нет, в ПЛК корректные – в панели нет, ни в ПЛК ни в панели нет корректных уставок и надо задать значения по умолчанию и т.п.).
Для работы с уставками очень удобно использовать Базу рецептов. Подробнее о ее применении смотрите тему "База рецептов: что это такое и как этим пользоваться?" на нашем форуме.
Для создания макроса необходимо открыть окно Макросы и нажать кнопку "Создать".
Окно со списком макросов
Алгоритм у нашего макроса будет простой:
- объявить переменные такого же типа как соответствующие переменные/регистры в проекте панели (в нашем случае float);
- скопировать значения из панели в переменные макроса;
- скопировать значения переменных макроса в регистры ПЛК;
Для чтения и записи регистров ПЛК/панели предусмотрены встроенные функции GetData() и SetData().
Для работы с внешними устройствами лучше использовать функции GetDataEx() и SetDataEx(), которые в отличие от GetData() и SetData() не прерывают выполнение макроса при отсутствии связи с устройством, а ошибку можно получить функцией GetError(), далее эту ошибку можно обработать в макросе.
Для вставки встроенных функций в макрос удобно использовать Мастер (кнопка "Функции" в правом нижнем углу окна с кодом макроса)
Мастер добавления встроенных функций в макрособавлени
Все встроенные функции сгруппированы. Функции работы с устройствами находятся в группе "ПЛК".
Для доступа к пользовательским адресным меткам в окне добавления функции необходимо поставить флажок "Пользовательская меткуа".
Поле "Кол-во данных" предназначено для чтения/записи значений расположенных подряд (таким образом можно прочитать/записать массив).
В итоге код нашего макроса будет таким:
macro_command main()
float level_HH, level_LL // объявление переменных
// копируем уставки в макрос
GetData(level_HH, "Local HMI", "UM101_level_HH_SP", 1)
GetData(level_LL, "Local HMI", "UM101_level_LL_SP", 1)
// копируем уставки в ПЛК
SetDataEx(level_HH, "MODBUS TCP/IP", "UM101_level_HH_SP", 1)
SetDataEx(level_LL, "MODBUS TCP/IP", "UM101_level_LL_SP", 1)
end macro_command
После компиляции получаем предупреждение о том, что наши переменные не инициализированы. Хорошим тоном программирования является инициализация переменных при их объявлении. В противном случае можно получить непредсказуемые результаты (неинициализированная переменная содержит "мусор" от предыдущих переменных занимавших эту ячейку оперативной памяти панели).
Но в нашем проекте мы сразу после объявления переменных заполняем их корректными значениями из регистров панели и поэтому пренебрегли инициализацией.
Окно с макросом
Теперь можно добавить кнопку "Применить" (объект Функциональная кнопка") и выбрать вкачетсве действия вызов нашего макроса.
Кнопка вызова макроса
9. Загрузка проекта в панель и запуск
Проект готов. Его необходимо скомпилировать и можно загружать в панель. Компиляция происходит автоматически перед загрузкой в панель. В окне компиляции отображаются ошибки, если таковые обнаружены в проекте.
Окно компиляции проекта панели Weintek
В окне компиляции проекта:
- можно задать пароль на декомпиляцию выгруженного из панели проекта (пароль на EXOB файл, по умолчанию 111111);
- можно запретить декомпиляцию;
- можно запретить выгрузку проекта из панели;
- можно указать как язык будет активирован при старте панели;
- узнать общий объём проекта (компилятор сообщит о превышении допустимого размера);
- узнать количество ошибок и предупреждений.
Главное слово в окне компиляции – "успешно".
Если панели нет в наличии, но нужно проверить проект панели, то можно использовать симуляцию.
У неё два режима:
- онлайн симуляция (задействуются драйвера для связи с устройствами в проекте, работает 10 минут);
- оффлайн симуляция (теги всех устройств создаются в памяти вашего ПК, работает без ограничений по времени, позволяет проверить проект без наличия устройств).
В качестве ПЛК мы будем использовать симулятор Modbus.
Окно симулятора с текущими значениями ПЛК
Проверим ограничения доступа к защищенным объектам - нажмем кнопку "Включить" без регистрации пользователя в системе.
Всплывающее окно "Доступ запрещен"
Проверим переключения языка нашего проекта на английский.
Окно проекта с англоязычным интерфейсом
Сгенерируем аларм для проверки индикации.
Окно "Мнемосхема" с индикатором аларма
На странице уставок наблюдаем значения в панели и ПЛК.
Окно "Уставки"
Ввод нового значения уставки
Окно с трендами
Окно "Алармы"
Окно "Алармы" с англоязычным интерфейсом
Настало время загрузить проект в панель.
Проект загрузить в панель можно двумя способами:
- через USB флешку;
- по сети Ethernet;
Как загрузить проект с флешки смотрите тут.
Для загрузки по сети панель и ПК с EasyBuildr Pro должны быть связаны по сети (настройки локальных и не только сетей выходят за рамки нашей статьи).
Окно загрузки проекта с найденной панелью
Окно загрузки проекта с вводом IP адреса панели
В окне загрузки проекта можно:
- выбрать панель из списка ("Найти" и "Найти все");
- задать IP адрес панели вручную (например, если у панели белый IP адрес);
- включить загрузку шрифтов;
- EasyAccess 2.0 (для iP серии при использовании сервиса EasyAccess0);
- включить загрузку диагностического инструмента;
- включить загрузку Runtime (необходим при обновлении прошивки панели или первой загрузке);
- задать файл-картинку для пользовательской заставки (показывается несколько секунд пока не запустится проект);
- указать файл с системными настройками (файл создается утилитой "Административные инструменты");
- синхронизировать часы панели с часами ПК;
- удалить ранее установленный пользовательский экран;
- сбросить значения RW, RW_A регистров;
- удалить базу данных рецептов;
- удалить журнал событий;
- удалить журнал действий оператора;
- удалить выборки данных;
- заставить панель перезагрузиться после загрузки проекта;
- задать номер TCP порта и пароли для загрузки/выгрузки проекта.
Пароли по умолчанию – 111111. Порт по умолчанию – 20248. Подробнее об использумых TCP портах смотрите в нашей статье "Какие TCP порты используют панели Weintek ?"
Окно смены пароля и TCP порта на загрузку/выгрузку проекта
Процесс загрузки проекта в панель сопровождается журналом действий.
Окно загрузки проекта в панель
В панели проект выглядит точно так же как и в симуляции.
Проект в панели
Окно "Уставки"
Окно "Тренды"
Окно "Алармы"
Посмотрим, как выглядит "живая панель" с нашим проектом.
Панель MT8071iP с проектом
На видео пройдемся по всеу проекту, перейдем по всем экранам, увидим уведомление об обрыве связи с ПЛК, попробуем несанкционированный доступ к защищенным объектам, переключим язык интерфеса оператора, задаим новые значения уставкам и запишем их в ПЛК, сгенерируем и квитируем аларм.
---
Все вопросы и обсуждения - на нашем форуме.
Видео о панелях Weintek на нашем Youtube канале.