Страница 2 из 2

Суточный таймер. Как сделать?

Добавлено: 27.09.2016{, 18:46}
Слимпер
slavas, ну да блок похожий но, как я понял, переход через 00:00 у вас не работает.

Добавлено (27.09.2016, 18:46)
---------------------------------------------
Да и к тому же, привел  свой работающий вариант, а нужен они или нет, пусть другие смотрят.

Суточный таймер. Как сделать?

Добавлено: 27.09.2016{, 18:57}
slavas
Это да, чем больше вариантов решения тем проще учиться. А про мой блок только щас задумался.

Суточный таймер. Как сделать?

Добавлено: 27.09.2016{, 20:04}
AlexRyzh
eugeneb писал(а):Я уже в двух своих проектах использую такую схему
Лично мне не понятно как работать с этой схемой.
У меня сделано так: На экране ввода времени включения, я ввожу 2330 (т.е. включить в 23 часа 30 мин). То же самое и ввод отключения 215 (отключить в 2 часа 15 мин)
Для сравнения с текущим временем из модуля реального времени я получаю в переменную число, часы * 100 + минуты. Т.е. я получаю тот вид времени, который ввожу для контроля. По моему очень удобно.
В Вашем случае часы * 60 + минуты. Это 23:30 будет выглядеть не как 2330, а 1410. Так какую циферию загонять в память, если нужно включить в 23:30? Нужно ввести 1410 чтоб таймер работал как нужно?
А если мне нужно изменить на 22:15 включение, то нужно доставать калькулятор и высчитывать число, которое нужно ввести в память?
И я так понимаю этот блок для одного цикла Вкл-Откл? Если нужен еще цикл, то нужен такой же блок с другими параметрами Вкл.-Откл?

Суточный таймер. Как сделать?

