OPC UA: как правильно организовать папки и узлы

Я новичок в OPC. Некоторые вещи для меня неочевидны.

Я использую стек opcua (uaserver) из: https://github.com/digitalpetri В качестве клиентского программного обеспечения (для сейчас просто для тестов) Я использую UAExpert от United Automation.

У каждого покупателя есть несколько единиц. Каждая единица может иметь несколько значений. Все находится в базе данных postgres. Мне нужно предоставить эти значения клиентам через OPC.

Теперь я вижу, что мне нужно реализовать:

  • Узел папки для каждого клиента.
  • Каждая папка имеет ссылки на несколько узлов, которые являются единицами
  • У каждого юнита есть несколько узлов, которые являются значениями (здесь это не имеет значения)

Мои опасения:

  1. Я не знаю, является ли такая модель идеологически правильной для OPC-UA.
  2. Мне кажется непонятным, как я могу уведомить клиента OPC, если модуль был добавлен или удален.
  3. Также кажется, что мне нужно подготовить все узлы для всех клиентских папок, модулей и т. Д. Только при запуске моего OPC-сервера. И сохранить их даже для клиентов, которые никогда бы не подключились. Есть ли правильный способ избежать этого?
  4. Клиент UAExpert подписывается на объект сервера сразу после подключения к серверу. Это обязательно для всех клиентов?

Извините, я действительно думаю, что на большинство из этих вопросов можно было бы ответить, читая OPC UA Spec, но, возможно, кто-то сможет просто ответить на него, прежде чем я буду копать тонны документов)


person eugene-nikolaev    schedule 11.12.2015    source источник


Ответы (1)


Объявление 1. В основном да. С некоторыми дополнительными правилами, которые необходимо соблюдать - например, «узлы со значениями» должны быть смоделированы как переменные (которые снова являются узлами с некоторыми предписанными атрибутами и поведением и т. Д.)

Объявление 2. Во многих случаях этого не требуется. Но если вам это нужно, это делается с помощью ModelChangeEvents (см. Часть 3 спецификации).

Объявление 3. Это вопрос не к спецификациям OPC UA, а скорее к конкретному стеку / SDK / инструментарию, который вы используете. Многие из них имеют концепцию абстрактного «диспетчера узлов», который может хранить узлы в памяти, или предоставлять их динамически - только при необходимости. Поэтому вам нужно изучить конкретный инструмент, который у вас есть под рукой. Если адресное пространство не очень велико или доступ к базовой информации очень медленный, обычно все узлы подготавливаются заранее.

Объявление 4. В основном да. Есть вещи, которые нужны всем разумным клиентам от объекта Server (например, таблица пространств имен), плюс некоторые требования в тестировании на соответствие OPC, которые требуют, чтобы клиенты активно использовали эту информацию. Большинство SDK / инструментальных средств в любом случае автоматически предоставляют объект Server без дополнительного программирования с вашей стороны.

person ZbynekZ    schedule 11.12.2015