KPI
Базовые и расчетные показатели
Контекст расчета 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) | да | итоговое значение доступности, как доля временных интервалов, на которых, согласно машинным данным было производство |
ОЕЕ | Производительность * Доступность | да | итоговый показатель ОЕЕ |