KPI

Материал из DPA
Перейти к навигации Перейти к поиску

Содержание

Настройка микросервиса KPI

Перед началом работы убедитесь, что микросервис KPI установлен: Меню настройки  -> Микросервисы  


В случае, если микросервис KPI отсутствует в списке:

  1. Скачайте актуальную версию DPA: https://rundpa.com/ru/download Запустите установочный файл, отключите флаг “Использовать предыдущие параметры установки”, на шаге “Выбор компонентов”, поставьте флаг “DPA. KPI”. Обратите внимание, что для работы микросервиса требуется .NET 5.0 (ссылка)
  2. На шаге “DPA. KPI” пропишите экземпляр SQL-сервера и выберите новую или существующую базу данных (обратите внимание, база микросервиса и база host - разные базы!)
  3. После установки вернитесь в модуль “Микросервисы”, нажмите кнопку “Добавить” и заполните следующие параметры (пример настроек по умолчание приведен на снимке экрана ниже):
    1. Протокол (http или https)
    2. Адрес машины, на которой развернут микросервис, если он отличается от адреса HOST
    3. Порт (по умолчанию 5780)


При успешном подключении в колонке состояние видим, что микросервис успешно подключен.

Базовые и расчетные показатели

Контекст расчета KPI определяется набором рабочих центров (РЦ), базовых и расчетных показателей (БП и РП).

БП представляет собой временной ряд, т.е. совокупность последовательных интервалов времени и значений на этих интервалах. При запуске контекста, БП загружаются микросервисом KPI из родительской системы, с момента времени, указанного в поле «Дата начала» в настройках контекста. В дальнейшем повторные запросы для получения новых данных производятся для каждого БП в соответствие с настройкой «Период опроса». БП загружаются для каждого РЦ контекста по очереди.

Для каждого БП необходимо задать имя переменной и тип. Имя переменной необходимо для указания данного БП в формулах расчета РП. Имя переменной должно начинаться с буквы, не содержать спецсимволов и пробелов.

БП могут быть следующих видов:

  • унифицированный базовый показатель;
  • индикатор.

Унифицированный базовый показатель имеет общие настройки для всех РЦ. Список доступных в системе БП приведен в таблице.

имя api название описание значения источник
actualOperation фактическое время операции интервалы выполнения задания по данным оператора, исключая простои 1/0 данные оператора
actualOperationDowntime фактическое время простоя интервалы простоя, указанные оператором 1/0 данные оператора
plannedOperation плановое время операции интервал времени, на котором запланировано задание 1/0 задания
actualGoodProgress производительность по качественным скорость изготовления качественных изделий, рассчитанная по отметкам выпуска оператора, с учетом простоев изделий в час данные оператора
actualRejectedProgress производительность по браку скорость изготовления брака, рассчитанная по отметкам выпуска оператора, с учетом простоев изделий в час данные оператора
actualUndefinedProgress производительность по условно годным скорость изготовления условно годных изделий, рассчитанная по отметкам выпуска оператора, с учетом простоев изделий в час данные оператора
actualTotalProgress производительность общая скорость изготовления изделий, рассчитанная по отметкам оператора, с учетом простоев изделий в час данные оператора
plannedQuantity плановая производительность плановая скорость изготовления, равная отношению числа изделий в задании к длительности задания. значение определено на интервалах фактического времени операции (actualOperation=1) изделий в час задания и данные оператора
shiftWorkingTime рабочее время время смен по расписанию 1/0 настройки системы
productionTime время операций на рабочем центре автоматический режим работы станка 1/0 машинные данные

Для БП типа индикатор необходимо указать конкретный индикатор для каждого РЦ, поскольку РЦ могут иметь различный набор индикаторов и разные наименования для них. При этом в дальнейших расчетах БП указывается общим именем переменной, определенном в его настройках.

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

Формулы РП могут включать имена БП или РП, константы, бинарные операторы, скобки, математические функции, а также функции расчета итогов (агрегирующие функции).

Константы задаются в числовом виде, с точкой, в качестве разделителя дробной части. Допустима также экспоненциальная форма записи. Например: 1.3, 1.7e3 (эквивалентно 1700), 1E-3 (эквивалентно 0.001).

Имена переменных БП и РП должны начинаться с буквы (латиницы или кириллицы), могут также содержать цифры и символ _. Буквы верхнего и нижнего регистра считаются различными, поэтому, например, названия «Индикатор» и «индикатор» будут интерпретированы, как разные переменные.

РП может быть определен двумя способами: как временной ряд или как итоговый показатель. Формула РП временного ряда должна включать хотя бы один РП временного ряда, либо БП. Такие РП вычисляются по мере поступления данных в микросервис, и полученные значения сохраняются в базе данных. Для каждого РЦ сохраняется отдельный ряд РП.

Итоговый РП представляет собой одно значение, рассчитываемое для некоторого заданного интервала времени. Такой РП вычисляется непосредственно при запросе к микросервису, например, из аналитик. Формула итогового РП может содержать другие итоговые РП, а также агрегирующие функции, примененные к БП или РП временного ряда. Итоговый РП может быть получен для каждого РЦ контекста в отдельности, и как общий для всех РЦ, заданных в запросе.

Для обоих видов РП доступен одинаковый набор бинарных операторов. В таблице приведены доступные операторы, в соответствие с их математическим приоритетом.

^ возведение в степень
* / умножение, деление
+ - сложение, вычитание
> < >= <= == != операции сравнения (больше, меньше, больше или равно, меньше или равно, равенство, неравенство)
& логическое И
| логическое ИЛИ
? ?? операции с отсутствующими значениями

