OP C -UA в чем разница между "Value" и "Attribute Value" - PullRequest
0 голосов
/ 12 июля 2020

Я на самом деле изучаю OP C -UA. Я использую демонстрационный сервер c# LibUA (его можно бесплатно скачать здесь: https://github.com/nauful/LibUA). Для каждого узла я вижу два значения, одно из которых постоянно изменяется в «Представлении доступа к данным», а второе - stati c в представлении «Атрибуты»:

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

После просмотра кода и чтения о том, как подписки работают в OP C -UA, я теперь понимаю, почему значение Dynami c постоянно меняется. Но что насчет значения "stati c" в окне атрибутов? В чем причина этого? Почему у нас есть два значения на узел: один динамический c и один статический c?

Статический c один генерируется методом под названием «HandleReadRequestInternal» на демонстрационном сервере. Что такое «внутренний» запрос на чтение? Я не смог найти ничего об этом в спецификациях. Может быть, какой-нибудь эксперт поможет мне внести ясность. :)

Спасибо!

Ответы [ 2 ]

4 голосов
/ 16 июля 2020

Здесь мы имеем дело с двумя разными представлениями в клиентском инструменте OP C UA:

1. Значение Dynami c в представлении доступа к данным

Значение Dynami c, которое вы видите в представлении доступа к данным, является последним значением узла, полученным от сервера в заданный интервал публикации. Это связано с подписками на уведомление об изменении данных в OP C UA, которое используется для уменьшения накладных расходов на непрерывный опрос со стороны клиента для значения узла на сервере.

  • OP C Клиент UA может подписаться на узлы переменных на сервере, чтобы снизить накладные расходы
  • OP C Сервер UA будет отслеживать значение этих узлов переменных с настраиваемым интервалом выборки
  • OP C Сервер UA будет уведомлять клиента об изменении данных с настраиваемым интервалом публикации
  • OP C Клиент UA обновляет значение узла переменной в представлении доступа к данным каждый раз, когда его значение изменяется в уведомлении об изменении данных, полученном от Сервер

2. Значение Stati c в представлении атрибутов

Значение stati c, которое вы видите в представлении атрибутов, представляет собой значение узла переменной, которое клиент получает с сервера каждый раз, когда вы щелкните узел или каждый раз, когда вы нажимаете кнопку refre sh в представлении атрибутов. Это делается с помощью службы чтения OP C UA, которую можно использовать для чтения атрибутов узла (в данном случае атрибута значения). На этом снимке экрана показан пример трассировки Wireshark, вставленной сюда - вы можете увидеть пакет ReadRequest, который клиент OP C UA отправляет на сервер для чтения атрибута значения узла с NodeId 2258.

enter image description here

I see that you are learning OPC UA and using open source implementations. Here are some other open source implementations that you might be interested in trying out:

Если вам нужна дополнительная практическая информация, вы также можете проверить эти ресурсы:

1 голос
/ 12 июля 2020

Value - это один из атрибутов, который может быть прочитан из узла, другие - это BrowseName, DisplayName, DataType, ValueRank и т. Д. c.

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

...