gpt4 book ai didi

java - OPC UA : how to organize folders and nodes properly

转载 作者:行者123 更新时间:2023-11-30 07:43:50 25 4
gpt4 key购买 nike

我是 OPC 的新手。有些事情对我来说并不明显。

我正在使用来自: https://github.com/digitalpetri 的 opcua 堆栈(uaserver)作为客户端软件(目前仅用于测试),我使用 United Automation 的 UAEExpert。

每个客户都有一些单位。每个单位可以有一些值。一切都在 postgres 数据库中。我需要通过 OPC 向客户公开这些值。

现在我认为我必须实现:

  • 每个客户一个文件夹节点。
  • 每个文件夹都有多个节点的引用,这些节点是单元
  • 每个单元都有一些节点,它们是值(这里并不重要)

我的担忧:

  1. 我不知道这样的模型对于 OPC-UA 在思想上是否正确。
  2. 我似乎不清楚如果添加或删除了单元,我该如何通知 OPC 客户端。
  3. 此外,我似乎需要在 OPC 服务器启动时为所有客户文件夹、单元等准备所有节点。甚至为那些从未连接过的客户保留它们。有什么正确的方法可以避免这种情况吗?
  4. UAExpert 客户端在连接到服务器后立即订阅服务器对象。所有客户都需要这样做吗?

抱歉,我真的认为这些问题中的大部分可以在阅读 OPC UA 规范时得到解答,但也许有人可以在我挖掘大量论文之前回答它)

最佳答案

广告 1. 基本上是的。需要遵循一些附加规则 - 例如,“具有值的节点”应该建模为变量(它们又是节点,具有一些规定的属性和行为等)

广告 2。在许多情况下,这不是必需的。但如果您需要它,可以使用 ModelChangeEvents 完成(请参阅规范的第 3 部分)

广告 3。这不是 OPC UA 规范的问题,而是您正在使用的特定堆栈/SDK/工具包的问题。其中许多都有抽象“节点管理器”的概念,它可以将节点保留在内存中,或者它可以动态地提供它们 - 仅在需要时。因此,您需要研究手头的特定工具。除非地址空间非常大,或者访问底层信息非常慢,否则通常会预先准备好所有节点。

广告 4。基本上,是的。所有合理的客户端都需要从服务器对象获取一些信息(例如命名空间表),再加上 OPC 合规性测试中的一些要求,要求客户端主动使用该信息。无论如何,大多数 SDK/工具包都会自动提供服务器对象,而无需您进行额外的编程。

关于java - OPC UA : how to organize folders and nodes properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34224447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com