KPI: различия между версиями

Материал из DPA
Перейти к навигации Перейти к поиску
 
(не показаны 54 промежуточные версии 4 участников)
Строка 1: Строка 1:
= Базовые и расчетные показатели =
+
= Настройка микросервиса KPI =
  
Контекст расчета KPI определяется набором рабочих центров (РЦ), базовых и расчетных показателей (БП и РП).
+
Перед началом работы убедитесь, что микросервис KPI установлен: Меню настройки [[File:Settings.png | 20px]]-> Микросервисы  [[File:Micro.png | 25px]] 
  
БП представляет собой временной ряд, т.е. совокупность последовательных интервалов времени и значений на этих интервалах. При запуске контекста, БП загружаются микросервисом KPI из родительской системы, с момента времени, указанного в поле «Дата начала» в настройках контекста. В дальнейшем повторные запросы для получения новых данных производятся для каждого БП в соответствие с настройкой «Период опроса». БП загружаются для каждого РЦ контекста по очереди.
 
  
Для каждого БП необходимо задать имя переменной и тип. Имя переменной необходимо для указания данного БП в формулах расчета РП. Имя переменной должно начинаться с буквы, не содержать спецсимволов и пробелов.  
+
[[File:Micros.png | 1000px]]
  
БП могут быть следующих видов:
 
*унифицированный базовый показатель;
 
*индикатор.
 
  
Унифицированный базовый показатель имеет общие настройки для всех РЦ. Список доступных в системе БП приведен в таблице.
+
В случае, если микросервис KPI отсутствует в списке:
  
{| class="wikitable"
+
#Скачайте актуальную версию DPA:  https://rundpa.com/ru/download Запустите установочный файл, отключите флаг “Использовать предыдущие параметры установки”, на шаге “Выбор компонентов”, поставьте флаг “DPA. KPI”. Обратите внимание, что для работы микросервиса требуется .NET 5.0 [https://dotnet.microsoft.com/download/dotnet/5.0 (ссылка)]
! scope="col"| имя api
+
#На шаге “DPA. KPI” пропишите экземпляр SQL-сервера и выберите новую или существующую базу данных (обратите внимание, база микросервиса и база host - разные базы!) 
! scope="col"| название
+
#После установки вернитесь в модуль “Микросервисы”, нажмите кнопку “Добавить” и заполните следующие параметры (пример настроек по умолчанию приведен на снимке экрана ниже):
! scope="col"| описание
+
##Протокол (http или https)
! scope="col"| значения
+
##Адрес машины, на которой развернут микросервис, если он отличается от адреса HOST
! scope="col"| источник
+
##Порт (по умолчанию 5780)
|-
+
 
| actualOperation
+
[[File:Kpiset.png | 1000px]]
| фактическое время операции
+
 
| интервалы выполнения задания по данным оператора, исключая простои
+
При успешном подключении в колонке состояние видим, что микросервис успешно подключен.
| 1/0
+
 
| данные оператора
+
= KPI Базовые понятия и принципы вычисления =
|-
+
 
| actualOperationDowntime
+
Перед началом настройки необходимо определить терминологию.
| фактическое время простоя
+
 
| интервалы простоя, указанные оператором
+
'''KPI''' - (Key Performance Indicator, ключевой показатель эффективности) числовой показатель, который позволяет оценить результативность и эффективность процесса 
| 1/0
+
 
| данные оператора
+
'''Контекст KPI''' - контекст вычислений, определяется набором рабочих центров, базовых и расчетных показателей, это множество значений показателей на временном интервале от момента запуска процесса вычисления отдельного KPI до текущего момента/момента завершения подсчета KPI. Понятие контекста и его запуска/перезапуска и остановки важно, так как процесс вычисления KPI может быть очень ресурсоемким 
|-
+
 
| plannedOperation
+
'''Базовые показатели''' представлены двумя видами показателей:
| плановое время операции
+
 
| интервал времени, на котором запланировано задание
+
'''Базовый унифицированный показатель''' - показатели, существующие на всех РЦ системы
| 1/0
+
 
| задания
+
'''Индикаторы'''- значения технологических или иных автоматически регистрируемых параметров, уникальные для каждого РЦ/группы РЦ в зависимости от особенностей оборудования 
|-
+
 
| actualGoodProgress
+
'''Расчетный показатель''' - временной ряд показателей или результирующий показатель, вычисляемый в соответствии с функцией, включающей в себя операторы, имена базовых показателей и/или имена других расчетных показателей
| производительность по качественным
 
| скорость изготовления качественных изделий, рассчитанная по отметкам выпуска оператора, с учетом простоев
 
| изделий в час
 
| данные оператора
 
|-
 
| actualRejectedProgress
 
| производительность по браку
 
| скорость изготовления брака, рассчитанная по отметкам выпуска оператора, с учетом простоев
 
| изделий в час
 
| данные оператора
 
|-
 
| actualUndefinedProgress
 
| производительность по условно годным
 
| скорость изготовления условно годных изделий, рассчитанная по отметкам выпуска оператора, с учетом простоев
 
| изделий в час
 
| данные оператора
 
|-
 
| actualTotalProgress
 
| производительность общая
 
| скорость изготовления изделий, рассчитанная по отметкам оператора, с учетом простоев
 
| изделий в час
 
| данные оператора
 
|-
 
| plannedQuantity
 
| плановая производительность
 
| плановая скорость изготовления, равная отношению числа изделий в задании к длительности задания. значение определено на интервалах фактического времени операции (actualOperation=1)
 
| изделий в час
 
| задания и данные оператора
 
|-
 
| shiftWorkingTime
 
| рабочее время
 
| время смен по расписанию
 
| 1/0
 
| настройки системы
 
|-
 
| productionTime
 
| время операций на рабочем центре
 
| автоматический режим работы станка
 
| 1/0
 
| машинные данные
 
|}
 
  
Для БП типа индикатор необходимо указать конкретный индикатор для каждого РЦ, поскольку РЦ могут иметь различный набор индикаторов и разные наименования для них. При этом в дальнейших расчетах БП указывается общим именем переменной, определенном в его настройках.
+
'''Срез данных''' - это инструмент разукрупнения агрегирующих расчетных показателей по выбранному признаку (смена, изделие, простой, тип простоя) для упрощения сопоставления данных.  
  
