Информационная модель OPC UA

Допустим, у меня есть несколько распределенных сложных машин. Каждая машина содержит несколько устройств cpmplex. Каждое устройство имеет свой собственный сервер OPC UA для мониторинга компонентов устройства. С клиентом OPC UA я хочу читать все элементы данных серверов OPC UA.

Сейчас я не знаю, как построить информационную модель. Я разрабатываю глобальную информационную модель, которая содержит все машины, их устройства и внутренние компоненты устройств. С глобальной точки зрения это имеет смысл. Но нужно ли мне создавать локальную информационную модель для каждого сервера? Или локальный сервер OPC UA использует глобальную информационную модель, но сервер реализует только для этого сервера соответствующие объекты (на основе глобальной информационной модели)?

ОБНОВЛЕНИЕ:

Вот пример настройки:

введите здесь описание изображения

В примере вы можете увидеть три слоя - машинный слой, строительный слой и фабричный слой.

Вот мое понимание, как моделировать такие установки. Существует одна общая информационная модель OPC UA, которая описывает все типы и т. Д. Каждый сервер OPC UA знает эту информационную модель и все содержащиеся в ней описания типов.

Теперь, в зависимости от настроек реального мира, я могу создать объектную модель. Сервер OPC UA на машинном уровне содержит все объекты из базовой системы, в этом примере устройства.

введите здесь описание изображения

С помощью клиента OPC UA на уровне здания я могу подключаться к серверу OPC UA с машин и читать все элементы данных с устройств внутри машин.

Клиент OPC UA на уровне фабрики может подключаться к серверам OPC UA из зданий. Сервер OPC UA на уровне здания может предоставить больше объектов:

введите здесь описание изображения

А клиент OPC UA извне фабрики может видеть полную картину объектной модели:

введите здесь описание изображения

Но как я могу пройти через серверы, чтобы получить данные устройства за пределами завода? Нужно ли мне снова создавать объектную модель из машинного слоя в строительном слое? И снова на следующем более высоком уровне и так далее?

Или какой-либо сервер OPC UA на каждом уровне знает всю объектную модель, например информационную модель?


person CPA    schedule 19.04.2018    source источник
comment
Какой сервер OPC UA вы используете? Kepware? Матрикон? Что-то другое?   -  person Andrew Drake    schedule 19.04.2018
comment
Но я не использую какой-то конкретный сервер. Мой вопрос - это общий вопрос, как работать с информационной моделью.   -  person CPA    schedule 19.04.2018
comment
Я не уверен, различается ли он между разными серверами OPC, но я знаю, что с Kepware есть драйвер клиента OPC UA, который может автоматически заполнять ту же информационную модель, что и исходный сервер OPC UA. Или, если хотите, вы можете изменить имена тегов при чтении с исходного сервера OPC UA. Но это увеличивает сложность и ремонтопригодность. На самом деле, перенос всех данных сервера OPC UA на один центральный сервер OPC действительно упрощает ситуацию только с точки зрения клиента (независимо от того, что имеет доступ к данным OPC).   -  person Andrew Drake    schedule 19.04.2018
comment
Извините за напыщенную речь, я думаю, что на этот вопрос сложно ответить, не зная, какой сервер OPC вы планируете использовать.   -  person Andrew Drake    schedule 19.04.2018
comment
Я думаю, что информационная модель должна быть независимой от поставщика ocpp-сервера. Вопрос в том, знает ли каждый сервер всю модель или только свою часть?   -  person CPA    schedule 19.04.2018


Ответы (1)


Серверы OPC UA включают две основные категории информации: типы и экземпляры.

Когда мы говорим об информационных моделях, мы обычно говорим о различных определениях типов. Например, общие модели для всех устройств (OPC UA для устройств (DI)) или конкретные модели для определенных типов устройств (OPC UA для устройств-анализаторов (ADI) и т. Д.). Типы определяют общие структуры для объектов: например, когда вы сталкиваетесь с объектом типа «спектрометр», вы знаете, какую структуру ожидать от него. Типы часто фиксированы, и когда они стандартизированы, они не должны меняться. Если вы определяете свои собственные типы, которые могут быть специализациями стандартных типов, у вас, конечно, будет немного больше гибкости.

Теперь, если вы хотите смоделировать целую производственную площадку, вы должны создать схему и расположение реальных экземпляров: например, «Спектрометр 1» внутри «Лаборатории» и «Сосуд 13» внутри «Производственного зала B». Эта модель обычно более динамична и может изменяться при изменении планировки объекта.

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

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

С другой стороны, большинство существующих в настоящее время серверов OPC UA просто предоставляют «немоделированные» данные. Это был единственный вариант в OPC Classic, и большинство актуальных серверов OPC UA все еще находятся на том же уровне. Надеемся, что в будущем мы увидим больше серверов OPC UA, которые также смогут использовать в них информационные модели. Или мы можем увидеть рост «Аггерирующих серверов OPC UA», которые позволят вам реконструировать данные в соответствии со стандартными или пользовательскими моделями.

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

Чтобы на самом деле ответить на ваш вопрос, я думаю, достаточно, если вы просто создадите модель, которая вам нужна в своей системе, поскольку вы, вероятно, не можете хорошо распространить ее на фактические серверы OPC UA в настоящий момент. Но, конечно, было бы лучше, если бы вы могли применить модели и к конкретным серверам.

person Jouni Aro    schedule 20.04.2018
comment
Спасибо за Ваш ответ. Так вы думаете, что каждый сервер должен содержать модель своей базовой системы? Но чтобы получить полную картину, серверу более высокого уровня необходимо объединить все части в одну глобальную модель. Как бы Вы это сделали? - person CPA; 20.04.2018
comment
Каждый сервер действует как агрегирующий сервер для нижестоящих серверов, как показано на схемах. Строительный сервер устанавливает клиентские подключения к машинным серверам и имеет более полную информационную модель. Затем фабричный сервер устанавливает клиентские подключения к серверам здания и добавляет дополнительные данные в информационную модель. Вы вряд ли добьетесь этого с какими-либо готовыми серверными продуктами. Скорее всего, это потребует некоторой индивидуальной разработки. - person Kevin Herron; 20.04.2018
comment
Но это обычный способ сделать это? это лучшая практика? - person CPA; 23.04.2018