Поделиться через


Настройка акселератора решения "Подключенная фабрика"

Важно!

Актуальную информацию по этой теме см. в статье Промышленный Интернет вещей в Azure.

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

В этой статье в качестве примера используется Contoso для описания способа настройки топологии решения "Подключенная фабрика".

Конфигурация имитации фабрик

Каждая фабрика Contoso имеет производственные линии, состоящие из трех станций. Каждая станция является реальным сервером OPC UA с определенной ролью:

  • Станция сборки.
  • Станция тестирования.
  • Станция упаковки.

На серверах OPC UA расположены узлы OPC UA, а издатель OPC отправляет значения этих узлов в решение "Подключенная фабрика". В том числе:

  • Текущее рабочее состояние, например текущее энергопотребление.
  • Производственные сведения, такие как количество произведенных продуктов.

Панель мониторинга можно использовать для подробного анализа топологии фабрики Contoso с глобального представления до представления уровня станции. Панель мониторинга решения "Подключенная фабрика" позволяет сделать следующее:

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

Топология решения "Подключенная фабрика"

Топология фабрик, производственных линий и станций является иерархической:

  • На глобальном уровне узлы фабрики являются дочерними элементами.
  • Узлы производственных линий фабрики являются дочерними элементами.
  • Узлы станций производственных линий являются дочерними элементами.
  • Узлы OPC UA станций (серверы OPC UA) являются дочерними элементами.

Каждый узел в топологии имеет общий набор свойств, которые определяют:

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

Файл конфигурации топологии

Чтобы настроить свойства, перечисленные в предыдущем разделе, решение "Подключенная фабрика" использует файл конфигурации с именем ContosoTopologyDescription.json.

Этот файл находится в исходном коде решения в папке WebApp/Contoso/Topology.

В следующем фрагменте кода показана структура файла конфигурации ContosoTopologyDescription.json.

{
  <global_configuration>,
  "Factories": [
    <factory_configuration>,
    "ProductionLines": [
      <production_line_configuration>,
      "Stations": [
        <station_configuration>,
        <more station_configurations>
      ],
      <more production_line_configurations>
    ]
    <more factory_configurations>
  ]
}

Общими свойствами <global_configuration>, <factory_configuration>, <production_line_configuration> и <station_configuration> являются:

  • Name (строковый тип)

    Указывает описательное имя узла топологии для отображения на панели мониторинга. Должно состоять из одного слова.

  • Description (строковый тип)

    Более подробное описание узла топологии.

  • Image (строковый тип)

    Путь к изображению в решении WebApp, которое отображается вместе со сведениями об узле топологии на панели мониторинга.

  • OeeOverall, OeePerformance, OeeAvailability, OeeQuality, Kpi1, Kpi2 (тип <performance_definition>)

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

Элементы <factory_configuration> и <production_line_configuration> имеют свойство:

  • Guid (строковый тип)

    Уникально идентифицирует узел топологии.

Параметр <factory_configuration> имеет свойство:

  • Location (тип <location_definition>)

    Указывает расположение фабрики.

Параметр <station_configuration> имеет свойства:

  • OpcUri (строковый тип)

    Это свойство нужно задать в URI приложения OPC UA сервера OPC UA. Так как оно должно быть глобально уникальным по спецификации OPC UA, это свойство используется для идентификации узла топологии станции.

  • OpcNodes является массивом узлов OPC UA (тип <opc_node_description>)

Параметр <location_definition> имеет свойства:

  • City (строковый тип)

    Название ближайшего к расположению города.

  • Страна (строковый тип)

    Страна или регион расположения

  • Latitude (тип double)

    Широта расположения.

  • Longitude (тип double)

    Долгота расположения.

Параметр <performance_definition> имеет свойства:

  • Minimum (тип double)

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

  • Target (тип double)

    Оптимальное целевое значение.

  • Maximum (тип double)

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

  • MinimumAlertActions (тип <alert_action>)

    Определяет ответные действия, которые выполняются при возникновении оповещения о минимальном значении.

  • MaximumAlertActions (тип <alert_action>)

    Определяет ответные действия, которые выполняются при возникновении оповещения о максимальном значении.

