Макросы в EasyBuilder pro. Начало.
![Макросы в Easybuilder Pro - Начало Макросы в Easybuilder Pro - Начало](https://www.rusavtomatika.com/images/articles/macro1/preview.png)
Макрос - последовательность команд, алгоритм действий панели оператора, который можно использовать для выполнения задач не предусмотренных основным функционалом EasyBuilder.
Примерный список задач, для которых может понадобиться использование макроса:
- Таймер обратного отсчета для запуска/остановки технологических и других процессов.
- Преобразование данных из одних единиц измерения в другие: напряжение в температуру, ток в давление, Фаренгейты в Цельсии и т.д.
- Управление пользовательским интерфейсом: рисовать графики, открывать/закрывать окна, скрывать/отображать объекты, управлять анимацией.
- Собственный протокол передачи данных, которого еще нет в библиотеке из более чем 300 драйверов EasyBuilder. Например, можно подключить GSM-модем и управлять приемом/отправкой СМС-сообщений.
- Взаимодействие с внутренней базой данных рецептов SQLite: загрузка и сохранение данных в настраиваемом формате, выборка данных по SQL-запросу. Это может быть, например, база данных рецептов приготовления блюд в кухонной печи.
- Взаимодействие с внешней базой данных MySQL, или MS SQL Server: загрузка и сохранение данных в настраиваемом формате, выборка/выгрузка данных с помощью SQL. Это может быть, например, база данных предприятия, или склада. Панель может считывать штрих-коды, QR-коды, RFID-метки и загружать их в базу данных, или делать выборку данных по считанным кодам.
После приведенных практических примеров, обобщим - какие задачи выполняют макросы:
С помощью макросов можно автоматизировать процессы передачи, преобразования, сохранения и загрузки информации. Они могут выполнять сложные алгоритмы, не уступающие, или даже превосходящие возможности ПЛК. Поэтому, при разработке проекта для панели оператора Weintek у разработчика есть возможность не нагружать ПЛК сложными алгоритмами, оставив ему роль выполнения критичных ко времени операций, а использовать возможности панели по-максимуму. Таким образом, большую часть задач системы управления можно перенести в панель оператора и использовать более простые исполнительные устройства (ПЛК), или даже непрограммируемые модули ввода-вывода.
Макрос в EasyBuilder, это не только алгоритм, это еще и инструменты обеспечивающие работу этого алгоритма. Для каждого макроса создается таймер автоматического вызова и отдельный поток, в котором будет выполняться алгоритм только этого макроса. Таким образом, объекты-макросы в EasyBuilder работают параллельно и независимо друг от друга, предоставляя разработчику основные преимущества мультизадачной операционной системы.
Размер макросов в панелях Weintek
На размер макросов нет явного ограничения. Некоторые наши клиенты используют макросы длиной в 10000 строк.
Однако, есть ограничения на размер проекта, в зависимости от серии панелей Weintek. Таким образом, размер проекта со всеми макросами не может превышать эту величину.
Максимальный размер файла проекта (exob) смотрите в таблице Таблица сравнения серий
Количество макросов не может превышать 1000 шт.
Список макросов
Каждый проект EasyBuilder содержит собственный набор макросов. Вызвать список можно из меню на вкладке “Проект”:
Здесь можно создавать, удалять и редактировать макросы проекта. Если есть макросы, которые вы хотите использовать в нескольких проектах, функциями Импорт/Экспорт их можно сохранять/загружать через отдельные файлы.
В списке, кроме имени объекта-макроса, отображается его идентификатор [ID] и атрибуты {I,P,S}. Атрибуты макроса имеют следующее значение:
- “I” - будет вызываться каждый раз при загрузке панели.
- “P” - задействует таймер для периодического вызова.
- “S” - может блокироваться битом адресного пространства.
Чтобы создать новый макрос, или изменить имеющийся, нажмите соответствующую кнопку - “Создать”, или ”Редактировать”, откроется редактор макросов.
В редакторе макросов можно изменить всё что касается конкретного объекта-макроса: его имя, атрибуты запуска и непосредственно код. Здесь же происходит проверка кода на наличие синтаксических ошибок, после внесения изменений следует нажать кнопку “Сохранить и скомпилировать”.
Запуск макроса
Иногда бывает, что новички, знакомясь с написанием макросов в EasyBuilder, сталкиваются с тем, что макрос не выполняет никаких действий. При этом на поверку оказывается, что макрос и не был запущен, а разработчик и не подумал его запускать, решив, что достаточно создать макрос и написать код. Перед тем как писать макрос, желательно заранее понимать, как он будет использоваться проектом, то есть как и когда он будет запускаться. От этого необходимо отталкиваться при написании кода.
Рассмотрим способы вызова макроса EasyBuilder доступные разработчику. Необходимо отметить, что все эти способы можно комбинировать и использовать одновременно, но, вызов макроса может быть заблокирован в случае, если предыдущий вызов еще не завершился.
Девять способов вызова макроса:
Способ 1 - Однократный вызов при старте панели.
Это один из атрибутов объекта-макроса, выбирается в редакторе.![]() |
Полезный вариант для макросов инициализации, если нужно что-то загрузить в ПЛК, или выгрузить из энергонезависимой памяти. Еще один пример использования - макрос с вечным циклом. Макрос, который никогда не завершается, достаточно запустить один раз.
Способ 2 - Автоматический периодический вызов.
Это один из атрибутов объекта-макроса.
Макрос будет вызываться по таймеру с заданной периодичностью. Важно учитывать, что вызываемая функция должна завершаться до ее повторного вызова, иначе вызов будет блокироваться. Удобный вариант для процессов, требующих непрерывной обработки данных.![]() |
Используя блокировку макроса, можно запускать и приостанавливать вызовы в нужный момент. Блокировка — это еще один атрибут объекта-макроса.
Способ 3 - Функциональная кнопка.
Одной из функций объекта “Функциональная кнопка” может быть вызов макроса. Вызов будет происходить каждый раз при нажатии кнопки пользователем. В атрибутах выбираем “Выполнить макрос” и имя макроса из выпадающего списка.
Способ 4 - Комбинированная кнопка.
Может выполнять последовательность действий, в том числе вызов макросов.
Способ 5 - Битовая кнопка.
Эта кнопка используется для изменения состояния бита, но также она может вызвать макрос при срабатывании.
Срабатывать кнопка может не только от нажатия пользователем, она может быть скрытым элементом и срабатывать от других условий.
Способ 6 - Битовый переключатель.
Этот объект реагирует только на нажатие. Вызов макроса можно привязать к конкретному изменению состояния бита.
Способ 7 - Вызов по триггеру.
Часто бывает необходимо управлять вызовом макроса через адресное пространство панели. Используйте ПЛК-триггеры для вызова макроса битом регистра панели, или ПЛК.
Режим триггера “Всегда активно если ON” будет запускать макрос каждые 500 миллисекунд при высоком уровне бита.
Способ 8 - Вызов из активного экрана.
В атрибутах окна на панелях всех серий, за исключением iP-серии, можно выбрать варианты запуска макросов на случай открытия, или закрытия окна, а также для циклического запуска. Период циклического запуска макроса фиксированный - 500 миллисекунд.
На панелях iP-серии этот функционал также может быть реализован, но другим способом. Для циклического вызова можно использовать собственный таймер объекта-макроса, а для вызова при открытии/закрытии окна можно использовать битовую кнопку с соответствующим атрибутом.
Способ 9 - Вызов из другого макроса.
Существует два способа вызова макроса из другого макроса: синхронный и асинхронный. Разница в том, что при синхронном вызове вызывающий макрос будет ждать завершения вызываемого макроса, прежде чем продолжить выполнение алгоритма. При асинхронном вызове вызывающий макрос продолжит выполнение алгоритма параллельно с вызываемым. Используйте функции SYNC_TRIG_MACRO и ASYNC_TRIG_MACRO соответственно для синхронного и асинхронного вызова.
Продолжение следует...
Следующая статья: Макрос-терморегулятор
Скачать
- Вы можете скачать готовые проекты с примерами макросов в этом разделе:
Macro_Sample - Подробное руководство по макросам читайте в главе 18 в документации по Easybuilder Pro