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