KPI: различия между версиями
Строка 3: | Строка 3: | ||
Перед началом работы убедитесь, что микросервис KPI установлен: Меню настройки [[File:Settings.png | 20px]]-> Микросервисы [[File:Micro.png | 25px]] | Перед началом работы убедитесь, что микросервис KPI установлен: Меню настройки [[File:Settings.png | 20px]]-> Микросервисы [[File:Micro.png | 25px]] | ||
+ | |||
+ | [[File:Micros.png | 1000px]] | ||
Строка 14: | Строка 16: | ||
##Порт (по умолчанию 5780) | ##Порт (по умолчанию 5780) | ||
+ | [[File:Kpiset.png | 1000px]] | ||
При успешном подключении в колонке состояние видим, что микросервис успешно подключен. | При успешном подключении в колонке состояние видим, что микросервис успешно подключен. |
Версия 22:35, 18 июля 2021
Содержание
Настройка микросервиса KPI
Перед началом работы убедитесь, что микросервис KPI установлен: Меню настройки -> Микросервисы
В случае, если микросервис KPI отсутствует в списке:
- Скачайте актуальную версию DPA: https://rundpa.com/ru/download Запустите установочный файл, отключите флаг “Использовать предыдущие параметры установки”, на шаге “Выбор компонентов”, поставьте флаг “DPA. KPI”. Обратите внимание, что для работы микросервиса требуется .NET 5.0 (ссылка)
- На шаге “DPA. KPI” пропишите экземпляр SQL-сервера и выберите новую или существующую базу данных (обратите внимание, база микросервиса и база host - разные базы!)
- После установки вернитесь в модуль “Микросервисы”, нажмите кнопку “Добавить” и заполните следующие параметры (пример настроек по умолчание приведен на снимке экрана ниже):
- Протокол (http или https)
- Адрес машины, на которой развернут микросервис, если он отличается от адреса HOST
- Порт (по умолчанию 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).
Во всех случаях редактирования РП временных рядов необходим перезапуск контекста. Итоговые РП можно редактировать без каких-либо ограничений, т.к. их расчет производится по запросу.