Я люблю ставить панели оператора фирмы Weintek. За 10 лет работы никогда не подводили. Быстрая и красивая графика, продуманная логика рецептуры и т.д.
Главная фишка панелей - это макросы. Можно сделать полноценный ПЛК с экраном, но обязательно нужно учитывать некоторые нюансы.
Макрос - последовательность команд, алгоритм действий панели оператора, который можно использовать для выполнения задач не предусмотренных основным функционалом EasyBuilder.
Список макросов
Каждый проект EasyBuilder содержит собственный набор макросов. Вызвать список можно из меню на вкладке “Проект”:
Здесь можно создавать, удалять и редактировать макросы проекта. Если есть макросы, которые вы хотите использовать в нескольких проектах, функциями Импорт/Экспорт их можно сохранять/загружать через отдельные файлы.
В списке, кроме имени объекта-макроса, отображается его идентификатор [ID] и атрибуты {I,P,S}. Атрибуты макроса имеют следующее значение:
“I” - будет вызываться каждый раз при загрузке панели.
“P” - задействует таймер для периодического вызова.
“S” - может блокироваться битом адресного пространства.
Чтобы создать новый макрос, или изменить имеющийся, нажмите соответствующую кнопку - “Создать”, или ”Редактировать”, откроется редактор макросов.
В редакторе макросов можно изменить всё что касается конкретного объекта-макроса: его имя, атрибуты запуска и непосредственно код. Здесь же происходит проверка кода на наличие синтаксических ошибок, после внесения изменений следует нажать кнопку “Сохранить и скомпилировать”.
Существует много способов вызова макросов.
Способы вызова макросов
1 - Однократный вызов при старте панели.
Это один из атрибутов объекта-макроса, выбирается в редакторе.
Полезный вариант для макросов инициализации, если нужно что-то загрузить в ПЛК, или выгрузить из энергонезависимой памяти. Еще один пример использования - макрос с вечным циклом. Макрос, который никогда не завершается, достаточно запустить один раз.
2 - Автоматический периодический вызов.
Это один из атрибутов объекта-макроса.
Макрос будет вызываться по таймеру с заданной периодичностью. Важно учитывать, что вызываемая функция должна завершаться до ее повторного вызова, иначе вызов будет блокироваться. Удобный вариант для процессов, требующих непрерывной обработки данных.
Используя блокировку макроса, можно запускать и приостанавливать вызовы в нужный момент. Блокировка — это еще один атрибут объекта-макроса.
3 - Функциональная кнопка.
Одной из функций объекта “Функциональная кнопка” может быть вызов макроса. Вызов будет происходить каждый раз при нажатии кнопки пользователем. В атрибутах выбираем “Выполнить макрос” и имя макроса из выпадающего списка.
4 - Комбинированная кнопка.
Может выполнять последовательность действий, в том числе вызов макросов.
5 - Битовая кнопка.
Эта кнопка используется для изменения состояния бита, но также она может вызвать макрос при срабатывании.
Срабатывать кнопка может не только от нажатия пользователем, она может быть скрытым элементом и срабатывать от других условий.
6 - Битовый переключатель.
Этот объект реагирует только на нажатие. Вызов макроса можно привязать к конкретному изменению состояния бита.
7 - Вызов по триггеру.
Часто бывает необходимо управлять вызовом макроса через адресное пространство панели. Используйте ПЛК-триггеры для вызова макроса битом регистра панели, или ПЛК.
Режим триггера “Всегда активно если ON” будет запускать макрос каждые 500 миллисекунд при высоком уровне бита.
8 - Вызов из активного экрана.
В атрибутах окна на панелях всех серий, за исключением iP-серии, можно выбрать варианты запуска макросов на случай открытия, или закрытия окна, а также для циклического запуска. Период циклического запуска макроса фиксированный - 500 миллисекунд.
На панелях iP-серии этот функционал также может быть реализован, но другим способом. Для циклического вызова можно использовать собственный таймер объекта-макроса, а для вызова при открытии/закрытии окна можно использовать битовую кнопку с соответствующим атрибутом.
9 - Вызов из другого макроса.
Существует два способа вызова макроса из другого макроса: синхронный и асинхронный. Разница в том, что при синхронном вызове вызывающий макрос будет ждать завершения вызываемого макроса, прежде чем продолжить выполнение алгоритма. При асинхронном вызове вызывающий макрос продолжит выполнение алгоритма параллельно с вызываемым. Используйте функции SYNC_TRIG_MACRO и ASYNC_TRIG_MACRO соответственно для синхронного и асинхронного вызова.
Пример: Связь с регулятором ОВЕН ТРМ138
Для заказчика нужно было удаленно отслеживать за 8 канальным регулятором температуры. Хотелось именно панель оператора, без ПК. Вот там как раз делал простую логику для срабатываний аварий и т.п. и т.д.
На этом я заканчиваю, пока-пока.