Расписание

_images/scheduler1.png

Этот шаблон используется для создания расписания. Расписание позволяет менять значения переменных по заданному веремени и дням недели. Его можно представить в виде таблице, которая хранится в ПЗУ контроллера. В ячейках этой таблицы располагаются данные о времени срабатывания, активности таймера и отдельных переменных, а так же значения переменных, которые нужно установить при срабатывании таймера.

  days hh mm status active Var1 Var2
Таймер1 7F 10 00 1 1 1 1
Таймер2 7F 11 30 1 1 25 3
Таймер3 01 12 15 0 3 30 4
Таймер4 07 19 00 3 3 1 7

Параметр Количество таймеров задаёт количество строк этой таблицы.

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

  • days - дни недели, в которые исполняется таймер, задается побитно. бит 0 - понедельник, бит 1 - вторник и т.д.
  • hh - значение часа;
  • mm - значение минут;
  • active - активность параметров - служебная переменная для контролов редактирования расписания;
  • status - статус таймера.

Переменная status используется для активации таймера. Нулевой бит устанавливает использование таймера, первый бит - активность таймера. Таким образом, чтобы таймер сработал, значение в переменной должно быть равно 3. Бит активности таймера используется в контролах редактирования расписания.

Пользовательские переменные могут быть добавлены в расписание в неограниченном количестве.

_images/scheduler2.png

Для редактирования доступны следующие свойства: имя, описание, тип данных и начальное значение.

Переменные расписания являются глобальными, с ними можно работать так-же как и с обычными глобальными переменными. При использовании этих переменных в FBD программе необходимо помнить, что они являются массивами, размер которого определяется параметром “Количество таймеров”. Для того, чтобы “вытащить” переменную расписания на FBD схему, нужно выделить в навигации проекта элемент “Расписание” и перетащить нужную переменную из списка, который отображается под навигаторм проекта. (см. рисунок ниже).

_images/scheduler3.png

Переменные расписания

Использовать переменные расписания в FBD-программе имеет смысл только тогда, когда нужно реализовать свой собственный алгоритм редактирования и выполнения расписания. В большинстве случаев можно использовать готовые решений - шаблонный блок и контролы для редактирования расписания. Более подробно контролы описаны в разделах Расписание и странице визуализации HMI.

Если вы хотите организовать заполнение расписание вручную, то для этого необходимо установить значения служебных переменных и параметров для каждого активного таймера. Для того, чтобы таймер сработал, нужно в переменной status установить оба бита - 0 и 1. В переменной active необходимо установить биты активности соответствующих параметров. Например, для срабатывания параметра1 - бит 0, параметра 2- бит1 и т.д. Порядок параметров не зависит от их названия, его можно определить либо по порядку расположения выходов шаблонного блока расписания или по порядку отображения в обозревателе объектов. На рисунке Переменные расписания порядок параметров следующий - Влажность, Работа, Температура.

Все переменные расписания являются сетевыми и хранимыми в ПЗУ. Посмотреть и установить значения адресов можно в диалогах Сетевые переменные и Переменные ПЗУ. При расстановки адресов Modbus рекомендуется делать непрерывный диапазон для всего расписания, для ускорения процесса чтения/записи по сети.

_images/scheduler4.png

Шаблонный блок расписания

Для работы расписания в FBD-программу необходимо перетащить его из дерева Навигатора проекта на FBD-схему.

_images/scheduler6.png

Если в свойствах блока установлено свойство Исп. текущее время, то для выполнения таймера используются внутренние часы контроллера. Если этот флаг убрать, то у блока появятся дополнительные входы для установки текущего времени.

_images/scheduler5.png

Входы блока:

  • en - активирует работу расписания;
  • Час - значение часов контроллера;
  • Минуты - значение минут контроллера;
  • День - день недели;

Выходы блока:

  • rdy - на этом выходе появляется значение 1 на один такт программы в том случае, когда срабатывает какой-либо таймер расписания;
  • Параметры1, Параметр2 ... - на этих выходах появляется значение Параметра1, Параметра2 и т.д.;
  • rdy0, rdy1 ... - на этих выходах появляются значения на 1 такт программы, при срабатывании активного Параметра1, Параметра2 и т.д.

Выходы rdy0, rdy1, ... можно использовать для записи значения конкретного параметра таймера.

Работа расписания происходит следующим образом. Один раз в минуту происходит проверка активных таймеров на совпадение времени и дней недели, которые беруться из часов контроллера или с ножек блока. При совпадении времени на выходы блока подаются значения параметров, установленных пользователем, а так же соответствующие сигналы rdy. Полученные значения можно сохранить в локальные или глобальные переменные для дальнейшего использования в алгоритме работы программы.

Внимание!!! Для фиксации значений необходимо использовать именно сигналы rdy0, rdy1 и т.д.

Использования расписания

Рассмотрим пример использования расписания в проекте с контроллером М245. Для начала работы добавляем шаблон расписания к контроллеру.

_images/scheduler_start1.png

В окне редактирования шаблона устанавливаем количество таймеров расписания и добавляем переменные, которые нужно изменять при срабатывания таймера. Для примера добавим две переменные: Включение и Температура. Для переменных необходимо установить тип данных. Для Температуры выбираем дробный тип, для Включения - однобайтовый беззнаковый.

_images/scheduler_start4.png

Логические типы данных в расписании не поддерживаются, так как такие переменные не могут быть массивами. На этом настройка шаблона расписания закончена, необходимо теперь добавить компоненты, позволяющие редактировать и выполнять его.

Для редактирования расписания в контроллерах с индикатором можно использовать контрол Расписание. Открываем редактор экрана контроллера и вытаскиваем контрол из панели инструментов. После добавления необходимо в контроле указать шаблон расписания, который он будет редактировать и отображать.

_images/scheduler_start2.png

Выбор шаблона расписания

После этого контрол расписания готов к работе. Более подробное его описание можно посмотреть в справке.

Кроме компонента для графического дисплея, существует компонент для редактирования расписания, который используется в проектировании экранов HMI для мобильной платформы. Более подробно работа с ним описана в разделе визуализации HMI.

Теперь добавим компонент для использования расписания в программе. Для этого вытаскиваем шаблонный блок, как описано в разделе выше, на схему. Создаем в схеме две локальные переменные : Включение и Температура. Добавляем на схему два блока условной записи этих переменных и подключаем их шаблонному блоку расписания, как показано на рисунке. На вход en блока расписания подаем значение 1, чтобы активировать его работу.

_images/scheduler_start3.png

На этом настройка расписания закончена. Теперь с помощью контрола на экране мы можем активировать нужное количество таймеров, задать в них время и дни выполнения, а так же указать значения переменных. При срабатывании нужного таймера соотвествующие значения из таблицы, сохраненной в ПЗУ контроллера, будут записаны в локальные переменные FBD программы.