Здравствуйте.
Если требуется включать/выключать какое-либо оборудование по расписанию, то для этого можно использовать компонент "Расписание (https://simple-scada.com/help/manual/schedule.html)". Если нужно выполнять какие-либо действия из скрипта через заданный интервал времени(по таймеру), то пример такого скрипта можно найти по ссылке (https://simple-scada.com/help/script/second-passed.html). Если требуется выполнять скрипт в какое-то заданное время(например в 12-30), то можно использовать скрипт с типом события "Прошла секунда" (https://simple-scada.com/help/script/event-types.html), в котором сравнивать текущее время с заданным:
begin
// если сейчас 12:30
if (HourOf(Now) = 12) and (MinuteOf(Now) = 30) then
// , то выполнить какое-то действие
end.
Если нужно выполнять скрипт в начале заданного часа, то используйте скрипт с типом события "Прошел час" (https://simple-scada.com/help/script/hour-passed.html).
Мне осталось из переменной DataTime вытащить часы и минуты есть оператор который это сделает или пользоваться преобразованием строки?
Методы для работы с датой/временем можно найти в руководстве по ссылке (https://simple-scada.com/help/script/datetime.html). Функция HourOf (https://simple-scada.com/help/script/hourof.html)- возвращает час дня. Функция MinuteOf (https://simple-scada.com/help/script/minuteof.html)- возвращает минуты. Для сравнения значений даты/времени можно использовать функцию CompareDateTime (https://simple-scada.com/help/script/comparedatetime.html).
Да, забыли об этом упомянуть. Проще всего в код, который идет после условия добавить проверку вида: если требуемое действие не выполнено, то выполнить его. Или можно создать внутреннюю переменную с типом Word для хранения прошлой минуты (в примере vrLastMinute) и использовать такой скрипт:
begin
// если сейчас 12:30
if (HourOf(Now) = 12) and (MinuteOf(Now) = 30) and (vrLastMinute.AsInt <> MinuteOf(Now)) then
begin
// , то выполнить какое-то действие
end;
vrLastMinute.Value := MinuteOf(Now);
end.