<alert_action> имеет свойства:

  • Type (строковый тип)

    Тип действия оповещения. Поддерживаются такие типы:

    • AcknowledgeAlert: состояние оповещения должно измениться на "Подтверждено".
    • CloseAlert: все устаревшие оповещения аналогичного типа не должны отображаться на панели мониторинга.
    • CallOpcMethod: следует вызвать метод OPC UA.
    • OpenWebPage: следует открыть окно браузера с дополнительными контекстными сведениями.
  • Description (строковый тип)

    Описание действий, которые отображаются на панели мониторинга.

  • Parameter (строковый тип)

    Параметры, необходимые для выполнения действия. Значение зависит от типа действия.

    • AcknowledgeAlert: параметр не требуется.
    • CloseAlert: параметр не требуется.
    • CallOpcMethod: сведения об узле и параметры метода OPC UA для вызова в формате "NodeId родительского узла, NodeId вызываемого метода, URI сервера OPC UA".
    • OpenWebPage: URL-адрес, отображаемый в окне браузера.

<opc_node_description> содержит сведения об узлах OPC UA станции (серверы OPC UA). Узлы, которые не представляют существующие узлы OPC UA, но используются в качестве хранилища в логике вычислений решения "Подключенная фабрика", также допустимы. Имеет следующие свойства.

  • NodeId (строковый тип)

    Адрес узла OPC UA в адресном пространстве станции (OPC UA). Синтаксис должен быть указан в спецификации OPC UA для NodeId.

  • SymbolicName (строковый тип)

    Имя, которое будет отображаться на панели мониторинга, при отображении значения этого узла OPC UA.

  • Relevance (массив строкового типа)

    Указывает, каким вычислениям показателя OEE или ключевого показателя эффективности соответствует значение узла OPC UA. Каждый элемент массива может принимать одно из следующих значений:

    • OeeAvailability_Running: значение относится к вычислению доступности OEE.
    • OeeAvailability_Fault: значение относится к вычислению доступности OEE.
    • OeePerformance_Ideal: значение относится к вычислению производительности OEE и обычно оно постоянное.
    • OeePerformance_Actual: значение относится к вычислению производительности OEE.
    • OeeQuality_Good: значение относится к вычислению качества OEE.
    • OeeQuality_Bad: значение относится к вычислению качества OEE.
    • Kpi1: значение относится к вычислению KPI1.
    • Kpi2: значение относится к вычислению KPI2.
  • OpCode (строковый тип)

    Указывает, как обрабатывается значение узла OPC UA в запросах службы "Аналитика временных рядов" и вычислениях OEE или ключевого показателя эффективности. Каждый запрос службы "Аналитика временных рядов" предназначен для определенного периода времени, который является параметром запроса и позволяет получить результат. OpCode управляет вычислением результата и может иметь одно из следующих значений:

    • Diff: разница между последним и первым значением в промежутке времени.
    • Avg: среднее арифметическое всех значений в промежутке времени.
    • Sum: сумма всех значений в промежутке времени.
    • Last: в настоящее время не используется.
    • Count: количество значений в промежутке времени.
    • Max: максимальное значение в промежутке времени.
    • Min: минимальное значение в промежутке времени.
    • Const: результатом является значение, указанное свойством ConstValue.
    • SubMaxMin: разница между максимальным и минимальным значением.
    • TimeSpan: промежуток времени.
  • Units (строковый тип)

    Определяет единицы значения, отображаемые на панели мониторинга.

  • Visible (логический тип)

    Определяет, должно ли значение отображаться на панели управления.

  • ConstValue (тип double)

    Если параметр OpCode имеет значение Const, это свойство является значением узла.

  • Minimum (тип double)

    Если текущий показатель падает ниже этого значения, создается оповещение о минимальном значении.

  • Maximum (тип double)

    Если текущий показатель поднимается выше этого значения, создается оповещение о максимальном значении.

  • MinimumAlertActions (тип <alert_action>)

    Определяет ответные действия, которые выполняются при возникновении оповещения о минимальном значении.

  • MaximumAlertActions (тип <alert_action>)

    Определяет ответные действия, которые выполняются при возникновении оповещения о максимальном значении.

