-
Tia Portal — Недельный таймер
2020-08-20
Промышленное
-
Продолжаем знакомство со средой Tia Portal. На очереди у нас очередное практическое занятие — создание недельного таймера с заданием необходимых настроек с панели оператора.
Работать таймер будет в двух режимах — по выбору даты и времени включения и выключения и по дням недели.
Режим 1: Включаем переключатель «по Дате и Времени». Далее вносим в полях необходимые дату и время включения и выключения. Индикатор «Выход сигнала» сигнализирует о том, что включен режим задания на включение-выключение .
Режим 2: Выбираем дни недели (нажав соответствующие переключатели), для которых будем составлять расписание, вносим время включения и выключения на каждый выбранный день. Например, освещение будет включаться на буднях в такое-то время, предположим в 8:00 и выключаться в 17:00, а на выходных оно вообще не должно работать. Поэтому для субботы и воскресенья переключатель остается выключенным.
Ну и кроме того, на этом же экране можно изменить дату и время для ПЛК в знакомом нам уже по прошлой статье окне.
Писать программу для недельного таймера будет на LD (Ladder Diagram) — языке релейно-контактной логики.
Создаем наш функциональный блок Date_Time.
В DB «Date_Time_DB» прописываем все необходимые нам теги. Так как их довольно много, таблицу переменных я здесь приводить не буду. В конце статьи будет выложен pdf файл.
Далее пишем логику работы таймера.
Здесь мы задаем установку времени ПЛК и чтение системного времени. Для тех, кто читал нашу предыдущую статью Tia Portal — Функциональные блоки, данные логические блоки уже хорошо знакомы.
Используем инструкцию T_Comp для для сравнения реальной даты в ПЛК с датой включения сигнала. Если
#OUT_DATE
равна#Date_on
, выход принимает значение TRUE.Тоже самое и с датой выключения сигнала. Если
#OUT_DATE
равна#Date_off
, на выходе TRUE.Устанавливаем условие, по которому будет срабатывать сигнал на включение по дате .
Так же, как и в случае с датой, сравниваем значение реального времени ПЛК
#OUT_TIME
с временем включения#Time_on
. Если значение входов IN1 и IN2 совпадают, выход принимает значение TRUE. Аналогично и с временем выключения сигнала.Устанавливаем условие, по которому будет срабатывать сигнал на включение по времени и общий сигнал.
Переходим к программированию второго режима работы — по дням недели.
День недели кодируется целым числом INTEGER: 2 — понедельник, 3 — вторник, 4 — среда, 5 — четверг, 6 — пятница, 7 — суббота, 1 — воскресение
Логика работы недельного таймера для дня недели Понедельник у нас готова. По аналогии делаем такие же логические цепочки для остальных дней недели, меняя только необходимые теги. Полностью готовую программу можно посмотреть в pdf файле.
После того, как прописали все оставшиеся дни недели, делаем еще один блок, который будет выдавать либо общий сигнал на выход по дате и времени , либо по дням недели.
Далее в редакторе WinCC создаем экран для задания параметров нашего недельного таймера и для каждого элемента подключаем необходимые нам теги.
ФБ Date_Time — Скачать
Я бы вместо RD_SYS_T использовал RD_LOC_T, так как она учитывает местный часовой пояс
Спасибо. Данный пример очень пригодился
В logo comfort есть готовый блок недельного таймера и вроде годового таймера. А в Тиа портал нет ничего похожего?
В Tia Portal нет такого.
Здравствуйте. Не понятен момент ввода дня недели в нетворке 8. Т.е. по нажатию на «понедельник» в DB #OUT_TIME_DATE.WEEKDAY устанавливается в 2 автоматически?
Добрый день. Все разобрался.
На 1200 нет инструкции T_Comp
На S7-1200 нет, только на S7-1500
Доброго времени суток.
Подскажите, пожалуйста, как выйти из данной ситуации с S7-1200? Обычный компаратор для 1200 возможен в использовании с переменными date и time? Заранее благодарю
Здравствуйте.
Да, вы можете использовать компараторы с этими типами данных, все должно работать нормально.
Сигнал sGeneral как работает в данной схеме? Отключение происходит каждый час в указанный час каждого дня, а не по дате и часу.
Доброе время суток. Спасибо, что обратили внимание, да действительно там была ошибка. Сейчас исправлено. Теперь вроде и по дате и времени срабатывает ( если мы нажимаем switch «по дате и времени»)