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

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

Автор Тема: Цвет. Работа-стоп-авария по двум переменным.  (Прочитано 2383 раз)

sidkurt

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Вопрос простой но поиском не нашел.
Есть две битовые переменные: 1ая.-работа(1) - стоп(0); 2ая.- авария(1) - нет аварии(0).
Соответственно устройство может сигнализировать кроме всего прочего, что работает и находится в аварии одновременно. Нужна индикация изменения цвета изображения в следующем виде:
Работает без аварии - синий.
Работает с аварией- мигание синий/красный
Авария- мигает красный серый
Не работает - серый.
Пытался через доп переменную не получилось. Не могу связать две переменные.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Цвет. Работа-стоп-авария по двум переменным.
« Ответ #1 : 09 Октября 2017, 20:31:57 »
Здравствуйте.

Нужно у изображения назначить основной переменной переменную "работа/стоп", а дополнительной переменную "авария/нет аварии". Затем в меню скриптов создать новый скрипт с типом события "Универсальный" с таким кодом:

Код
begin
  if not (Sender is TM_Object) then Exit;

  with Sender as TM_Object do
    if (Variable <> nil) and (VariableEx <> nil) then
    begin
      { работает / не работает }
      if Variable.AsBool = TRUE then
        Color := clDodgerBlue
      else
        Color := clNone;

      { авария / без аварии }
      if VariableEx.AsBool = TRUE then
        FlashColor := clRed
      else
        FlashColor := clNone;
    end;
end.

Теперь остается этот скрипт назначить изображению на события OnDataChange и OnDataChangeEx. Данный скрипт универсальный и подойдет любым другим изображениям, которые должны работать по тому же принципу.

Смотрите другие примеры скриптов в руководстве по скриптам.
« Изменён: 09 Октября 2017, 20:50:14 от Simple-Scada »