Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - prog2

Страницы: [1]
1
Здраствуйте помогите организовать логику с этим скриптом, не могу понять это вообще возможно одним скриптом сделать или нужно 2 отдельно. В итоге работает так что поле марает либо красно желты либо желта зеленый   
Если температура ≤ 15 → сразу зелёный
Если температура > 15, но снижается (таймер растёт) → зелёный , даже если меньше 10 секунд
Если температура > 15 и не снижается , то: Первые 10 секунд — жёлтый После 10 секунд — красный
Код: (delphi)
begin
  // Проверяем, снижается ли температура
  if Shape1.Value < prevTemp.Value then
    vrCoolingTimer.Value := vrCoolingTimer.Value + 1
  else
    vrCoolingTimer.Value := 0;

  // Обновляем предыдущее значение после проверки
  prevTemp.Value := Shape1.Value;

  if Shape1.Value <= 15 then
  begin
    Shape1.Color := clLime;
    vrTimer.Value := 0;
    vrCoolingTimer.Value := 0;
  end
  else if vrCoolingTimer.AsInt > 0 then
  begin
    Shape1.Color := clLime; // Зелёный: температура снижается (до 10 сек)
  end
  else
  begin
    vrTimer.Value := vrTimer.Value + 1;

    if vrTimer.AsInt >= 100 then
      Shape1.Color := clRed // Красный: температура не снижается ≥ 10 сек
    else
      Shape1.Color := clYellow; // Жёлтый: только что вышла за норму
  end;
end.

Страницы: [1]