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

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

Автор Тема: Мигание цветом по дополнительной переменной  (Прочитано 4212 раз)

Antonio

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
В проекте создано поле, отображающее показания датчика (Real). В качестве дополнительной переменной этого поля назначен тэг, показывающий аварию датчика (Bool). На изменение дополнительной переменной повешен скрипт, включающий мигание цветом поля (при аварии датчика). Так вот, при изменении аварийного тэга с 0 на 1, мигание включается, а при возврате на 0 оно не отключается до перезапуска клиента. Причем, если точно такой же скрипт вешать на основную переменную для любого другого объекта, то все работает корректно.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
Здравствуйте!

Пришлите код скрипта установленного на событие OnDataChangeEx. Если есть возможность, пришлите на support@simple-scada.com папку с проектом из директории "\Simple-Scada\Projects\Имя_проекта" - проверим.

Antonio

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Код скрипта стандартный, как в примерах:
Код: (delphi)
begin
  if Sender is TM_Object then   // проверяем, что Sender это объект
    with Sender as TM_Object do // приводим Sender к типу "TM_Object"
      if AsBool = true then          // если значение переменной объекта равно 1, то
        FlashColor := clRed          // включить мигание объекта красным цветом
      else                                   // иначе
        FlashColor := clNone;     // отключить мигание объекта
end.

В проекте действия по доп.переменным убраны. Обошелся вставкой мигающих прямоугольников возле поля. Отображаются при наличии аварии (корректно).           
« Изменён: 28 Ноября 2018, 10:58:31 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
В коде Вы работаете со значением основной переменной, а Вам нужно проверять значение доп. переменной(свойство VariableEx). Правильный скрипт будет таким:
Код: (delphi)
begin
  if Sender is TM_Object then   // проверяем, что Sender это объект
    with Sender as TM_Object do // приводим Sender к типу "TM_Object"
      if VariableEx.AsBool = true then // если значение доп. переменной объекта равно 1, то
        FlashColor := clRed     // включить мигание объекта красным цветом
      else                      // иначе
        FlashColor := clNone;   // отключить мигание объекта
end.   
« Изменён: 28 Ноября 2018, 11:09:51 от Simple_Scada »

Antonio

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Спасибо, большое. Не сообразил сразу, исправил - работает :)