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

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

Автор Тема: Зона нечувствительности в скриптах  (Прочитано 4336 раз)

АО.МХЗ

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Добрый день
Подскажите пожалуйста как ведет себя параметр зона нечувствительности в скрипте типа "изменились переменные".
Будет ли отрабатывать скрипт, если изменение переменной не превысило порог установленной зоны.
Можно ли как-то программно в скрипте обратиться к параметру зона нечувствительности?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Зона нечувствительности в скриптах
« Ответ #1 : 12 Февраля 2018, 09:28:07 »
Здравствуйте.

Цитировать
Подскажите пожалуйста как ведет себя параметр зона нечувствительности в скрипте типа "изменились переменные".
Скрипт с типом события "Изменились переменные" выполняется каждый раз, когда любая из выбранных переменных изменила своё значение. Зона нечувствительности не влияет на выполнение такого скрипта.

Цитировать
Можно ли как-то программно в скрипте обратиться к параметру зона нечувствительности?
Это свойство недоступно для чтения и изменения через скрипты. Уточните какую задачу нужно решить с помощью этого параметра, возможно мы добавим недостающие функции.
« Изменён: 12 Февраля 2018, 09:45:32 от Simple_Scada »

АО.МХЗ

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Зона нечувствительности в скриптах
« Ответ #2 : 13 Февраля 2018, 11:52:38 »
Цитировать
Уточните какую задачу нужно решить с помощью этого параметра, возможно мы добавим недостающие функции.
Ситуация следующая. Есть датчики уровня жидкости. В ёмкость вручную наливают сырьё. Необходимо как-то определять время начала закачки и окончание. Ну и, собственно, объем закачанного за это время.

Волна, образующаяся от падения жидкости в ёмкость, даёт ложные срабатывания скрипта "по-изменению переменных". Волна довольно долго затухает. Да и любые вибрации ёмкости дают изменение уровня и срабатывания срипта.

Хотелось бы не выдумывать велосипед с фильтрацией значений переменной, а воспользоваться фильтром переменной из коробки. Ну типа если не превысило изменение переменной порогового значения - скрипт не запускается. Как-то так.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Зона нечувствительности в скриптах
« Ответ #3 : 16 Февраля 2018, 16:19:33 »
Цитировать
Хотелось бы не выдумывать велосипед с фильтрацией значений переменной, а воспользоваться фильтром переменной из коробки.
Рассматривали применение зоны нечувствительности под Вашу задачу. Получается следующее: у переменной есть две зоны нечувствительности, одна для выдачи сообщений, вторая для архивации. Зона для сообщений обрабатывается только если у переменной включены границы на вкладке "Дополнительные" и в проекте включены "Сообщения о нарушении границ". Зона для архивации обрабатывается только если у переменной включена архивация. Т.е. обе зоны проверяются только тогда, когда они действительно нужны (можно проверять зоны всегда для всех переменных, но в большинстве случаев они не будут использоваться). Мы можем добавить специальное свойство, которое позволит понять нарушена ли зона нечувствительности у переменной, или нет.  Т.е. в OnDataChange скрипте можно будет писать так:
Код
begin
  if myVar.TrendDeadZoneChange then
    Text1.Text := 'Значение вышло за пределы зоны нечувствительности';
end.

, но работать это будет только для переменных с включенной архивацией. Аналогичное свойство можно сделать для зоны сообщений и работать оно будет только для переменных у которых включены границы + в проекте включены "Сообщения о нарушении границ".