_dp_fct (Функция точки данных)

Конфигурационный элемент _dp_fct предназначен для назначения элементу точки данных желаемой функции. Настройка конфигурационного элемента производится при помощи конфигурационной панели. Использование функций позволяет устанавливать математические связи между точками данных. Функция точки данных содержит один или несколько параметров, которые используются для расчета значения заданной функции и для присвоения рассчитанного значения исходному значению элемента точки данных. Допустимые параметры p1…pn являются исходными или текущими значениями других элементов точек данных.

ПРИМЕЧАНИЕ

Во избежание зацикливания функции не следует использовать элемент точки данных в качестве параметра его же функции.

Собственно функция представляет собой математическую связь между параметрами. Функции точек данных так же могут назначаться элементам точек данных в сценариях Control при помощи функции dpSet() (см. функции Control).

IconПРИМЕЧАНИЕ

В качестве параметров функции следует использовать только точки данных, принадлежащие той же системе, в которой находится элемент точки данных, к которому относится функция!

Для открытия конфигурационной панели для настройки функции необходимо щелкнуть левой кнопкой мыши по конфигурационному элементу «_dp_fct». В выпадающем списке справа вверху отображается имя (описание или псевдоним) редактируемого элемента точки данных. В выпадающем списке «Тип функции» доступны следующие опции:

  • Подключение DPE
  • Статистическая функция

Для открытия панели настройки функции необходимо нажать кнопку «Настроить…«. При нажатии кнопки «Закрыть» окно панели закрывается.

Рисунок. Панель функции точки данных

Функция точки данных

Атрибуты конфигурационного элемента приведены в Приложении.

ПАНЕЛЬ ФУНКЦИИ ТОЧКИ ДАННЫХ

При выборе типа функции «Подключение DPE» и нажатии кнопки «Настроить…» будет открыта следующая панель:

Рисунок. Панель функции точки данных

Параметры

В списке параметров указываются параметры, которые будут использоваться функцией при расчете результата.

  • Ввод нового параметра производится в текстовом поле справа от текста «p..=».
  • Управление последовательностью параметров производится при помощи кнопок (см. Кнопки). Текущий элемент в списке параметров отображается выделением.
    • Для удаления выделенного элемента из списка параметров необходимо нажать кнопку «Удалить«( Х ).
      • Для изменения элемента необходимо выбрать интересующий элемент щелчком левой кнопки мыши по данному элементу, указать новое значение в текстовом поле (справа от текста «p..=») и затем нажать кнопку «Изменить» (зеленая «галка»).
        • Ввод значения в текстовое поле также возможен при помощи селектора точек данных, который открывается при нажатии кнопки, находящейся справа от поля.

ВНИМАНИЕ

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

Для функции точки данных имеется возможность задания глобальной переменной. Значение для установки глобальной переменной считывается только один раз, после чего изменения источника значения для глобальной переменной не учитываются. Для примера на картинке выше это означает, что значение функции всегда умножается на одно и то же значение «g1». В выражении в поле «Функция:» также допустимо использование функции из библиотеки CTRL (<путь_проекта>/libs), при этом возвращаемое функцией значение может быть использовано в расчетах.

Функция

Данное поле используется для определения функции точки данных и для связи параметров друг с другом. Здесь вводятся заданные параметры p1, p2, … и математические связи. Допустимо использование операторов +,-,*,/,%,&,|,^,~,<<,>>, &&, ||, ?, <,>,<=,>=,==,!=,++ , см. Operators in CONTROL.

ПРИМЕР