Для РП необходимо определить наименование и функцию для его вычисления. Также РП, которые необходимо отображать в аналитике, нужно указать, как основные.
+
Список базовых показателей, актуальный для данной версии системы, вы можете увидеть в окне добавления KPI на вкладке “Базовые показатели”; пояснения, раскрывающие суть данного БП вы можете увидеть во всплывающей подсказке. Подробнее процесс создания БП описан ниже.
  
Формулы РП могут включать имена БП или РП, константы, бинарные операторы, скобки, математические функции, а также функции расчета итогов (агрегирующие функции).
+
[[File:List.png | 700px]][[File:Hint.png | 700px]]
  
Константы задаются в числовом виде, с точкой, в качестве разделителя дробной части. Допустима также экспоненциальная форма записи. Например: 1.3, 1.7e3 (эквивалентно 1700), 1E-3 (эквивалентно 0.001).
+
Полный список индикаторов, актуальных для выбранного набора РЦ, вы можете увидеть в окне добавления KPI на вкладке “Базовые показатели”; РЦ могут иметь различный набор индикаторов и разные наименования для них, как было указано ранее. Подробнее процесс создания БП описан ниже.  
  
Имена переменных БП и РП должны начинаться с буквы (латиницы или кириллицы), могут также содержать цифры и символ _. Буквы верхнего и нижнего регистра считаются различными, поэтому, например, названия «Индикатор» и «индикатор» будут интерпретированы, как разные переменные.  
+
[[File:Bp.png | 700px]]
  
РП может быть определен двумя способами: как временной ряд или как итоговый показатель. Формула РП временного ряда должна включать хотя бы один РП временного ряда, либо БП. Такие РП вычисляются по мере поступления данных в микросервис, и полученные значения сохраняются в базе данных. Для каждого РЦ сохраняется отдельный ряд РП.
+
Расчетные функции могут включать имена БП или РП, константы, скобки, а также математические функции, бинарные операторы и функции расчета итогов (агрегирующие функции).  
  
Итоговый РП представляет собой одно значение, рассчитываемое для некоторого заданного интервала времени. Такой РП вычисляется непосредственно при запросе к микросервису, например, из аналитик. Формула итогового РП может содержать другие итоговые РП, а также агрегирующие функции, примененные к БП или РП временного ряда. Итоговый РП может быть получен для каждого РЦ контекста в отдельности, и как общий для всех РЦ, заданных в запросе.
+
Бинарные операторы и математические функции поддерживается для показателей временного ряда и результирующих показателей.  
 +
Аргументом агрегирующей функции может быть только БП или РП временного ряда.  
  
Для обоих видов РП доступен одинаковый набор бинарных операторов. В таблице приведены доступные операторы, в соответствие с их математическим приоритетом.
+
Далее приведен перечень поддерживаемых функций и операторов по категориям.  
  
 
{| class="wikitable"
 
{| class="wikitable"
Строка 119: Строка 75:
 
| операции с отсутствующими значениями
 
| операции с отсутствующими значениями
 
|}
 
|}
 +
 +
 +
Для БП типа индикатор необходимо указать конкретный индикатор для каждого РЦ, поскольку РЦ могут иметь различный набор индикаторов и разные наименования для них. При этом в дальнейших расчетах БП указывается общим именем переменной, определенном в его настройках.
 +
 +
