Найти тему
Ты же инженер АСУ ТП

Макросы в панели оператора Weintek. Первые шаги.

Оглавление

Я люблю ставить панели оператора фирмы Weintek. За 10 лет работы никогда не подводили. Быстрая и красивая графика, продуманная логика рецептуры и т.д.

Главная фишка панелей - это макросы. Можно сделать полноценный ПЛК с экраном, но обязательно нужно учитывать некоторые нюансы.

Макрос - последовательность команд, алгоритм действий панели оператора, который можно использовать для выполнения задач не предусмотренных основным функционалом EasyBuilder.

Примерный список задач, для которых может понадобиться использование макроса:

  1. Таймер обратного отсчета для запуска/остановки технологических и других процессов.
  2. Преобразование данных из одних единиц измерения в другие: напряжение в температуру, ток в давление, Фаренгейты в Цельсии и т.д.
  3. Управление пользовательским интерфейсом: рисовать графики, открывать/закрывать окна, скрывать/отображать объекты, управлять анимацией.
  4. Собственный протокол передачи данных, которого еще нет в библиотеке из более чем 300 драйверов EasyBuilder. Например, можно подключить GSM-модем и управлять приемом/отправкой СМС-сообщений.
  5. Взаимодействие с внутренней базой данных рецептов SQLite: загрузка и сохранение данных в настраиваемом формате, выборка данных по SQL-запросу. Это может быть, например, база данных рецептов приготовления блюд в кухонной печи.
  6. Взаимодействие с внешней базой данных MySQL, или MS SQL Server: загрузка и сохранение данных в настраиваемом формате, выборка/выгрузка данных с помощью SQL. Это может быть, например, база данных предприятия, или склада. Панель может считывать штрих-коды, QR-коды, RFID-метки и загружать их в базу данных, или делать выборку данных по считанным кодам.

Список макросов

Каждый проект EasyBuilder содержит собственный набор макросов. Вызвать список можно из меню на вкладке “Проект”:

-2

Здесь можно создавать, удалять и редактировать макросы проекта. Если есть макросы, которые вы хотите использовать в нескольких проектах, функциями Импорт/Экспорт их можно сохранять/загружать через отдельные файлы.

В списке, кроме имени объекта-макроса, отображается его идентификатор [ID] и атрибуты {I,P,S}. Атрибуты макроса имеют следующее значение:

  1. “I” - будет вызываться каждый раз при загрузке панели.
  2. “P” - задействует таймер для периодического вызова.
  3. “S” - может блокироваться битом адресного пространства.

Чтобы создать новый макрос, или изменить имеющийся, нажмите соответствующую кнопку - “Создать”, или ”Редактировать”, откроется редактор макросов.

-3

В редакторе макросов можно изменить всё что касается конкретного объекта-макроса: его имя, атрибуты запуска и непосредственно код. Здесь же происходит проверка кода на наличие синтаксических ошибок, после внесения изменений следует нажать кнопку “Сохранить и скомпилировать”.

Существует много способов вызова макросов.

Способы вызова макросов

1 - Однократный вызов при старте панели.

Это один из атрибутов объекта-макроса, выбирается в редакторе.
Это один из атрибутов объекта-макроса, выбирается в редакторе.

Полезный вариант для макросов инициализации, если нужно что-то загрузить в ПЛК, или выгрузить из энергонезависимой памяти. Еще один пример использования - макрос с вечным циклом. Макрос, который никогда не завершается, достаточно запустить один раз.

2 - Автоматический периодический вызов.

Это один из атрибутов объекта-макроса.

Макрос будет вызываться по таймеру с заданной периодичностью. Важно учитывать, что вызываемая функция должна завершаться до ее повторного вызова, иначе вызов будет блокироваться. Удобный вариант для процессов, требующих непрерывной обработки данных.
Макрос будет вызываться по таймеру с заданной периодичностью. Важно учитывать, что вызываемая функция должна завершаться до ее повторного вызова, иначе вызов будет блокироваться. Удобный вариант для процессов, требующих непрерывной обработки данных.

Используя блокировку макроса, можно запускать и приостанавливать вызовы в нужный момент. Блокировка — это еще один атрибут объекта-макроса.

-6

3 - Функциональная кнопка.

Одной из функций объекта “Функциональная кнопка” может быть вызов макроса. Вызов будет происходить каждый раз при нажатии кнопки пользователем. В атрибутах выбираем “Выполнить макрос” и имя макроса из выпадающего списка.

-7

4 - Комбинированная кнопка.

Может выполнять последовательность действий, в том числе вызов макросов.

-8

5 - Битовая кнопка.

Эта кнопка используется для изменения состояния бита, но также она может вызвать макрос при срабатывании.

-9

Срабатывать кнопка может не только от нажатия пользователем, она может быть скрытым элементом и срабатывать от других условий.

6 - Битовый переключатель.

Этот объект реагирует только на нажатие. Вызов макроса можно привязать к конкретному изменению состояния бита.

-10

7 - Вызов по триггеру.

Часто бывает необходимо управлять вызовом макроса через адресное пространство панели. Используйте ПЛК-триггеры для вызова макроса битом регистра панели, или ПЛК.

-11

Режим триггера “Всегда активно если ON” будет запускать макрос каждые 500 миллисекунд при высоком уровне бита.

8 - Вызов из активного экрана.

В атрибутах окна на панелях всех серий, за исключением iP-серии, можно выбрать варианты запуска макросов на случай открытия, или закрытия окна, а также для циклического запуска. Период циклического запуска макроса фиксированный - 500 миллисекунд.

-12

На панелях iP-серии этот функционал также может быть реализован, но другим способом. Для циклического вызова можно использовать собственный таймер объекта-макроса, а для вызова при открытии/закрытии окна можно использовать битовую кнопку с соответствующим атрибутом.

9 - Вызов из другого макроса.

Существует два способа вызова макроса из другого макроса: синхронный и асинхронный. Разница в том, что при синхронном вызове вызывающий макрос будет ждать завершения вызываемого макроса, прежде чем продолжить выполнение алгоритма. При асинхронном вызове вызывающий макрос продолжит выполнение алгоритма параллельно с вызываемым. Используйте функции SYNC_TRIG_MACRO и ASYNC_TRIG_MACRO соответственно для синхронного и асинхронного вызова.

Пример: Связь с регулятором ОВЕН ТРМ138

Для заказчика нужно было удаленно отслеживать за 8 канальным регулятором температуры. Хотелось именно панель оператора, без ПК. Вот там как раз делал простую логику для срабатываний аварий и т.п. и т.д.

-13

На этом я заканчиваю, пока-пока.

Источник https://www.rusavtomatika.com/articles/macros-easybuilder-pro-1/