Java OPC UA:如何正确组织文件夹和节点

Java OPC UA:如何正确组织文件夹和节点,java,opc,opc-ua,Java,Opc,Opc Ua,我是OPC的新手。有些事情对我来说并不明显 我正在从以下位置使用opcua堆栈(uaserver): 作为一个客户端软件(目前,仅用于测试),我使用的是联合自动化公司的UAExpert 每个客户都有几个单元。每个单位可以有一些值。 一切都在一个postgres数据库中。我需要通过OPC向客户公开这些价值观 现在我觉得我必须实施: 每个客户都有一个文件夹节点 每个文件夹都有多个作为单元的节点的引用 每个单元都有一些节点,这些节点是值(在这里并不重要) 我关注的是: 我不知道这样的模型对于OPC

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

我正在从以下位置使用opcua堆栈(uaserver): 作为一个客户端软件(目前,仅用于测试),我使用的是联合自动化公司的UAExpert

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

现在我觉得我必须实施:

  • 每个客户都有一个文件夹节点
  • 每个文件夹都有多个作为单元的节点的引用
  • 每个单元都有一些节点,这些节点是值(在这里并不重要)
我关注的是:

  • 我不知道这样的模型对于OPC-UA在意识形态上是否正确
  • 我似乎不清楚,如果添加或删除了装置,我应如何通知OPC客户端
  • 另外,似乎我需要在OPC服务器启动时为所有客户文件夹、单元等准备所有节点。甚至为从未连接过的客户保留它们。有没有正确的方法来避免这种情况
  • UAExpert客户端在连接到服务器后立即订阅服务器对象。所有客户都需要它吗

  • 对不起,我真的认为这些问题中的大多数都可以在阅读OPC UA规范时得到回答,但也许有人可以在我翻阅大量论文之前予以答复)

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

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

    公元3年。这不是OPC UA规范的问题,而是您正在使用的特定堆栈/SDK/toolkit的问题。其中许多都有一个抽象的“节点管理器”概念,它可以将节点保存在内存中,或者只在需要时动态地提供节点。因此,您需要查看手头的特定工具。除非地址空间非常大,或者访问底层信息的速度非常慢,否则预先准备所有节点是很常见的

    公元4年。基本上,是的。所有合理的客户机都需要从服务器对象(如名称空间表)中获取一些信息,另外,OPC合规性测试中也有一些要求,要求客户机积极使用这些信息。大多数SDK/工具包都会自动提供服务器对象,而无需额外编程