Управление освещением при помощи контроллера Siemens S7-1200

Управление освещением при помощи контроллера Siemens S7-1200

При написании статьи об удаленном доступе к контроллеру Siemens S7-1200 я упомянул, что у меня он используется для управления освещением. Немного усовершенствую данное управление.

Первоначально управление было сделано предельно просто: в комнатах вместо обычных выключателей установлены выключатели типа «Звонок», т.е. без фиксации положения, работает как кнопка. Нажал — свет включился, нажал — свет выключился.

Однако дом я строил в первый раз и конечно же не учёл всех нюансов при размещении выключателей.

Первые две проблемы, с которыми я столкнулся:

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

2. В спальне есть две группы освещения на потолке, но к прикроватным выключателям подведено 3 провода: одна пара управляет прикроватным бра, вторая одной группой освещения на потолке. Получается для выключения второй группы освещения на потолке необходимо воспользоваться веб-приложением или встать с кровати и подойти к выключателю у двери.

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

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

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

Для реализации данной идеи необходимо изменить логику работы контроллера.

Хотелось бы выразить благодарность моему другу, Краснопёрову Всеволоду, за помощь в написании программы.

В default tag table у меня для каждого выхода есть соответствующий тэг:

Default tag table

Default tag table

в FBшке поменяются переменные:

Переменные

Переменные

Сам код тоже изменился:

В целом логика осталась такой же простой. Так как время одного цикла у меня равно 100 мс (правой кнопкой по Cyclic interrupt->Properties…->Cyclic time (ms)), то мы считаем количество циклов пока кнопка удерживается нажатой. Если количество циклов меньше 5 — считаем, что это короткое нажатие. Длинные нажатия для каждого выключателя описаны вначале, как я и говорил, они могут быть разные по времени (у первых трех время 15 циклов, у четвертого 30 циклов), и по действию.

Теперь прикроватный выключатель при коротком нажатии переключатель одну группу света на потолке, при длинном другую.

No Comments

Leave a Comment

Please be polite. We appreciate that.
Your email address will not be published and required fields are marked