Для РП необходимо определить наименование и функцию для его вычисления. Также РП, которые необходимо отображать в аналитике, нужно указать, как основные.
 +
 +
Формулы РП могут включать имена БП или РП, константы, бинарные операторы, скобки, математические функции, а также функции расчета итогов (агрегирующие функции).
 +
 +
Константы задаются в числовом виде, с точкой, в качестве разделителя дробной части. Допустима также экспоненциальная форма записи. Например: 1.3, 1.7e3 (эквивалентно 1700), 1E-3 (эквивалентно 0.001).
 +
 +
Имена переменных БП и РП должны начинаться с буквы (латиницы или кириллицы), могут также содержать цифры и символ _. Буквы верхнего и нижнего регистра считаются различными, поэтому, например, названия «Индикатор» и «индикатор» будут интерпретированы, как разные переменные.
 +
 +
РП может быть определен двумя способами: как временной ряд или как итоговый показатель. Формула РП временного ряда должна включать хотя бы один РП временного ряда, либо БП. Такие РП вычисляются по мере поступления данных в микросервис, и полученные значения сохраняются в базе данных. Для каждого РЦ сохраняется отдельный ряд РП.
 +
 +
Итоговый РП представляет собой одно значение, рассчитываемое для некоторого заданного интервала времени. Такой РП вычисляется непосредственно при запросе к микросервису, например, из аналитик. Формула итогового РП может содержать другие итоговые РП, а также агрегирующие функции, примененные к БП или РП временного ряда. Итоговый РП может быть получен для каждого РЦ контекста в отдельности, и как общий для всех РЦ, заданных в запросе.
 +
 +
Для обоих видов РП доступен одинаковый набор бинарных операторов. В таблице приведены доступные операторы, в соответствие с их математическим приоритетом.
 +
  
 
Для расчета логических выражений в системе используется соглашение, что значения больше нуля соответствуют значению «истина», а меньше - «ложь», и наоборот, логические операции и операции сравнения возвращают 1 в качестве значения «истина» и 0 – «ложь». Некоторые примеры вычислений для логических операций и операций сравнения приведены в таблице
 
Для расчета логических выражений в системе используется соглашение, что значения больше нуля соответствуют значению «истина», а меньше - «ложь», и наоборот, логические операции и операции сравнения возвращают 1 в качестве значения «истина» и 0 – «ложь». Некоторые примеры вычислений для логических операций и операций сравнения приведены в таблице
Строка 169: Строка 143:
 
|}
 
|}
  
В системе поддерживаются отсутствующие (неопределенные) значения. Такие значения не учитываются при расчете итогов, и для большинства операций применимо правило, если какой-либо аргумент не определен, результат также является неопределенным. Исключением является оператор ??, предназначенный для установки неопределенных значений в левой части в значения по умолчанию в правой. И наоборот, оператор ? позволяет получить неопределенные значения, в случае невыполнения заданного критерия в левой части, либо вернут значение справа, если критерий истинный. Например:
+
Для расчета логических выражений в системе используется соглашение, что значения больше нуля соответствуют значению «истина», а меньше - «ложь», и наоборот, логические операции и операции сравнения возвращают 1 в качестве значения «истина» и 0 – «ложь». Некоторые примеры вычислений для логических операций и операций сравнения приведены ниже.  
  
 
{| class="wikitable"
 
{| class="wikitable"
Строка 209: Строка 183:
 
|}
 
|}
  
В выражениях доступны математические функции минимума и максимума с произвольным количеством аргументов – min, max, а также функция модуля abs.
+
В таблице ниже приведены математические функции:
 +
 
  
 
