OPC-UA “值”和“属性值”有什么区别

Tob*_*ayn 0 c# iot server opc-ua

我实际上正在学习 OPC-UA。我正在使用 LibUA 的 c# 演示服务器(可以在这里免费下载:https : //github.com/nauful/LibUA)。对于那里的每个节点,我看到两个值,一个在“数据访问视图”中不断变化,一个在“属性”视图中静态:

在此处输入图片说明

查看代码并阅读订阅如何在 OPC-UA 中工作后,我现在明白为什么动态值会不断变化。但是属性窗口中的这个“静态”值是什么?这是什么原因?为什么每个节点有两个值,一个是动态的,一个是静态的?

静态的由演示服务器中名为“HandleReadRequestInternal”的方法生成。什么是“内部”读取请求?我在规范中找不到任何关于此的信息。也许一些专家可以在这里帮助我澄清一些问题。:)

谢谢!

小智 5

我们在这里处理 OPC UA 客户端工具中的两个不同视图:

1. 数据访问视图中的动态值

您在数据访问视图中看到的动态值是以配置的发布间隔从服务器接收到的节点的最新值。这与 OPC UA 中数据更改通知的订阅有关,该订阅用于减少从客户端连续轮询服务器中节点值的开销。

  • OPC UA Client 可以订阅 Server 中的 Variable Nodes 以减少开销
  • OPC UA 服务器将以可配置的采样间隔监控这些变量节点的值
  • OPC UA 服务器将以可配置的发布间隔通知客户端数据更改
  • 每次从服务器收到的数据更改通知中变量节点的值发生变化时,OPC UA 客户端都会更新数据访问视图中变量节点的值

2. 属性视图中的静态值

您在属性视图中看到的静态值是每次单击节点或每次单击属性视图中的刷新按钮时客户端从服务器获取的变量节点的值。这是通过 OPC UA 读取服务完成的,您可以使用该服务读取节点的属性(在本例中为值属性)。此处粘贴的示例 Wireshark 跟踪的屏幕截图显示了一个示例 - 您可以看到 OPC UA 客户端发送到服务器以读取 NodeId 为 2258 的节点的值属性的 ReadRequest 数据包。

在此处输入图片说明

我看到您正在学习 OPC UA 并使用开源实现。以下是您可能有兴趣尝试的其他一些开源实现:

如果您正在寻找更多实践信息,您还可以查看以下资源:

  • 免费文档:可以看开源文档页面:https : //open62541.org/doc/current/
  • 付费在线课程:OPC UA 实用介绍 - 本课程中的代码演练和示例使用 open62541 堆栈:https ://opcfoundation.org/products/view/practical-introduction-to-opc-ua-part-i