Для расчета логических выражений в системе используется соглашение, что значения больше нуля соответствуют значению «истина», а меньше - «ложь», и наоборот, логические операции и операции сравнения возвращают 1 в качестве значения «истина» и 0 – «ложь». Некоторые примеры вычислений для логических операций и операций сравнения приведены в таблице

a b a | b a & b a < b a <= b a ==b a != b
0 0 0 0 0 1 1 0
1 1 1 1 0 1 1 0
0 1 1 0 1 1 0 1
-10 10 1 0 1 1 0 1

В системе поддерживаются отсутствующие (неопределенные) значения. Такие значения не учитываются при расчете итогов, и для большинства операций применимо правило, если какой-либо аргумент не определен, результат также является неопределенным. Исключением является оператор ??, предназначенный для установки неопределенных значений в левой части в значения по умолчанию в правой. И наоборот, оператор ? позволяет получить неопределенные значения, в случае невыполнения заданного критерия в левой части, либо вернут значение справа, если критерий истинный. Например:

a b a ? b a ?? b a + b
1 2 2 1 3
0 2 нет значения 0 2
нет значения 2 нет значения 2 нет значения
1 нет значения нет значения 1 нет значения
нет значения нет значения нет значения нет значения нет значения

В выражениях доступны математические функции минимума и максимума с произвольным количеством аргументов – min, max, а также функция модуля abs.

min(1,2,3) 1
max(1,2) 2
abs(-3) 3
abs(0) 0
abs(3) 3
abs(1,2) неверная формула

В выражениях для итоговых РП можно использовать 3 агрегирующие функции:

  • sum – сумма (интеграл) значений на интервале;
  • dur – длительность интервала, на котором значение известно и определено;
  • avg – среднее значение на интервале, выражение avg(РП) эквивалентно выражению sum(РП)/dur(РП).

Аргументом агрегирующей функции может быть только БП или РП временного ряда. Вычисляемые выражения в качестве аргумента не поддерживаются. Например, выражение avg(БП+РП) является некорректным. В таком случае нужно сначала определить РП2 как БП+РП, и использовать выражение вида avg(РП2). Тогда РП2 будет рассчитан предварительно, по мере поступления данных БП и расчета РП, а итог будет рассчитан в момент обработки запроса.

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

  • РП2 – не определен

РП1: РП2 + БП1

  • РП1 зависит от РП2, который зависит от РП3, определенный через РП1 – циклическая зависимость

РП1: РП2

РП2: РП3

РП3: РП1

Примеры контекстов

Контекст для расчета ОЕЕ по машинным данным

Базовые показатели:

Имя переменной Тип Значение комментарий
feederate индикатор индикаторы РЦ, соответствующие коррекции скорости подачи полагаем, что производительность пропорциональна данному значению. 100% - максимальная производительность
production базовый показатель productionTime интервалы производства по машинным данным

Производные показатели:

Имя переменной Формула Основной комментарий
productivity production ? feedrate/100 нет учитываем мгновенную производительность только на интервалах производства, а также делаем пересчет из процентов в значения в диапазоне 0-1
Производительность avg(productivity) да итоговое значение производительности, как средняя производительность за период
Доступность avg(production) да итоговое значение доступности, как доля временных интервалов, на которых, согласно машинным данным было производство
ОЕЕ Производительность * Доступность да итоговый показатель ОЕЕ

Контекст для расчета OEE по данным оператора, исключая интервалы времени без запланированных заданий

Базовые показатели:

Имя переменной Тип Значение комментарий
operation базовый показатель actualOperation интервалы операций
downtime базовый показатель actualOperationDowntime интервалы простоев
planned базовый показатель plannedQuantity плановая производительность
good базовый показатель actualGoodProgress фактическая производительность по качественным изделиям
total базовый показатель actualTotalProgress фактическая производительность по всем изделиям

Производные показатели:

Имя переменной Формула Основной комментарий
taskOperation actualOperation) ? actualOperation нет интервалы времени выполнения операций в пределах какого-либо задания; вне заданий значение не определено
Качество sum(good)/sum(total) да итоговый показатель, как отношение количества произведенных качественных изделий на интервале запроса, к общему количеству изделий
Производительность sum(total)/sum(planned) да итоговый показатель, как отношение общего количества произведенных изделий на интервале запроса, к плановому количеству изделий
Доступность avg(taskOperation) да итоговое значение доступности, как доля временных интервалов без простоя во время выполнения заданий
ОЕЕ Производительность * Доступность * Качество да итоговый показатель ОЕЕ

Данный пример отличается от предыдущего тем, что в нем доступность рассчитывается без учета интервалов времени, на которые задания не были назначены. То есть первый вариант определяет ОЕЕ с учетом эффективности планирования, а второй показывает именно эффективность выполнения заданий оператором. Таким образом, гибкая настройка системы позволяет получать расчет OEE в разных разрезах для получения информативных значений в каждом практическом случае.

Редактирование контекстов

Реализация системы накладывает некоторые технические ограничения на возможности редактирования контекстов, которые уже запускались ранее. Если в базе уже есть какие-либо данные, относящиеся к данному контексту, при изменении контекста эти данные не будут автоматически пересчитаны. Поэтому:

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

Допустимо:

  • добавлять новые РП в контекст;
  • добавлять новые БП в контекст;
  • удалять РП и БП, не используемые в расчетах;
  • изменять названия и формулы итоговых РП;
  • удалять и добавлять РЦ.

Допустимо, но не рекомендуется:

  • согласованно изменять названия БП и РП временных рядов (то есть одновременно в определении и во всех формулах)
  • изменять формулы на математически эквивалентные (например, a+b на b+a).

Во всех случаях редактирования РП временных рядов необходим перезапуск контекста. Итоговые РП можно редактировать без каких-либо ограничений, т.к. их расчет производится по запросу.