Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: George от 15 Мая 2018, 13:58:52

Название: Вывод на семафор от 2х переменных...
Отправлено: George от 15 Мая 2018, 13:58:52
Добрый день.
Можно-ли (и, если да, то подскажите как) вывести на один семафор изменения по двум переменным (цветом).
Т.е. на контроллере есть 2 переменных "Предупреждение" и "Тревога" (булиновские)
По изменению любой из них зеленый семафор должен менять цвет на красный или желтый.
Поскольку таких семафоров много, скрипт нужен универсальный.
(я, естественно, уже поэспериментировал, но удовлетворительного результата не получил)
Спасибо.
Название: Re: Вывод на семафор от 2х переменных...
Отправлено: kedr от 15 Мая 2018, 15:52:18
Переменную-предупреждение привязываем к объекту как основную, переменную-тревогу - как дополнительную.
Далее пишем универсальный скрипт:
Код: (delphi)
with Sender as TM_Object do
  case Variable.AsInt + 10*VariableEx.AsInt of
    00: Color := clGreen;     //-- Норма
    01: Color := clYellow;    //-- Предупреждение
    10,11: Color := clRed;    //-- Тревога
  end;
И привязываем этот скрипт к событиям OnDataChange и OnDataChangeEx объекта.
Название: Re: Вывод на семафор от 2х переменных...
Отправлено: kedr от 15 Мая 2018, 15:57:15
Или так, если речь чисто о булевых переменных:
Код: (delphi)
with Sender as TM_Object do
  if VariableEx.AsBool then
    Color := clRed
  else if AsBool then
    Color := clYellow
  else
    Color := clGreen;
  end;
Название: Re: Вывод на семафор от 2х переменных...
Отправлено: George от 15 Мая 2018, 17:04:48
Спасибо! Очень помогло!