{| class="wikitable"
 
{| class="wikitable"
| min(1,2,3)
+
| <b>Название</b>
| 1
+
| <b>Описание</b>
 +
| <b>Примеры</b>
 +
|-
 +
| min
 +
| минимум из нескольких значений
 +
| min(1,2,3) = 1
 +
|-
 +
|max
 +
|максимум из нескольких значений
 +
|max(1,2) =2
 +
|-
 +
| abs
 +
| значение по модулю
 +
| abs(-2) = 2
 +
abs(1,2) – неверная формула
 +
|-
 +
| round
 +
| математическое округление
 +
| round(2.5) = 3
 +
round(2.2) = 2
 +
 
 +
round(-2.5) = -3
 
|-
 
|-
| max(1,2)
+
| floor
| 2
+
| округление к меньшему целому
 +
| floor (2.5) = 2
 +
floor (2.7) = 2
 +
 
 +
floor (-2.5) = -3
 
|-
 
|-
| abs(-3)
+
| ceil
| 3
+
| округление к большему целому
 +
| ceil (2.3) = 3
 +
ceil (2.7) = 3
 +
 
 +
ceil (-2.5) = -2
 +
|}
 +
 
 +
 
 +
В выражениях для итоговых РП можно использовать 3 агрегирующие функции:
 +
*sum – сумма (интеграл) значений на интервале;
 +
*dur – длительность интервала, на котором значение известно и определено;
 +
*avg – среднее значение на интервале, выражение avg(РП) эквивалентно выражению sum(РП)/dur(РП).
 +
 
 +
 
 +
Для уменьшения избыточности хранимых данных и ускорения запросов, для агрегирующих функций, могут быть использованы оконные функции. Окно – набор строк, в рамках которого происходит вычисление. У оконной функции необходимо указать 2 параметра – выражение для временного ряда и период вычисления в минутах. Можно понижать размерность исходных данных, сохраняя точность запросов в пределах размера окна, поскольку значения агрегирующих функций одинаковы как для исходного ряда, так и для прореженного.
 +
 
 +
Вычисление среднего в окне avgWin.
 +
За каждый полный период с начала текущих суток в хранилище будет записан один интервал значений, равный среднему значению временного ряда, для которого функция рассчитывается. На
 +
примере видно, что применение оконной функции не виляет на точность результата.
 +
 
 +
{| class="wikitable"
 +
|
 +
| время, мин
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| avg
 +
| sum
 
|-
 
|-
| abs(0)
+
|
| 0
+
|0
 +
|1
 +
|2
 +
|3
 +
|4
 +
|5
 +
|
 +
|
 
|-
 
|-
| abs(3)
+
| origin (исходный ряд)
| 3
+
|3
 +
|1
 +
|2
 +
|6
 +
|5
 +
|4
 +
|3.5
 +
|21
 
|-
 
|-
| abs(1,2)
+
| avgWin(origin,3)
| неверная формула
+
(прореженный ряд)
 +
| 2 =
 +
(3+1+2)/3
 +
|
 +
|
 +
|5 =
 +
(6+5+4)/3
 +
|
 +
|
 +
| 3.5=
 +
(2*3+5*3)/6
 +
| 21
 +
=(2*3+5*3)
 
|}
 
|}
  
В выражениях для итоговых РП можно использовать 3 агрегирующие функции:
 
* sum – сумма (интеграл) значений на интервале;
 
* dur – длительность интервала, на котором значение известно и определено;
 
* avg – среднее значение на интервале, выражение avg(РП) эквивалентно выражению sum(РП)/dur(РП).
 
  
Аргументом агрегирующей функции может быть только БП или РП временного ряда. Вычисляемые выражения в качестве аргумента не поддерживаются. Например, выражение avg(БП+РП) является некорректным. В таком случае нужно сначала определить РП2 как БП+РП, и использовать выражение вида avg(РП2). Тогда РП2 будет рассчитан предварительно, по мере поступления данных БП и расчета РП, а итог будет рассчитан в момент обработки запроса.
+
Рассмотрим пример, «xload» – базовый показатель, индикатор нагрузки на ось, с периодом дискретизации до 1 измерения в секунду. Требуется определить суммарное время повышенной нагрузки на ось (>95) с точностью до 10 минут.  
 +
Решение:
 +
Контекст без применения оконной функции может быть реализован следующим образом
  
РП в контексте могут быть определены в любом порядке, но их формулы не должны содержать неизвестных переменных, а также циклических зависимостей. Например, следующие контексты являются некорректными:
+
[[File:Win_1.png | 700px]]
* РП2 – не определен
 
  
РП1: РП2+БП1
+
Зададим расчетный показатель «xloadWindow», вычисляемый по функции «avgWin(xload>95, 10)» и основной расчетный показатель «overload2», вычисляемый по функции «sum(xloadWindow)».
* РП1 зависит от РП2, который зависит от РП3, определенный через РП1 – циклическая зависимость
+
Объем хранимых данных и время запросов для overload уменьшаются в 600 раз по сравнению с исходным контекстом.
  
РП1: РП2
+
[[File:Win_2.png | 700px]]
  
РП2: РП3
+
Подробнее процесс создания РП описан ниже
  
РП3: РП1
+
= Создание и редактирование KPI =
  
= Примеры контекстов =
+
Для работы с модулем KPI перейдите: Главное меню  [[File:Menu.png | 20px]]  ->  KPI  [[File:Kpi 1.png ‎ | 30px]]
  
== Контекст для расчета ОЕЕ по машинным данным ==
+
 
 +
[[File:Kpi 2.png ‎ | 1000px]] 
 +
 
 +
Нажмите кнопку “Добавить”.  В открывшемся диалоговом окне укажите наименование KPI.
 +
 
 +
[[File:Wc 1.png ‎ | 700px]] 
 +
 
 +
На вкладке “Рабочий центр” добавьте один или несколько рабочих центров. Через стандартное окно выбора РЦ.
 +
 
 +