Приведенный ниже простой пример демонстрирует возможности использования функций точек данных. В примере требуется рассчитать сумму C=A+B. Имеются три (существующих) элемента точки данных типа «float» — «DPE_C», «DPE_A» и «DPE_B».

  1. При помощи контекстного меню для добавления конфигурационных элементов элементу точки данных «DPE_C» необходимо добавить конфигурационный элемент «Функция точки данных» ( _dp_fct ).
  2. Для открытия панели конфигурирования функции точки данных щелкнуть левой кнопкой мыши по конфигурационному элементе «_dp_fct» элемента точки данных «DPE_C».
  3. В выпадающем списке «Тип функции» выбрать тип «Подключение DPE».
  4. Нажать кнопку «Настроить…» для открытия следующей конфигурационной панели.
  5. В текстовом поле ( рядом с текстом «p..=» ) ввести первый параметр «DPE_A.:_original.._value».
  6. Нажать кнопку для добавления параметра в список параметров (например, кнопку «Следующая позиция»).
  7. Затем ввести второй параметр «DPE_B.:_original.._value» и нажать кнопку для добавления (например, кнопку «Следующая позиция»).
  8. Ввести выражение «p1+p2» в поле «Функция».
  9. Нажать кнопку «OK» для сохранения выполненных изменений функции точки данных для элемента «DPE_C» и закрытия панели.

Статистические функции

Статистические функции используются для расчета статистических значений (например, среднего, максимального значения и т.п.) для определенного интервала времени для текущих (online) значений, исходных (original) значений и автономных (offline) значений (см. Корректирующие значения и статистические функции). В зависимости от настроек также могут учитываться описатели качества (биты состояния). На панели имеются три вкладки:

Рисунок. Статистические функции — вкладка «Параметры»

