admin писал(а):То что качество составной переменной берется из переменных скрипта, это поведения сделано для более распространенного случая когда значение составной переменной вычисляется на основе некой Modbus переменной. В этом случае, когда нет связи с устройствам или какая другая ошибка, то составная переменная получает то же качество. Раньше было так, что качество составной переменной было всегда хорошее, если нет ошибок в скрипте.
Но в этом случае жаловались что связи нет, а качество используемой составной переменной почему то хорошее.
Полностью согласен (сам пришел к такому выводу), что есть необходимость в таком поведении функции Item(), как в случае отсутствия связи с прибором, так и в расчетах вида (один из примеров):
Или вот, скажем, следующий расчет (пример расчета расхода по датчикам скорости и уровня в канале):
Код: Выделить всё
Item(ItemQ) := Item(ItemV) * Item(ItemL) * K;
И как только возникает необходимость проанализировать переменные, в нашем случае при неисправности какого-либо датчика или занижение/завышение значений, согласно договорным отношениям с потребителем/поставщиком, мы обязана выставлять некую константу по несправному/занижающему/завышающему датчику в расчетах, в верхний пример необходимо ввести проверку на значение и качество переменных. И возникает необходимость в функциях для принятия решения, таких я не вижу. Такая же ситуация с расчетом суммарной мощности (убрать из расчета отключенный датчик).
Уже не знаю, как вас убедить (повторяюсь из ветки в ветки), рассмотрите возможность в следующих сборках добавить две дополнительных функции: установка/получения значения и установка/получения качества переменной не влияющих на результат (качество) составной переменной.