[[File:Wc 2.png ‎ | 700px]]
 +
 
 +
На вкладке “Базовые показатели” добавьте индикаторы и/или базовые показатели. 
 +
 
 +
[[File:Bp creation 1.png ‎ | 700px]]
 +
 
 +
[[File:Bp creation 2.png ‎ | 700px]]
 +
 
 +
Вы можете использовать индекс сортировки и цветовую индикацию для наглядности.
 +
 
 +
[[File:Bp creation 3.png ‎ | 700px]]
 +
 
 +
Обратите внимание что часть базовых показателей могут быть конкретизированы за счет дополнительных полей (например, смена или пользовательская причина простоя). Поле становится доступно после того как вы выберите тот или иной показатель.
 +
 
 +
[[File:Bp creation 5.png ‎ | 700px]]
 +
 
 +
На вкладке “Расчетные показатели” опишите функции, в соответствии с желаемой логикой. Важно корректно выбрать тип данных (десятичная дробь, время в часах или процент) и учитывать тип данных переменных при составлении функций.
 +
 
 +
[[File:Cp 1.png ‎ | 700px]]
 +
 +
Если вы пропустили какое-то обязательное поле или ошиблись в имени переменной при сохранении валидатор сообщит об этом.
 +
 
 +
[[File:Cp 2.png ‎ | 700px]]
 +
 
 +
Для снижения вероятности возникновения ошибки рекомендуем вводить формулы не вручную, а с использованием подсказок.
 +
 
 +
[[File:Cp 2 1.png ‎ | 700px]]
 +
 
 +
Если РП должен быть доступен на аналитиках необходимо активировать флаг “Основной”. Цвета РП используются для отображения на диаграммах аналитик. 
 +
 
 +
[[File:Cp 3.png ‎ | 700px]]
 +
 
 +
Если вы хотите добавить “Срез данных”, на соответствующей вкладке нажмите кнопку “Добавить” и выберите один из стандартных срезов, затем нажмите “Сохранить”.  Важно чтобы добавляемый срез был логически связан с расчетным показателем, в противном случае вы не получите желаемого эффекта, добавление среза - опциональный шаг.
 +
 
 +
[[File:Cp 2 2.png ‎ | 700px]]
 +
 
 +
 
 +
После завершения редактирования контекста активируйте флаг “Контекст включен” и нажмите “Сохранить”. 
 +
 
 +
 
 +
[[File:Cp 4.png ‎ | 700px]]
 +
 
 +
 
 +
Если функции расчетного показателя для разных рабочих центров должны отличаться, добавьте поле для ввода функции с помощью кнопки "+" и укажите для каких рабочих центров она актуальна. Удалить формулу можно с помощью кнопки "-". Для рабочих центров не учтенных в дополнительных формулах вычисления будут произведены по основной формуле.
 +
<b>Примечание</b>: Дополнительные формулы не могут быть использованы в расчетах итоговых значений, т. к. расчет общего значения для всех РЦ в контексте для разных формул в большинстве случаев невозможен или некорректен. Возможное решение – задать дополнительные формулы для временных рядов до расчета итогов.
 +
 
 +
Пример: для РЦ разного типа необходимо задать разные критические значения нагрузки на шпиндель - задаём дополнительные формулы для каждого типа РЦ с соответствующим уровнем порога (axisLoad>95 для четырех РЦ, axisLoad>85 для двух и axisLoad>80 для РЦ Siemens). Для РЦ не указанных в дополнительных формулах будет произведен расчет функцией по умолчанию (axisLoad>90).
 +
 
 +
[[File:AddCP.png ‎ | 700px]]
 +
 
 +
По истечению времени KPI будет отображаться на аналитиках 30 или 30.1 в зависимости от типа. В нашем примере мы работаем с временным рядом 
 +
 
 +
[[File:Visualization.png ‎ | 700px]]
 +
 
 +
При необходимости могут быть внесены изменения в контекст, но все правки приведут к необходимости перезапуска контекста. Подробнее ограничения описаны в “Правила редактирования и перезапуска контекстов”, для контекстов KPI доступны стандартные функции: “Редактировать”, “Клонировать” и “Удалить”, а также кнопка “Перезапустить контекст”.
 +
 
 +
Окно редактирования полностью идентично окну создания. После внесения правок  система сама предложит “Перезапустить контекст”.
 +
 
 +
= Использование InfluxDB 2.X =
 +
 
 +
Реляционные базы данных (особенно Express-версии) не являются оптимальным выбором для хранения баз данных KPI, они быстро разрастаются и медленнее предоставляют данные для визуализации, выполняют пересчеты.
 +
 +
