Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: АО.МХЗ от 09 Февраля 2018, 16:01:40

Название: Зона нечувствительности в скриптах
Отправлено: АО.МХЗ от 09 Февраля 2018, 16:01:40
Добрый день
Подскажите пожалуйста как ведет себя параметр зона нечувствительности в скрипте типа "изменились переменные".
Будет ли отрабатывать скрипт, если изменение переменной не превысило порог установленной зоны.
Можно ли как-то программно в скрипте обратиться к параметру зона нечувствительности?
Название: Re: Зона нечувствительности в скриптах
Отправлено: Simple-Scada от 12 Февраля 2018, 09:28:07
Здравствуйте.

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

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

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

Хотелось бы не выдумывать велосипед с фильтрацией значений переменной, а воспользоваться фильтром переменной из коробки. Ну типа если не превысило изменение переменной порогового значения - скрипт не запускается. Как-то так.
Название: Re: Зона нечувствительности в скриптах
Отправлено: Simple-Scada от 16 Февраля 2018, 16:19:33
Цитировать
Хотелось бы не выдумывать велосипед с фильтрацией значений переменной, а воспользоваться фильтром переменной из коробки.
Рассматривали применение зоны нечувствительности под Вашу задачу. Получается следующее: у переменной есть две зоны нечувствительности, одна для выдачи сообщений, вторая для архивации. Зона для сообщений обрабатывается только если у переменной включены границы на вкладке "Дополнительные" (https://simple-scada.com/help/manual/variable-new.html) и в проекте включены "Сообщения о нарушении границ". Зона для архивации обрабатывается только если у переменной включена архивация. Т.е. обе зоны проверяются только тогда, когда они действительно нужны (можно проверять зоны всегда для всех переменных, но в большинстве случаев они не будут использоваться). Мы можем добавить специальное свойство, которое позволит понять нарушена ли зона нечувствительности у переменной, или нет.  Т.е. в OnDataChange скрипте можно будет писать так:
Код
begin
  if myVar.TrendDeadZoneChange then
    Text1.Text := 'Значение вышло за пределы зоны нечувствительности';
end.

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