Добавлено: 27.09.2016{, 20:22}
OlegAn1962
Слимперslavas, ob`edinil washi bloki

Суточный таймер. Как сделать?

Добавлено: 27.09.2016{, 20:29}
Слимпер
AlexRyzh писал(а):А если мне нужно изменить на 22:15 включение, то нужно доставать калькулятор и высчитывать число, которое нужно ввести в память?
Ну зачем калькулятор, отратно на часы и минуты это раскадируется так:
СпойлерПоказать
А там уже на экран можно вывести

Добавлено (27.09.2016, 20:29)
---------------------------------------------
А то, что надо сохранить как уставку, упаковывается так же как переменная ТВ из скриншота в сообщении 19

Суточный таймер. Как сделать?

Добавлено: 27.09.2016{, 21:13}
AlexRyzh
В общем, почитав ветку, и благодаря вашим комментам, пришел к выводу, что сделать можно. И для себя "родил" такой метод:
Сделал блок проверки перехода через сутки. Входы - Вкл, Выкл и текущее время.
Изображение
Блок проверяет, если время выключения меньше времени включения и при этом меньше текущего времени, то переменная выключения принимает значение 2400, что больше чем последняя минута суток 2359. Когда сутки меняются, то выставленное значение для отключения становится больше чем текущее время, и переменная не принимает значение 2400, а остается как назначено. ( в каждом цикле в переменную записывается установленное значение с памяти. Это в другой плате сделано, здесь не видно)
В итоге получается такая картинка:
Изображение

Добавлено (27.09.2016, 21:13)
---------------------------------------------
OlegAn1962 писал(а):Ну зачем калькулятор, отратно на часы и минуты это раскадируется так:
Вы видимо неправильно поняли вопрос. Перевести обратно не проблема. Дело в другом.
Вот, например я подошел к устройству и решил изменить время включения (или выключения). Например было 21:17 ( а это 21*60+17=1277) Т.е чтоб включалось в 21:17, в память было забито число 1277)
И вот я решил изменить включение на 22:14. Как мне понять какое число ввести в память? Вычислять в уме? или калькулятор с собой носить? Как я должен узнать, что нужно ввести 1334, чтоб срабатывало в 22:14?
Или я что-то не понял? Что нужно ввести в память (ячейку включения), чтоб включение произошло именно в 22:14?
По моему умножение часов на 100 решает эту проблему. Для ввода включения в 22:14 вводим значение для переменной 2214!

Суточный таймер. Как сделать?

Добавлено: 27.09.2016{, 21:28}
slavas
так вводить надо часы и минуты, а блок сам часы переведёт в минуты и прибавит минуты, время получится в минутах.

Суточный таймер. Как сделать?

Добавлено: 28.09.2016{, 04:36}
Слимпер
AlexRyzh, хорошо, что нашил для себя удобный для себя вариант, это главное.
А slavas, все правильно написал, у меня отдельно выставляются минуты и часы, а программа, переводит и записывает в память, так что пользователь этого даже не видит.
AlexRyzh писал(а):в каждом цикле в переменную записывается установленное значение с памяти.
Надеюсь не в EEPROM?

Добавлено (28.09.2016, 04:36)
---------------------------------------------
Если не лень можете посмотреть мой проект Малая автоматизация выращивания цветов и рассады где по такому принципу сделано  . Правда я его уже разобрал, и сделал другой. Надо как то написать статью. 
Но как я уже писал выше, я его делал во времена когда не было еще пользовательских блоков, так что он громоздкий.

Суточный таймер. Как сделать?

Добавлено: 28.09.2016{, 08:12}
AlexRyzh
Слимпер писал(а):Надеюсь не в EEPROM?
Так я написал "С ПАМЯТИ", а не в память  Т.е. читает из EEPROM, а не записывает.
Слимпер писал(а):у меня отдельно выставляются минуты и часы, а программа, переводит и записывает в память
Не стал я заморачиваться с таким вводом. Это дополнительный код... лишняя нагрузка на проц (а проц Нано...) Лишние блоки... 
Делал для себя, а мне и так понятно, что для ввода времени нужно вводить цифры, соответствующие времени. И кода меньше, и мне понятно и удобно 

Суточный таймер. Как сделать?

Добавлено: 28.09.2016{, 12:25}
slavas
Ну если для себя только.

Суточный таймер. Как сделать?

Добавлено: 28.09.2016{, 12:46}
AlexRyzh
AlexRyzh писал(а):В итоге получается такая картинка:
Проверил на практике такую "картинку", это не работает. Т.к. при достижении 0 часов, одно условие не выполняется (Выкл >=Вкл) и соответственно ровно в 0 часов выключается
Спасибо Слимпер (пост 19), его блок действительно работает. Без проблем включение и выключение в указанное время, в том числе при переходе через 0 часов!
Сделал пользовательский блок, для удобства использования, единственное что изменил, это вместо компоратора больше поставил компоратор больше или равно. Иначе у меня почему-то включалось на минуту позже и выключалось на минуту позже указанного времени. Парадокс - но факт! При >= работает вовремя.
Блок прилагаю
СпойлерПоказать
Всем огромное спасибо. Вопрос исчерпан полностью. Блок работает безупречно!

Суточный таймер. Как сделать?

Добавлено: 29.09.2016{, 00:02}
slavas
Ну так условие выполняется, заданное время равно а в компараторе больше, вот и срабатывает на минуту позже. Вы сделали в компараторе равно и стало как надо.

Суточный таймер. Как сделать?

Добавлено: 16.12.2016{, 07:24}
Max
У меня вопрос. На вход "Время суток" в каком формате подаются данные? Имею ввиду часы+минуты, или все надо через матем. блоки пропускать умножая на 60 и т.д.?

Суточный таймер. Как сделать?

Добавлено: 16.12.2016{, 11:29}
nick73
Подскажите новичку. Сделал таймер на включение и выключение света по таймеру. Но нужно добавить датчик света. т.е принцип такой: установлено время включения в 9-00 и отключение в 17-00 но если на датчике света больше 200 Lx то свет не включается, но если во время которое установлено на вкл и выкл на датчике света будет меньше 200Lx то включится свет и отключится по таймеру.

Суточный таймер. Как сделать?

Добавлено: 16.12.2016{, 11:31}
nick73
вот файл

Суточный таймер. Как сделать?

Добавлено: 16.12.2016{, 12:30}
rw6cm
nick73 писал(а):вот файл

СпойлерПоказать

Суточный таймер. Как сделать?

Добавлено: 16.12.2016{, 12:52}
nick73
Большое Спасибо. Получилось.

Суточный таймер. Как сделать?

Добавлено: 09.03.2017{, 13:31}
Max
Какое максимальное количество суточных таймеров может быть в одном проекте?