То же самое хотел сказать. Отвлёкся на тот момент, что ежели уж автору охота поиграться со счётчиками, то делал бы он это на инкрементных тогда уж. Ибо битовые операции в выключателе света -- это переборцЪ, имхо:)
Вид для печати
Да не за что, а по вентилятору можно так сделать:
Вложение 46043
Вложение 46044
Ну, раз пошла такая пьянка....
Навеяно Вашим примером:
Идея:
Первое короткое включение кнопки- старт вентилятора на время t.
Повторное короткое нажатие - добавляет время t к оставшемуся времени до отключения, т.е. два коротких нажатия - 2t.
Реализация через write to FB, но с операцией сложения. Вопрос: как узнать оставшееся время? Ставить счетчик и вычитать из первоначального?
Только еще проверка нужна , чтобы больше двух раз не добавлялось
Можно и добавлять к уставке по каждому нажатию время t, не вижу здесь проблем!
У меня имеется макрос сумматор:
Вложение 46046
Вложение 46047
А зачем тут оставшееся время? Ежели поменять уставку во время работы TOF, то он в любом случае отработает 2t.
Наверно как-то так:
Вложение 46048
Вложение 46049
Немного поправил:
Вложение 46053
Вложение 46054
С ограничением, не более 3t:
Вложение 46058
Вложение 46059
Получится то ж на то ж. Ну смотрите: допустим при нашей уставке 8с вентилятор 5с отработал, мы нажимаем кнопку, добавляем ещё 8с, т.е. после нажатия кнопки вентилятор отработает 8+3=11с. Но 5-то он уже отработал, в итоге всё равно 16, т.е. 2t.
Короче, меня тоже понесло куда-то в счётчики:), зато есть контроль, что 3е и последующие нажатия не изменят уставку.
особо не смотрел, потому что хочу увидеть другое, как человек будет выпрыгивать из ванны, чтобы продлить время :)
Вентилятор в ванной надо включать
1. по превышению влажности
2. после выхода из ванной для проветривания