На уровне станции вы также можете видеть смоделированные объекты. Эти объекты используются только для настройки моделирования решения "Подключенная фабрика" и не должны использоваться для настройки реальной топологии.

Использование данных конфигурации во время выполнения

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

Внешний вид

Свойства этой категории определяют внешний вид панели мониторинга решения "Подключенная фабрика". Примеры приведены ниже.

  • Имя
  • Описание
  • Образ —
  • Расположение
  • единиц(ы)
  • Видимый

Внутренняя адресация дерева топологии

WebApp поддерживает внутренний словарь данных, содержащий сведения о всех узлах топологии. Свойства Guid и OpcUri используются в качестве ключей для доступа к этим словарям и должны быть уникальными.

Вычисление показателей OEE и ключевого показателя эффективности

Показатель OEE и ключевой показатель эффективности для моделирования решения "Подключенная фабрика" параметризуются в зависимости от:

  • Значений узлов OPC UA, которые должны быть включены в вычисление.
  • Способа вычисления показателей на основе значений телеметрии.

В решении "Подключенная фабрика" используются формулы OEE, опубликованные http://www.oeefoundation.org.

Объекты узлов OPC UA на станциях позволяют применять теги для вычислений показателя OEE и ключевого показателя эффективности. Свойство Relevance указывает, для какого показателя OEE или ключевого показателя эффективности следует использовать значение узла OPC UA. Свойство OpCode определяет, каким образом это значение включается в вычисление.

Обработка оповещений

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

  • Максимум
  • Минимальные
  • MaximumAlertActions
  • MinimumAlertActions

Сопоставление данных телеметрии

Для определенных операций, таких как визуализация последнего значения или создание запросов службы "Аналитика временных рядов", WebApp нуждается в схеме адресации для полученных данных телеметрии. Данные телеметрии, отправленные в решение "Подключенная фабрика", также должны храниться во внутренних структурах данных. Два свойства, разрешающие эти операции, находятся на станции (сервер OPC UA) и на уровне узла OPC UA:

  • OpcUri

    Определяет (глобально уникально) сервер OPC UA, из которого поступают данные телеметрии. В сообщениях это свойство отправляется в виде ApplicationUri.

  • NodeId

    Определяет значение узла на сервере OPC UA. Формат свойства должен соответствовать спецификации OPC UA. В сообщениях это свойство отправляется в виде NodeId.

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

Пример метода вычисления KPI1

Конфигурация в файле ContosoTopologyDescription.json определяет метод вычисления показателя OEE и ключевого показателя эффективности. В следующем примере показано, как свойства в этом файле определяют метод вычисления KPI1.

В решении "Подключенная фабрика" KPI1 используется для измерения количества произведенных продуктов за последний час. Каждая станция (сервер OPC UA) в моделировании решения "Подключенная фабрика" предоставляет узел OPC UA (NodeId: "ns=2;i=385"), который обеспечивает телеметрию для вычисления этого ключевого показателя эффективности.

Конфигурация этого узла OPC UA выглядит следующим образом:

{
  "NodeId": "ns=2;i=385",
  "SymbolicName": "NumberOfManufacturedProducts",
  "Relevance": [ "Kpi1", "OeeQuality_Good" ],
  "OpCode": "SubMaxMin"
},

Эта конфигурация позволяет запрашивать показатели телеметрии этого узла, используя данные службы "Аналитика временных рядов". Запрос службы "Аналитика временных рядов" возвращает следующие данные:

  • Количество значений.
  • Минимальное значение.
  • Максимальное значение.
  • Средний показатель всех значений.
  • Сумму всех значений для всех уникальных пар OpcUri (ApplicationUri), NodeId в указанный промежуток времени.

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

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

Дальнейшие действия

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