Это условие у вас и не выполнится, тут ничего удивительного. Подставьте любое время с 08:00 до 00:00 и сами увидите, что второе условие в скобках никогда не отработает. Чтобы задать работу установки в промежуток времени с 08:00 до 00:00, достаточно написать:1. 24 часа в сутках. При условии (Сейчас_время>=8:00) and (Сейчас_время<18:00), в промежутке между 8:00-18:00 код работает.
Но если задать условие (Сейчас_время>=8:00) and (Сейчас_время<00:01) тогда код оказывается неработоспособным, по причине невыполнения условия.
Задать точку включения днем и точку выключения ночью не получается, используя данную логику.
IF Текущее_время < Утро //константа 8 часов утра
THEN Работа_установки := FALSE
ELSE Работа_установки := TRUE
END_IF;Для того чтобы привязаться ко дню недели, имеется специальная функция - DAY_OF_WEEK. Также при работе со временем в MS4D необходимо обязательно учитывать часовой пояс, т.к. в программе в режиме отладки может отображаться правильное время, но некоторые функции на самом деле будут считать не совсем корректно.2. И еще не могу придумать, как привязаться к дню недели. К примеру точка включения днем в понедельник 8:00 и точка выключения 00:01(а это уже вторник). Если мне нужно использовать расписание только в понедельник, получается, что я не могу даже использовать "ИЛИ"(понедельник или вторник). Если мне нужно в понедельник использовать расписание, а точка выключения оказывается ночью во вторник, то не получается привязаться к условия "понедельник".
Да и вообще я бы сделал по-другому.
1. Сделать отдельный условный блок в программе, который определяет текущие временные параметры (текущее время дня, текущий день недели и прочее).
2. При помощи цикла
реализовать требуемую логику включения и отключения оборудования.if {выражение1} then {последовательность предложений1}
elsif {выражение2} then {последовательность предложений2}
...
elsif {выражениеN} then {последовательность предложенийN}
else {последовательность предложений} end_if