Блок проверки попадания текущего времени в заданный временной интервал
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Блок проверки попадания текущего времени в заданный временной интервал
Блок проверки попадания текущего времени в указанный временной интервал
[spoiler=Описание входов-Выходов]
HH_value - текущее значение часа
MM_value - текущее значение минут
HH_on - час начала временного интервала
MM_on - минуты начала временного интервала
HH_off - час окончания временного интервала
MM_off - минуты окончания временного интервала
T_inside = true если внутри временного интервала, иначе false[/spoiler]
[spoiler=Сам блок] [/spoiler]
Переход через 00:00 отрабатывается.
Блок создавался для организации циклического полива, любых таймеров
UPD 27.04.2018: Добавил вход En для включения или выключения работы блока
[spoiler=Описание входов-Выходов]
HH_value - текущее значение часа
MM_value - текущее значение минут
HH_on - час начала временного интервала
MM_on - минуты начала временного интервала
HH_off - час окончания временного интервала
MM_off - минуты окончания временного интервала
T_inside = true если внутри временного интервала, иначе false[/spoiler]
[spoiler=Сам блок] [/spoiler]
Переход через 00:00 отрабатывается.
Блок создавался для организации циклического полива, любых таймеров
UPD 27.04.2018: Добавил вход En для включения или выключения работы блока
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось AlexCrane 21 май 2021, 20:16, всего редактировалось 1 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Блок проверки попадания текущего времени в заданный временной интервал
В принципе, классный блок, не знаю, почему автор не добавил подобные вещи в релиз, так как это очень часто надо. Это практически база -- таймер по RTC.
Пару замечаний по коду:
1) два if''а лучше заменить на if + else if, чтоб если первое условие верно, то второе (переход через ноль часов) уже не проверялось.
2) if ( (minutes_on>minutes_off) && ( (minutes_val>=minutes_on) || ((minutes_val>=0) && (minutes_val<minutes_off)) ) )
тут, если переход через ноль часов, непонятно, зачем проверка (minutes_val>=0), если он всегда будет больше нуля (отрицательное значение в принципе иметь не может)
Пару замечаний по коду:
1) два if''а лучше заменить на if + else if, чтоб если первое условие верно, то второе (переход через ноль часов) уже не проверялось.
2) if ( (minutes_on>minutes_off) && ( (minutes_val>=minutes_on) || ((minutes_val>=0) && (minutes_val<minutes_off)) ) )
тут, если переход через ноль часов, непонятно, зачем проверка (minutes_val>=0), если он всегда будет больше нуля (отрицательное значение в принципе иметь не может)
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Блок проверки попадания текущего времени в заданный временной интервал
[ref]lexuv[/ref], Попробуйте, если все пройдет успешно можно будет внести изменения. И кстати сделал данный блок на функциях и значительно с экономил на количестве переменных и памяти программ (правда получилось два блока: базовый и рабочий)
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
-
- Лейтенант
- Сообщения: 338
- Зарегистрирован: 11 фев 2018, 13:07
- Имя: Сергей
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
Блок проверки попадания текущего времени в заданный временной интервал
Блок действительно очень полезен. Думаю он (или аналогичный) не помешал бы в составе программы. Будильник не решает всех возможных задач при работе с временными интервалами, т.к. если я правильно понимаю, будильник срабатывает однократно при совпадении фактического времени с заданным, а если до момента этого совпадения пропало питание, то после переменная так и останется в предыдущем состоянии до следующего события. А определение попадания времени в заданный интервал эту проблему решает.
Блок проверки попадания текущего времени в заданный временной интервал
В чем отличие "Попадание_в_диапазон_времени_En_(CODE).ubi" от "Попадание_в_диапазон_времени_(CODE).ubi"?
Что обозначает эта "En"?
Что обозначает эта "En"?
Блок проверки попадания текущего времени в заданный временной интервал
En - enable т.е. включает работу блока
когда мастерю обычно подсматриваю,
не рыли ли окоп в том же направлении,
не изобретали ли велосипед с такими-же квадратными как у меня колёсами,
а уже потом - не торопясь, торю свою лыжню
не рыли ли окоп в том же направлении,
не изобретали ли велосипед с такими-же квадратными как у меня колёсами,
а уже потом - не торопясь, торю свою лыжню
Блок проверки попадания текущего времени в заданный временной интервал
Добрый день! У меня вопрос. Можно ли использовать в проекте несколько блоков? Задача включать и выключать нагрузку по заданному циклу несколько раз в сутки с ориентировкой на RTC причем выключать по привышении кретического уровня.
Отправлено спустя 1 минуту 22 секунды:
Может кто подскажет другой путь решения вопроса?
Отправлено спустя 1 минуту 22 секунды:
Может кто подскажет другой путь решения вопроса?
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Блок проверки попадания текущего времени в заданный временной интервал
[ref]sillver[/ref], Можно сколько угодно раз, пока память не кончится
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Блок проверки попадания текущего времени в заданный временной интервал
Спасибо напихал кучу блоков и работает!
Блок проверки попадания текущего времени в заданный временной интервал
спасибо, хорошая вещь, для подсветки экрана 1602
-
- Рядовой
- Сообщения: 2
- Зарегистрирован: 27 дек 2021, 23:34
- Имя: Alexandr
Блок проверки попадания текущего времени в заданный временной интервал
Огромнейшее спасибо! Завтра буду тестить у себя. То, что искал!
Отправлено спустя 1 минуту 19 секунд:
Отправлено спустя 6 минут 35 секунд:
Ещё момент. HH_on и MM_on время начала работы (константа) HH_off и MM_off время окончание работы (константа) а HH_value и MM_value это вход с часов реального времени?
T-inside это просто на реле вешается? Есть у кого скрин примера этого блока в схеме с реле и часами реального времени? Спасибо заранее, не бейте, я чайник ещё)
Отправлено спустя 1 минуту 19 секунд:
к стати идея, только вот я наверное через фоторезистор реализую подсветку
Отправлено спустя 6 минут 35 секунд:
Ещё момент. HH_on и MM_on время начала работы (константа) HH_off и MM_off время окончание работы (константа) а HH_value и MM_value это вход с часов реального времени?
T-inside это просто на реле вешается? Есть у кого скрин примера этого блока в схеме с реле и часами реального времени? Спасибо заранее, не бейте, я чайник ещё)
-
- Рядовой
- Сообщения: 2
- Зарегистрирован: 27 дек 2021, 23:34
- Имя: Alexandr
Блок проверки попадания текущего времени в заданный временной интервал
Все прекрасно работает "как часы" (коломбур). Большое спасибо автору!
-
- Сержант
- Сообщения: 152
- Зарегистрирован: 07 янв 2019, 16:02
- Имя: Сергей
- Благодарил (а): 5 раз
Блок проверки попадания текущего времени в заданный временной интервал
en как работает если выключен что будет на выходе блока?
-
- Сержант
- Сообщения: 152
- Зарегистрирован: 07 янв 2019, 16:02
- Имя: Сергей
- Благодарил (а): 5 раз
Блок проверки попадания текущего времени в заданный временной интервал
сделал скрин
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Phazz
- Полковник
- Сообщения: 3128
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
- Pratak
- Сержант
- Сообщения: 206
- Зарегистрирован: 08 фев 2016, 20:21
- Имя: Дмитрий
- Благодарил (а): 1 раз
Блок проверки попадания текущего времени в заданный временной интервал
[spoiler]
Код: Выделить всё
//-------------------- AlexCrane, 2018 -------------------------
T_inside=false;
if (En)
{
minutes_on = HH_on*60+MM_on;
minutes_off = HH_off*60+MM_off;
minutes_val = HH_value*60+MM_value;
if ((minutes_val>=minutes_on) && (minutes_val<minutes_off)) {T_inside=true;}
if ( (minutes_on>minutes_off) && ( (minutes_val>=minutes_on) || ((minutes_val>=0) && (minutes_val<minutes_off)) ) ) {T_inside=true;}
}
//--------------------------------------------------------------------------
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Блок проверки попадания текущего времени в заданный временной интервал
Если блок выключен (на входе En = 0 или false) на выходе так же всегда 0 или false.
Строка в начале блока : T_inside=false; .
Последний раз редактировалось Naladchik 19 дек 2022, 21:22, всего редактировалось 1 раз.
-
- Сержант
- Сообщения: 139
- Зарегистрирован: 23 ноя 2020, 16:46
- Имя: Artem
- Поблагодарили: 1 раз
Блок проверки попадания текущего времени в заданный временной интервал
Спасибо за блок. То что нужно.
-
- Лейтенант
- Сообщения: 674
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Блок проверки попадания текущего времени в заданный временной интервал
А можно добавить вход день недели?AlexCrane писал(а): 19 апр 2018, 22:33 Блок проверки попадания текущего времени в указанный временной интервал
И еще, например такой режим, только не знаю как его назвать)). Задано время 15:25 срабатывания выхода на протяжении 20 сек. диапазон секунд от 1сек. до 3600 сек.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость