Здравствуйте.
Пытаюсь в отчет добавить данные с типом обработки Разница. Но почему-то там всегда нулевые значения.
Протестировали, тип обработки "Разница" работает корректно. Пришлите на support@simple-scada.com текущую версию Вашего проекта, укажите отчет, который нужно проверить и приложите скриншот построенного отчета, в котором разница считается неверно.
У меня суточные отчеты и если на начало или конец периода вдруг не будет связи с объектом и переменная будет иметь плохое качество, то какое значение выведется в отчет: 0 или последнее хорошее? Делаю в отчете суммарные прости за сутки, как в примере. Работаю с внешней переменной, 0 - выключено, 1 - включено. Возникает вопрос: если нет связи с ОРС, серверном, то переменная становится 0 и время отсутствия связи записывается в простой. Есть ли какой-то стандартный способ исключить из расчета переменную с плохим качеством?
Есть несколько ситуаций:
1. Потеря связи с OPC-UA сервером (или выключение OPC-UA сервера вручную). В этом случае качество тегов не меняется, скада перестаёт получать новые данные от OPC-сервера (включая новые значения и отметки качества). Поэтому сервер скады сформирует разрыв в трендах (и отображает иконки с восклицательным знаком) и при расчетах данный разрыв не будет учитываться, он будет исключен из вычислений. Важно отметить, что разрывы при отключениях формируются только для UA-серверов. Для OPC-DA серверов при отключениях из-за особенностей DA-протокола разрыв не формируется, вместо него меняется только качество тегов на плохое.
2. Смена качества тегов на плохое. Качество тегов скада получает от OPC-серверов. OPC-сервер в разных ситуациях может выставлять переменным разное качество. Например, он может выставить плохое качество переменной если не смог считать её значение с конечного устройства (или по каким-то другим причинам, зависит от OPC-сервера). Такие значения попадут в расчеты и чтобы их исключить можно воспользоваться способами перечисленными ниже. В будущем постараемся добавить в источники данных дополнительную опцию, чтобы исключить данные с плохим качеством из расчетов.
Сейчас, для исключения данных с плохим качеством из расчетов можно:
1. Создать внутренние переменные, в которые будут записываться значения внешних переменных с учетом качества. В скрипте "Изменились переменные" записывать значения внешних переменных во внутренние с учетом качества (используя свойство "
IsGoodQuality"). Отключить архивацию у исходных переменных, включить архивацию у внутренних переменных-копий и в отчетах работать с ними.
2. Если Вы используете периодический отчет, то можно применить следующий способ: создать дополнительную внутреннюю переменную для контроля качества, затем создать скрипт с типом события "
Изменились переменные", добавить в него целевую переменную(по которой будет проверяться качество) как это описано
здесь и в данном скрипте записывать в созданную ранее внутреннюю переменную 0, когда нужно отметить плохое качество и 1, когда качество хорошее. Чтобы отметки времени у внешней и внутренней переменной точно совпадали нужно
в настройках OPC-сервера в опции "Метка времени" выбрать "Компьютер". Далее, можно
в периодическом отчете на шаге добавления источника данных в опции "Тип фильтра"(описание можно найти
по ссылке) выбрать "по переменной" и указать нашу переменную для контроля качества. Таким образом, в источник данных попадут только те архивные данные, в которых переменная-фильтр была не равна нулю, т.е. в нашем случае только данные с хорошим качеством.