Расписание¶
Этот шаблон используется для создания расписания. Расписание позволяет менять значения переменных по заданному времени и дням недели. Его можно представить в виде таблице, которая хранится в ПЗУ контроллера. В ячейках этой таблицы располагаются данные о времени срабатывания, активности таймера и отдельных переменных, а так же значения переменных, которые нужно установить при срабатывании таймера.
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. Бит активности таймера используется в контролах редактирования расписания.
Пользовательские переменные могут быть добавлены в расписание в неограниченном количестве.
Для редактирования доступны следующие свойства: имя, описание, тип данных и начальное значение.
Переменные расписания являются глобальными, с ними можно работать так-же как и с обычными глобальными переменными. При использовании этих переменных в FBD программе необходимо помнить, что они являются массивами, размер которого определяется параметром «Количество таймеров». Для того, чтобы «вытащить» переменную расписания на FBD схему, нужно выделить в навигации проекта элемент «Расписание» и перетащить нужную переменную из списка, который отображается под навигатором проекта. (см. рисунок ниже).
Использовать переменные расписания в FBD-программе имеет смысл только тогда, когда нужно реализовать свой собственный алгоритм редактирования и выполнения расписания. В большинстве случаев можно использовать готовые решений - шаблонный блок и контролы для редактирования расписания. Более подробно контролы описаны в разделах Расписание и странице визуализации HMI.
Если вы хотите организовать заполнение расписание вручную, то для этого необходимо установить значения служебных переменных и параметров для каждого активного таймера. Для того, чтобы таймер сработал, нужно в переменной status установить оба бита - 0 и 1. В переменной active необходимо установить биты активности соответствующих параметров. Например, для срабатывания параметра1 - бит 0, параметра 2- бит1 и т.д. Порядок параметров не зависит от их названия, его можно определить либо по порядку расположения выходов шаблонного блока расписания или по порядку отображения в обозревателе объектов. На рисунке Переменные расписания порядок параметров следующий - Влажность, Работа, Температура.
Все переменные расписания являются сетевыми и хранимыми в ПЗУ. Посмотреть и установить значения адресов можно в диалогах Сетевые переменные и Переменные ПЗУ. При расстановки адресов Modbus рекомендуется делать непрерывный диапазон для всего расписания, для ускорения процесса чтения/записи по сети.
Шаблонный блок расписания¶
Для работы расписания в FBD-программу необходимо перетащить его из дерева Навигатора проекта на FBD-схему.
Если в свойствах блока установлено свойство Исп. текущее время, то для выполнения таймера используются внутренние часы контроллера. Если этот флаг убрать, то у блока появятся дополнительные входы для установки текущего времени.
Входы блока:
- en - активирует работу расписания;
- Час - значение часов контроллера;
- Минуты - значение минут контроллера;
- День - день недели;
Выходы блока:
- rdy - на этом выходе появляется значение 1 на один такт программы в том случае, когда срабатывает какой-либо таймер расписания;
- Параметры1, Параметр2 … - на этих выходах появляется значение Параметра1, Параметра2 и т.д.;
- rdy0, rdy1 … - на этих выходах появляются значения на 1 такт программы, при срабатывании активного Параметра1, Параметра2 и т.д.
Выходы rdy0, rdy1, … можно использовать для записи значения конкретного параметра таймера.
Работа расписания происходит следующим образом. Один раз в минуту происходит проверка активных таймеров на совпадение времени и дней недели, которые беруться из часов контроллера или с ножек блока. При совпадении времени на выходы блока подаются значения параметров, установленных пользователем, а так же соответствующие сигналы rdy. Полученные значения можно сохранить в локальные или глобальные переменные для дальнейшего использования в алгоритме работы программы.
Внимание!!! Для фиксации значений необходимо использовать именно сигналы rdy0, rdy1 и т.д.
Использования расписания¶
Рассмотрим пример использования расписания в проекте с контроллером М245. Для начала работы добавляем шаблон расписания к контроллеру.
В окне редактирования шаблона устанавливаем количество таймеров расписания и добавляем переменные, которые нужно изменять при срабатывания таймера. Для примера добавим две переменные: Включение и Температура. Для переменных необходимо установить тип данных. Для Температуры выбираем дробный тип, для Включения - однобайтовый беззнаковый.
Логические типы данных в расписании не поддерживаются, так как такие переменные не могут быть массивами. На этом настройка шаблона расписания закончена, необходимо теперь добавить компоненты, позволяющие редактировать и выполнять его.
Для редактирования расписания в контроллерах с индикатором можно использовать элемент Расписание. Открываем редактор экрана контроллера и вытаскиваем этот элемент из панели инструментов. После добавления элемента необходимо указать ему шаблон расписания, который он будет редактировать и отображать.
После этого элемент расписания готов к работе. Более подробное его описание можно посмотреть в справке.
Кроме компонента для графического дисплея, существует компонент для редактирования расписания, который используется в проектировании экранов HMI для мобильной платформы. Более подробно работа с ним описана в разделе визуализации HMI.
Теперь добавим компонент для использования расписания в программе. Для этого вытаскиваем шаблонный блок, как описано в разделе выше, на схему. Создаем в схеме две локальные переменные : Включение и Температура. Добавляем на схему два блока условной записи этих переменных и подключаем их шаблонному блоку расписания, как показано на рисунке. На вход en блока расписания подаем значение 1, чтобы активировать его работу.
На этом настройка расписания закончена. Теперь с помощью контрола на экране мы можем активировать нужное количество таймеров, задать в них время и дни выполнения, а так же указать значения переменных. При срабатывании нужного таймера соответствующие значения из таблицы, сохраненной в ПЗУ контроллера, будут записаны в локальные переменные FBD программы.