Расписание

Этот шаблон используется для создания расписания. Расписание позволяет менять значения переменных по заданному веремени и дням недели.

_images/scheduler1.png

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

_images/scheduler2.png

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

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

_images/scheduler3.png

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

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

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

Служебные переменные используются в блоке управления расписанием, в компоненте дисплея Расписание и странице визуализации 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 и т.д.