Добрый день, в Simple Scada 2 в разедле Глобальные процедуры и функции > Время и дата есть таймеры. Которые имееют 4 функции.
Не совсем понимаю как ими пользоваться объясните, пожалуйста.
Я создаю переменную vrTime типа DataTime. На рабочем простанстве скады создаю кнопку пуск(Butt) и календерь(Cal), а также текстовый объект(Text).
Далее допустим , что функция Now мне возращает (07.03.2024 10:00).
На каледаре(cal) я ручками выставляю (07.03.2024 10:02).
На кнопку Пуск вешаю скрипт.
begin
vrTime.Value := Cal.Value;
TimerStart(vrTime,Now);
end.
К объекту текст я привязываю переменную vrTime и делаю 1 скрипт и вешаю его на 2 сигнала ( по нажаю, и изменилась связанная переменная)
var
I: Integer;
begin
Text.text := IntToStr(TimerGetState(vrTime));
end.
По нажатаю кнопки Пуск, таймер стартует это можно видеть по объекту текст т.к он показывает 1, но когда время становится больше либо равно 07.03.2024 10:02 ( значению vrTime , т.е занчение в Cal) , таймер все еще показывает 1 и он стопается.
Вопрос он должен выпасть в -1 или в 0, или я должен ручками его сбрасывать?
Здравствуйте.
Данные скрипты так, как Вы описали, работать не будут. Таймерные процедуры рассмотрены по ссылке (https://simple-scada.com/help/script/timers.html). Пример работы с таймерами можно найти в демо-проекте -> страница "Скрипты" -> "Простые скрипты (1)" -> пример №3). Если нужно поставить таймер на паузу, то нужно использовать процедуру "TimerPause (https://simple-scada.com/help/script/timerpause.html)". Если сбросить, то "TimerReset (https://simple-scada.com/help/script/timerreset.html)".
Чтобы при достижении значения переменной "vrTime" значения, заданного в календаре "Cal", таймер останавливался или сбрасывался, в скрипт (на событие "OnDataChange" компонента "Текст" с которым связана переменная "vrTime") нужно добавить соответствующую проверку и выполнение процедур "TimerPause" или "TimerReset":
begin
// если значение таймера >= значение календаря, то ставим таймер на паузу
if CompareDateTime(vrTime.AsDateTime, Cal.AsDateTime) >= 0 then
TimerPause(vrTime);
Text.Text := IntToStr(TimerGetState(vrTime));
end.
Также, в скрипте на кнопку Пуск нужно удалить строку "vrTime.Value := Cal.Value;"
Если не разберетесь, то пришлите для проверки на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите скрипты, которые нужно проверить. Опишите подробно, какую именно задачу Вы пытаетесь решить? Если требуется включать/выключать какое-либо оборудование по расписанию, то для этого можно использовать компонент "Расписание (https://simple-scada.com/help/manual/schedule.html)".