2015-12-11 8 views
1

Я новичок в OPC. Для меня некоторые вещи не очевидны.OPC UA: как правильно организовать папки и узлы

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

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

Теперь я вижу, что я должен осуществить:

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

Мои интересы:

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

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

ответ

1

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

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

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

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

+0

спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^