Мы рекомендуем рассмотреть возможность использовать [https://docs.influxdata.com/influxdb/v2.1/install/?t=Windows InfluxDB 2.X]
 +
 
 +
Обратите внимание, что при первичной установке InfluxDB 2.X запросит данные регистрации, их необходимо запомнить (вы всегда сможете посмотреть их в интерфейсе Influx):
 +
*Организация
 +
*Сегмент данных (Bucket)
 +
*Имя пользователя
 +
*Пароль
 +
 
 +
[[File:Inflax3.png.PNG | 700px]]
 +
 
 +
ИЛИ вы можете взять данные DPA по умолчанию, тогда при добавлении хранилища вам не придется указывать их вручную.
 +
 
 +
[[File:Inflax11.png | 1000px]]
 +
 
 +
После установки перейдите на вкладку "Хранилища данных" модуля KPI, выберите добавить, в выпадающем списке выберите Influx, заполните поле "Наименование" нажмите "Сохранить".
 +
 
 +
После того как хранилище добавлено необходимо перенести в него контексты (их копии).
 +
Для этого скопируйте (откройте на редактировании контекст), затем перейдите на вкладку "Хранилище" и выберите из выпадающего списка ранее созданное хранилище, сохраните и запустите контекст.
 +
 
 +
[[File:Inflax2.png | 1000px]]
 +
 
 +
= Правила редактирования и перезапуска контекста =  
 +
 
 +
Реализация системы накладывает некоторые технические ограничения на возможности редактирования контекстов, которые уже запускались ранее. Если в базе уже есть какие-либо данные, относящиеся к данному контексту, при изменении контекста эти данные не будут автоматически пересчитаны. Поэтому:
 +
* изменение даты начала контекста игнорируется – для ранее запущенного контекста данные запрашиваются и рассчитываются  от последней временной отметки данных, зафиксированных в базе
 +
* изменение формул РП временных рядов влияет только на новые данные – данные уже записанные в базу останутся прежними, поэтому математически значимое изменение формул может приводить к некорректным результатам.
 +
 
 +
Допустимо:
 +
* добавлять новые РП в контекст;
 +
* добавлять новые БП в контекст;
 +
* удалять РП и БП, не используемые в расчетах;
 +
* изменять названия и формулы итоговых РП;
 +
* удалять и добавлять РЦ.
 +
 
 +
Допустимо, но не рекомендуется:
 +
* согласованно изменять названия БП и РП временных рядов (то есть одновременно в определении и во всех формулах)
 +
* изменять формулы на математически эквивалентные (например, a+b  на b+a).
 +
 
 +
Во всех случаях редактирования РП временных рядов необходим перезапуск контекста. Итоговые РП можно редактировать без каких-либо ограничений, т.к. их расчет производится по запросу.
 +
 
 +
= Примеры KPI  =
  
 
Базовые показатели:
 
Базовые показатели:
  
 +
{| class="wikitable"
 +
! scope="col"| Имя переменной
 +
! scope="col"| Тип
 +
! scope="col"| Значение
 +
! scope="col"| комментарий
 +
|-
 +
| feederate
 +
| индикатор
 +
| индикаторы РЦ, соответствующие коррекции скорости подачи
 +
| полагаем, что производительность пропорциональна данному значению. 100% - максимальная производительность
 +
|-
 +
| production
 +
| базовый показатель
 +
| Рабочее время по состоянию РЦ
 +
| интервалы производства по машинным данным
 +
|}
 +
 +
Производные показатели:
 +
 +
{| class="wikitable"
 +
! scope="col"| Имя переменной
 +
! scope="col"| Формула
 +
! scope="col"| Основной
 +
! scope="col"| комментарий
 +
|-
 +
| productivity
 +
| production ? feedrate/100
 +
| нет
 +
| учитываем мгновенную производительность только на интервалах производства, а также делаем пересчет из процентов в значения в диапазоне 0-1
 +
|-
 +
| Производительность
 +
| avg(productivity)
 +
| да
 +
| итоговое значение производительности, как средняя производительность за период
 +
|-
 +
| Доступность
 +
| avg(production)
 +
| да
 +
| итоговое значение доступности, как доля временных интервалов, на которых, согласно машинным данным было производство
 +
|-
 +
| ОЕЕ
 +
| Производительность * Доступность
 +
| да
 +
| итоговый показатель ОЕЕ
 +
|}
 +
 +
2
 +
 +
Базовые показатели:
 +
 +
{| class="wikitable"
 +
! scope="col"| Имя переменной
 +
! scope="col"| Тип
 +
! scope="col"| Значение
 +
! scope="col"| комментарий
 +
|-
 +
| operation
 +
| базовый показатель
 +
| Фактическое время операции
 +
| интервалы операций
 +
|-
 +
| downtime
 +
| базовый показатель
 +
| Фактическое время простоя
 +
| интервалы простоев
 +
|-
 +
| planned
 +
| базовый показатель
 +
| Плановое количество
 +
| плановая производительность
 +
|-
 +
| good
 +
| базовый показатель
 +
| Произведено качественных
 +
| фактическая производительность по качественным изделиям
 +
|-
 +
| total
 +
| базовый показатель
 +
| Произведено всего
 +
| фактическая производительность по всем изделиям
 +
|}
 +
 +
Производные показатели:
 +
 +
{| class="wikitable"
 +
! scope="col"| Имя переменной
 +
! scope="col"| Формула
 +
! scope="col"| Основной
 +
! scope="col"| комментарий
 +
|-
 +
| taskOperation
 +
| (actualOperationDowntime | actualOperation) ? actualOperation
 +
| нет
 +
| интервалы времени выполнения операций в пределах какого-либо задания; вне заданий значение не определено
 +
|-
 +
| Качество
 +
| sum(good)/sum(total)
 +
| да
 +
| итоговый показатель, как отношение количества произведенных качественных изделий на интервале запроса, к общему количеству изделий
 +
|-
 +
| Производительность
 +
| sum(total)/sum(planned)
 +
| да
 +
| итоговый показатель, как отношение общего количества произведенных изделий на интервале запроса, к плановому количеству изделий
 +
|-
 +
| Доступность
 +
| avg(taskOperation)
 +
| да
 +
| итоговое значение доступности, как доля временных интервалов без простоя во время выполнения заданий
 +
|-
 +
| ОЕЕ
 +
| Производительность * Доступность * Качество
 +
| да
 +
| итоговый показатель ОЕЕ
 +
|}
  
Имя переменной Тип Значение комментарий
+
Данный пример отличается от предыдущего тем, что в нем доступность рассчитывается без учета интервалов времени, на которые задания не были назначены. То есть первый вариант определяет ОЕЕ с учетом эффективности планирования, а второй показывает именно эффективность выполнения заданий оператором. Таким образом, гибкая настройка системы позволяет получать расчет OEE в разных разрезах для получения информативных значений в каждом практическом случае.
feederate индикатор индикаторы РЦ, соответствующие коррекции скорости подачи полагаем, что производительность пропорциональна данному значению. 100% - максимальная производительность
 
production базовый показатель productionTime интервалы производства по машинным данным
 

Текущая версия на 04:26, 7 ноября 2023

Содержание

Настройка микросервиса 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 - (Key Performance Indicator, ключевой показатель эффективности) числовой показатель, который позволяет оценить результативность и эффективность процесса

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

Базовые показатели представлены двумя видами показателей:

Базовый унифицированный показатель - показатели, существующие на всех РЦ системы

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

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

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

Список базовых показателей, актуальный для данной версии системы, вы можете увидеть в окне добавления KPI на вкладке “Базовые показатели”; пояснения, раскрывающие суть данного БП вы можете увидеть во всплывающей подсказке. Подробнее процесс создания БП описан ниже.

  

Полный список индикаторов, актуальных для выбранного набора РЦ, вы можете увидеть в окне добавления KPI на вкладке “Базовые показатели”; РЦ могут иметь различный набор индикаторов и разные наименования для них, как было указано ранее. Подробнее процесс создания БП описан ниже.

 

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

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

Далее приведен перечень поддерживаемых функций и операторов по категориям.

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


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

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

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

Константы задаются в числовом виде, с точкой, в качестве разделителя дробной части. Допустима также экспоненциальная форма записи. Например: 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

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

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

В таблице ниже приведены математические функции:


Название Описание Примеры
min минимум из нескольких значений min(1,2,3) = 1
max максимум из нескольких значений max(1,2) =2
abs значение по модулю abs(-2) = 2

abs(1,2) – неверная формула

round математическое округление round(2.5) = 3

round(2.2) = 2

round(-2.5) = -3

floor округление к меньшему целому floor (2.5) = 2

floor (2.7) = 2

floor (-2.5) = -3

ceil округление к большему целому ceil (2.3) = 3

ceil (2.7) = 3

ceil (-2.5) = -2


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

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


Для уменьшения избыточности хранимых данных и ускорения запросов, для агрегирующих функций, могут быть использованы оконные функции. Окно – набор строк, в рамках которого происходит вычисление. У оконной функции необходимо указать 2 параметра – выражение для временного ряда и период вычисления в минутах. Можно понижать размерность исходных данных, сохраняя точность запросов в пределах размера окна, поскольку значения агрегирующих функций одинаковы как для исходного ряда, так и для прореженного.

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

время, мин avg sum
0 1 2 3 4 5
origin (исходный ряд) 3 1 2 6 5 4 3.5 21
avgWin(origin,3)

(прореженный ряд)

2 =

(3+1+2)/3

5 =

(6+5+4)/3

3.5=

(2*3+5*3)/6

21

=(2*3+5*3)


Рассмотрим пример, «xload» – базовый показатель, индикатор нагрузки на ось, с периодом дискретизации до 1 измерения в секунду. Требуется определить суммарное время повышенной нагрузки на ось (>95) с точностью до 10 минут. Решение: Контекст без применения оконной функции может быть реализован следующим образом

 

Зададим расчетный показатель «xloadWindow», вычисляемый по функции «avgWin(xload>95, 10)» и основной расчетный показатель «overload2», вычисляемый по функции «sum(xloadWindow)». Объем хранимых данных и время запросов для overload уменьшаются в 600 раз по сравнению с исходным контекстом.

 

Подробнее процесс создания РП описан ниже

Создание и редактирование KPI

Для работы с модулем KPI перейдите: Главное меню   -> KPI  


 

Нажмите кнопку “Добавить”. В открывшемся диалоговом окне укажите наименование KPI.

 

На вкладке “Рабочий центр” добавьте один или несколько рабочих центров. Через стандартное окно выбора РЦ.

 

На вкладке “Базовые показатели” добавьте индикаторы и/или базовые показатели.

 

 

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

 

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

 

На вкладке “Расчетные показатели” опишите функции, в соответствии с желаемой логикой. Важно корректно выбрать тип данных (десятичная дробь, время в часах или процент) и учитывать тип данных переменных при составлении функций.

 

Если вы пропустили какое-то обязательное поле или ошиблись в имени переменной при сохранении валидатор сообщит об этом.

 

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

 

Если РП должен быть доступен на аналитиках необходимо активировать флаг “Основной”. Цвета РП используются для отображения на диаграммах аналитик.

 

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

 


После завершения редактирования контекста активируйте флаг “Контекст включен” и нажмите “Сохранить”.


 


Если функции расчетного показателя для разных рабочих центров должны отличаться, добавьте поле для ввода функции с помощью кнопки "+" и укажите для каких рабочих центров она актуальна. Удалить формулу можно с помощью кнопки "-". Для рабочих центров не учтенных в дополнительных формулах вычисления будут произведены по основной формуле. Примечание: Дополнительные формулы не могут быть использованы в расчетах итоговых значений, т. к. расчет общего значения для всех РЦ в контексте для разных формул в большинстве случаев невозможен или некорректен. Возможное решение – задать дополнительные формулы для временных рядов до расчета итогов.

Пример: для РЦ разного типа необходимо задать разные критические значения нагрузки на шпиндель - задаём дополнительные формулы для каждого типа РЦ с соответствующим уровнем порога (axisLoad>95 для четырех РЦ, axisLoad>85 для двух и axisLoad>80 для РЦ Siemens). Для РЦ не указанных в дополнительных формулах будет произведен расчет функцией по умолчанию (axisLoad>90).

 

По истечению времени KPI будет отображаться на аналитиках 30 или 30.1 в зависимости от типа. В нашем примере мы работаем с временным рядом

 

При необходимости могут быть внесены изменения в контекст, но все правки приведут к необходимости перезапуска контекста. Подробнее ограничения описаны в “Правила редактирования и перезапуска контекстов”, для контекстов KPI доступны стандартные функции: “Редактировать”, “Клонировать” и “Удалить”, а также кнопка “Перезапустить контекст”.

Окно редактирования полностью идентично окну создания. После внесения правок система сама предложит “Перезапустить контекст”.

Использование InfluxDB 2.X

Реляционные базы данных (особенно Express-версии) не являются оптимальным выбором для хранения баз данных KPI, они быстро разрастаются и медленнее предоставляют данные для визуализации, выполняют пересчеты.

Мы рекомендуем рассмотреть возможность использовать InfluxDB 2.X

Обратите внимание, что при первичной установке InfluxDB 2.X запросит данные регистрации, их необходимо запомнить (вы всегда сможете посмотреть их в интерфейсе Influx):

  • Организация
  • Сегмент данных (Bucket)
  • Имя пользователя
  • Пароль

 

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

 

После установки перейдите на вкладку "Хранилища данных" модуля KPI, выберите добавить, в выпадающем списке выберите Influx, заполните поле "Наименование" нажмите "Сохранить".

После того как хранилище добавлено необходимо перенести в него контексты (их копии). Для этого скопируйте (откройте на редактировании контекст), затем перейдите на вкладку "Хранилище" и выберите из выпадающего списка ранее созданное хранилище, сохраните и запустите контекст.

 

Правила редактирования и перезапуска контекста

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

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

Допустимо:

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

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

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

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

Примеры KPI

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

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

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

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

2

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

Имя переменной Тип Значение комментарий
operation базовый показатель Фактическое время операции интервалы операций
downtime базовый показатель Фактическое время простоя интервалы простоев
planned базовый показатель Плановое количество плановая производительность
good базовый показатель Произведено качественных фактическая производительность по качественным изделиям
total базовый показатель Произведено всего фактическая производительность по всем изделиям

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

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

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