Simple-Scada forum

Simple-Scada 2 => Ошибки => Тема начата: Antonio от 28 Ноября 2018, 09:51:58

Название: Мигание цветом по дополнительной переменной
Отправлено: Antonio от 28 Ноября 2018, 09:51:58
В проекте создано поле, отображающее показания датчика (Real). В качестве дополнительной переменной этого поля назначен тэг, показывающий аварию датчика (Bool). На изменение дополнительной переменной повешен скрипт, включающий мигание цветом поля (при аварии датчика). Так вот, при изменении аварийного тэга с 0 на 1, мигание включается, а при возврате на 0 оно не отключается до перезапуска клиента. Причем, если точно такой же скрипт вешать на основную переменную для любого другого объекта, то все работает корректно.
Название: Re: Мигание цветом по дополнительной переменной
Отправлено: Simple_Scada от 28 Ноября 2018, 10:11:36
Здравствуйте!

Пришлите код скрипта установленного на событие OnDataChangeEx. Если есть возможность, пришлите на support@simple-scada.com папку с проектом из директории "\Simple-Scada\Projects\Имя_проекта" - проверим.
Название: Re: Мигание цветом по дополнительной переменной
Отправлено: Antonio от 28 Ноября 2018, 10:55:51
Код скрипта стандартный, как в примерах:
Код: (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.

В проекте действия по доп.переменным убраны. Обошелся вставкой мигающих прямоугольников возле поля. Отображаются при наличии аварии (корректно).           
Название: Re: Мигание цветом по дополнительной переменной
Отправлено: Simple_Scada от 28 Ноября 2018, 11:04:33
В коде Вы работаете со значением основной переменной, а Вам нужно проверять значение доп. переменной(свойство VariableEx (https://simple-scada.com/help/script/variableex.html)). Правильный скрипт будет таким:
Код: (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.   
Название: Re: Мигание цветом по дополнительной переменной
Отправлено: Antonio от 28 Ноября 2018, 11:25:01
Спасибо, большое. Не сообразил сразу, исправил - работает :)