воскресенье, 1 сентября 2013 г.

ручная фильтрация праметров с учетом качества



собственно все очень просто и понятно ... но всеже :)

есть у нас параметр me.input, к примеру  и нужно при определенных условиях его дальше не передавать или передавать не его ... ну или [придумать что нужно  с ним сделать]

передаем мы его в me.output

пишем вот такой скрипт

имя
script : setOutput

условия
Trigger type: DataChange 
Expression: me.input
Quality changes: True

сам скрипт в котором я  копирую значение чеез SetAttributeVT( Attribute, Value, TimeStamp);
если разница между значениями меньше 100 ну а если больше то тоже копирую но уже без "извращений" и выставляю ему качество в "bad"

dim diff as integer;
diff = 100; ' предел для фильтрации шума, если нужно менять то задать как UDA
if isGood(me.input) and ABS(me.output - me.input) < diff then
SetAttributeVT( me.output , me.input, me.input.Time);
else
me.output = me.input; ' если не нужно передавать значение новое то закоментровать
setBad(me.output );
endif;