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

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

Автор Тема: Вывод на семафор от 2х переменных...  (Прочитано 2262 раз)

George

  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Добрый день.
Можно-ли (и, если да, то подскажите как) вывести на один семафор изменения по двум переменным (цветом).
Т.е. на контроллере есть 2 переменных "Предупреждение" и "Тревога" (булиновские)
По изменению любой из них зеленый семафор должен менять цвет на красный или желтый.
Поскольку таких семафоров много, скрипт нужен универсальный.
(я, естественно, уже поэспериментировал, но удовлетворительного результата не получил)
Спасибо.

kedr

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Вывод на семафор от 2х переменных...
« Ответ #1 : 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 объекта.
« Изменён: 26 Мая 2018, 10:37:05 от Simple-Scada »

kedr

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Вывод на семафор от 2х переменных...
« Ответ #2 : 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;
« Изменён: 26 Мая 2018, 10:37:14 от Simple-Scada »

George

  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: Вывод на семафор от 2х переменных...
« Ответ #3 : 15 Мая 2018, 17:04:48 »
Спасибо! Очень помогло!
« Изменён: 26 Мая 2018, 10:37:44 от Simple-Scada »