Вкладка «Параметры»

  • В выпадающем списке справа вверху отображается имя (описание или псевдоним) редактируемого элемента точки данных.
        • Атрибуты точек данных выбираются с помощью селектора точек данных, вызываемого путем нажатия соответствующей кнопки, или вводятся непосредственно в текстовое поле. Ввод параметров является обязательным.
          • Управление последовательностью параметров производится при помощи кнопок (см. Кнопки).
            • Справа от текста «p..=»  находится выпадающий список, обеспечивающий выбор различных статистических функций.
              • В области ниже опционально могут быть указаны глобальные переменные. Также как и в функции точки данных, значение для глобальной переменной считывается только один раз, после чего изменения источника значения для глобальной переменной не учитываются (см. информацию выше).
                • Справа от текста «Результат =» расположено текстовое поле для ввода правила расчета результата.
      Типint / floatбитвсеКонстанты языка ControlКомментарий
      Мин. значениеда  SF_MIN 
      Макс. значениеда  SF_MAX 
      Время мин. знач.нет (время)  SF_MIN_TIMEВремя появления минимального значения
      Время макс. знач.нет (время)  SF_MAX_TIMEВремя появления максимального значения
      КоличестводададаSF_NUMBER 
      Суммада  SF_SUM 
      Интеграл 0да  SF_INTEGRAL0Интеграл функции ступенчатой интерполяции (интерполятора нулевого порядка)
      Интеграл 1да  SF_INTEGRAL1Интеграл функции линейной интерполяции (интерполятора первого порядка)
      Среднее значениеда  SF_AVGСумма/Количество
      Средн. знач. 0да  SF_AVG_WT0Интеграл функции ступенчатой интерполяции (интерполятора нулевого порядка) / Время
      Средн. знач. 1да  SF_AVG_WT1Интеграл функции линейной интерполяции (интерполятора первого порядка) / Время
      Длит. 0 да SF_TIME0Длительность состояния 0
      Длит. 1 да SF_TIME1Длительность состояния 1
      Любой фронт да SF_CHANGESКоличество изменений состояния (как 0 -> 1, так и 1 -> 0)
      Фронт 0 ->1 да SF_CHANGES01Количество изменений состояния 0-> 1
      Фронт 1->0 да SF_CHANGES10Количество изменений состояния 1 -> 0
      Начальное значениеда  SF_SAMPLEЗначение в начале интервала
      Конечное значениеда  SF_ENDVALUEЗначение в конце интервала
      Разностьда  SF_DIFFКонечное значение минус начальное значение

      Минимальное и максимальное значения рассчитываются на основании ступенчатой интерполяции, а не на основании набора значений, т.е. времена появления минимального и максимального значений всегда находятся в текущем диапазоне даже при отсутствии новых значений в рассматриваемом временном интервале (при этом минимальному и максимальному значениям подобного интервала присваивается первая известная метка времени).

      Единица измерения результата для обеих интегральных функций: единица выходной величины, умноженная на секунды.

      Вкладка «Синхронизация»

      Рисунок. Вкладка «Синхронизация»

      Вкладка «Синхронизация» предназначена для задания параметров, связанных со временем.

      ПРИМЕР

      1. Поле «Временной интервал расчета» предназначено для указания периода, для которого производится расчет. Например, значение 86400 секунд соответствует периоду в 1 сутки. Кнопка с изображением часов открывает диалоговое окно, позволяющее указывать период в днях, часах и т.д. (Рисунок: Диалоговое окно временного интервала).
      2. Область «Запустить расчет» предназначена для указания момента времени запуска расчета, например, каждое воскресенье в 0ч00м00с. В этом случае будут рассчитываться средние значения для каждого дня недели. Примечание: вычисление производится не только по воскресным дням, но начиная с времени синхронизации каждые «Х» секунд (X = временной интервал расчета. В случае для рисунка выше — каждые 3600 секунд (каждый час).
      3. При установке флажка «Автозадержка» (при этом поле для ввода справа от флажка и текст «[c] задержка» становятся невидимыми) функция автоматически ожидает появления первого значения, которое находится за пределами интервала. Например, в случае часового интервала (и использования лабораторных значений), функция добавляет первое значение, которое не попадает в часовой интервал, в следующий часовой интервал. При снятом флажке «Автозадержка», в поле для ввода справа от флажка возможно ввести значение, которое будет сдвигать расчет на соответствующее время. Например, средние значения за день будут определяться после и на основании расчета средних значений за час.
        При создании новой точки данных имеется возможность задания момента времени, который до одной недели предшествует дате создания точки данных. Допустим, сегодня 24 июля 2007г. Создается новая точка данных со статистической функцией с задержкой расчета, после чего историческое значение записывается в точку данных с датой 20 июля 2007г., 10:1.

      ПРИМЕЧАНИЕ

      При задании для мастер-точки данных времени задержки, которое равняется временному интервалу расчета, для точек данных, созданных на основании мастер-точки данных, будут заданы произвольные времена задержки:

      Значение за каждую минуту  ->  10 — 50

      Значение за каждые 5 минут ->  70 — 200

      Значение за каждые 10, 15 минут ->  210 — 600

      Значение за каждый час   ->  610 — 1800

      Значение за каждый день  ->  1810 — 3600

      Значение за каждый месяц   ->  3610 — 10000

      Значение за период больше одного месяца ->  14410 — 18010   -> через 5 часов так же рассчитываются значения за год!!

      При наличии, например, типа точек данных с уровнем сжатия «Значение за каждые 5 минут», при установке Автозадержки для статистической функции мастер-точки данных, равной временному интервалу расчета, то время автоматической задержки для элемента «C1» (значение за каждые 5 минут) точки данных (созданной с типом сжатия AC) будет выбрано в диапазоне от 70 до 200 (см. список выше).

      1. Скользящий расчет. Данная опция позволяет рассчитывать среднее, максимальное и другие значения (скользящий расчет можно активировать для любой статистической функции), например, для последних четырех 15-минутных значений, полученных в течение последних часов (при Временном интервале расчета — 1 час). Интервал должен иметь тип «целое число». Количество рассчитанных значений зависит от Временного интервала расчета и Частичного интервала. Например, при Временном интервале расчета 1 час и Частичном интервале 10 минут, будут рассчитаны 6 значений.
      2. Инициализировать вычисление из архива. Данный флажок следует установить при необходимости определения значений за месяц. Если данный флажок установлен, после запуска системы данные за текущий период будут считываться из архива и использоваться в расчетах.

      Данную опцию следует выбирать для тех интервалов вычисления, для которых

      1. входные сигналы были сохранены в архиве.
      2. интервал времени расчета больше среднего времени запуска проекта.
      3. Сохранять промежуточные результаты с интервалом. Установка данного флажка позволяет циклически выводить промежуточные результаты. Например, в ходе текущего определения дневного максимума пользователь может наблюдать промежуточный результат максимального суточного значения. Интервал времени расчета указывается в поле ввода, которое становится доступным при установленном флажке.

      ПРИМЕЧАНИЕ

      Значение, которое находится точно на границе интервалов, включается в расчет интервала, начинающегося с данной границы.

      ПРИМЕЧАНИЕ

      В том случае, если менеджер событий не справляется со своевременным расчетом статистических функций (например, вследствие перегрузки), начиная c задержки в n интервалов (вне зависимости от времени задержки!), более давние периоды в буфере будут удалены, при этом будет отображено соответствующее сообщение и будет рассчитан последний интервал n, который задается при помощи записи statFctMaxIntervalsInPast в конфигурационном файле config (по умолчанию n=3). Во внимание принимаются 3 интервала (период с конца интервала до текущего момента). Это также относится к функциям с задержкой расчета значений. Они должны быть выполнены в течение трех периодов, иначе пропущенные периоды будут удалены.

      Вкладка «Биты»

      Вкладка «Биты» позволяет учитывать биты состояния в расчетах.

      Рисунок. Вкладка настройки битов.

      При этом имеется возможность обработки следующих описателей качества.

      Проверяемый бит состоянияДобавляемый бит состояния
      недостоверное значениеaut_inv
      заменяющее значениеexp_default
      пользовательский бит 1userbit1
      ….….
      пользовательский бит 8userbit8

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

      Выпадающий список «Обработка битов состояния» позволяет выбрать одну из следующих опций:

      • Не учитывать: бит состояния не учитывается в расчетах (по умолчанию); статистические функции рассчитываются так же, как и в более ранних версиях программы (режим совместимости).
      • Игнорировать значение: значения, для которых был установлен выбранный бит (бит выбирается путем установки флажка), будут обрабатываться так, как будто они никогда не появлялись; при этом Временной интервал расчета для статистических функций не изменяется. При установке флажков для нескольких битов, значения данных битов объединяются логическим «ИЛИ», результат объединения используется далее в расчете. Для всех перечисленных здесь битов должно быть настроено одинаковое правило обработки битов состояния (например, при выполнении настройки с использованием менеджера ASCII). В противном случае будет выведено сообщение об ошибке при параметрировании.
        • Игнорировать период: период, в течение которого данный бит был установлен, не учитывается в расчете. При установке флажков для нескольких битов, значения данных битов объединяются логическим «ИЛИ», результат объединения используется далее в расчете. Для всех перечисленных здесь битов должно быть настроено одинаковое правило обработки битов состояния (например, при выполнении настройки с использованием менеджера ASCII). В противном случае будет выведено сообщение об ошибке при параметрировании.
          • Передать биты: бит состояния не учитывается в расчетах (по умолчанию); статистические функции рассчитываются так же, как и в более ранних версиях программы (режим совместимости). Помимо этого, бит состояния присваивается результату расчета в зависимости от установленного порогового значения.

      Пороговое значение («Порог«) представляет собой значение в процентах, которое оценивается следующим образом:

      • Если бит был установлен в течение промежутка времени, большего чем указанный % от Временного интервала расчета, то значение данного бита присваивается результатам расчета (бит недостоверности и бит заменяющего значения являются битами «только для чтения» и не могут добавляться непосредственно).
      • При Пороге = 0% значение бита присваивается вне зависимости от периода, в течение которого бит был установлен.
      • При отрицательном значении (по умолчанию = -1), бит не присваивается никогда. В имеющихся статистических функциях бит «aut_inv» также устанавливается при появлении внутренней ошибки. Данное состояние «недостоверности» объединяется логическим «ИЛИ» с состоянием бита недостоверности.

      Рисунок. Примеры расчетов с использованием статистических функций

      Корректирующие значения в статистических функциях

      Статистические функции точек данных имеют возможность обработки корректирующих значений. Обработка выполняется автоматически при применении функции точки данных к конфигурационному элементу «_offline.._value» (но не к «_original/_online.._value»). Подробнее:

      Если со стороны пользователя создается корректирующее значение «xx.:_corr.._value» для точки данных, которая является источником значений для другой статистической функции, то менеджером событий будет выполнен пересчет статистической функции. Возможны два случая:

      Значение для интервала еще не рассчитано

      Если для интервала еще не закончены вычисления, то корректирующее значение включается в текущий расчет в конце интервала. Дополнительно:

      • зависимое значение (в примерах это значение за день) будет отмечено как «корректирующее» только в случае, если изменение превышает величину «statFctLimitForMarkAsCorrcted» (по умолчанию: 0; см. ниже) от значения за день без коррекции.
      • в остальных случаях значение не отмечается как «корректирующее». Для принятия данного решения значение БЕЗ КОРРЕКЦИИ (текущее значение) сравнивается со значением С КОРРЕКЦИЕЙ (автономное значение) (см. Запись в конфигурационном файле «statFctInheritCorrValues»).

      ПРИМЕР

      Необходимо получить средние значения за каждый час, день и месяц. Значение за час для 02:00 корректируется в 06:00. При этом суточное значение, которое будет рассчитываться в 24:00, будет вычисляться уже с учетом данной коррекции.

      Значение для интервала уже рассчитано

      Если вычисления для интервала уже закончены, то для того, чтобы значение было отмечено как «корректирующее», расчет должен производиться с использованием значений из истории.

      ПРИМЕЧАНИЕ

      Данное корректирующее значение затем может использоваться для расчета в другой статистической функции (рекурсия!).

      ПРИМЕР

      Вчерашнее значение за час, полученное в 02:00, корректируется значением, полученным сегодня в 06:00. После этого пересчитывается уже рассчитанное суточное значение. Это суточное значение для вчерашнего дня, в свою очередь, используется для расчета значения за месяц, которое еще не вычислено. Данное значение за месяц будет рассчитываться в соответствии с первым методом.

      statFctInheritCorrValues

      Поведение статистической функции может быть настроено при помощи конфигурационного файла. Запись «statFctInheritCorrValues» (тип: bool, значение по умолчанию: 1) определяет необходимость использования в расчетах корректирующих значений. По умолчанию корректирующие значения включаются в расчет.

      [general]
      statFctInheritCorrValues = 1

      При значении 0 корректирующие значения не учитываются, статистические функции выполняются как обычно.

      statFctLimitForMarkAsCorrected

      Запись «statFctLimitForMarkAsCorrected» (предпосылка: «statFctInheritCorrValue = 1») определяет порог для полученных корректирующих значений (тип: int, значение по умолчанию: 0, диапазон 0-1000 ‰ (тысячных долей)).

      [general]
      statFctLimitForMarkAsCorrected = 0

      Если значение равно 0, все значения отмечаются как «корректирующие». При значении > 0 будут отмечаться только те значения, изменение которых превышает x ‰.

      ВНИМАНИЕ

      Корректирующее значение вызывает повторный расчет только для того интервала, для которого оно было задано. Повторный расчет последующих интервалов не предусмотрен.     

      Если корректирующее значение влияет на последнее значение интервала, все последующие интервалы (до тех интервалов, в которых корректирующее значение уже не будет вызывать никаких изменений) должны были бы быть пересчитаны заново (в зависимости от статистических функций и значений).

      ПРИМЕР

      Некоторое количество дней присутствовало постоянное значение 10, на основании которого было рассчитано среднесуточное значение 10. При корректировке пользователем одного из значений с 10 на 15,  все последующие интервалы в этом временном диапазоне должны были бы быть пересчитаны заново, однако этого не происходит. При установке нового корректирующего значения изменится только среднесуточное значение для дня, к которому относится корректирующее значение. Для всех последующих дней среднее значение 10 останется неизменным. В дальнейшем будет автоматически скорректировано только среднее значение за ту неделю, которая включает в себя день, к которому относятся корректировки; при этом значения за последующие недели не будут скорректированы.

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *