opc-ua - 问:传感器数据的 OPC UA 位置
问题描述
我对 OPC UA 进行了一些研究,并注意到 Prosys 示例服务器上的所有传感器数据都存储在 Object (i=85) 文件夹的子文件夹中。在机器的 OPC UA 服务器上,我看到传感器数据(如测量值、单位等)只能通过 Types (i=86) 文件夹访问。
这里的路径是 i=84 -> i=86 -> i=88 -> i=58... 实际上没有其他路径可以到达这些节点。
我从未见过这样的实现。这样的数据也存储在 Types 文件夹中是否正常,或者是否有任何禁止这样做的指导方针?机器也有点旧。
谢谢你的帮助
更新:i=58 的进一步路径如下所示,其中 --(i=45)-> 表示从前一个节点到下一个节点的 Referencetype(在本例中为 i=45,HaSybtype)和括号中的单词 next NodeId 是 NodeClass。
i=58 --(i=45)-> ns=2;i=1(ObjectType) --(i=35)-> ns=2;i=2(Object)
--(i=35)-> ns=2;i=3(对象)--(i=47)-> ns=2;s=@setPressure(变量)--(i=46)-> ns=2;i=5(变量)
ns=2;s=@setPressure 包含值 250.0 和 ns=2;i=5 工程单位
解决方案
这不正常。这听起来像是一个不了解的人所做的糟糕的实现。
根据他们用于构建此结构的引用类型,您可能会认为这是被禁止的。DataType 节点只能是 HasProperty、HasSubtype 和 HasEncoding 引用的来源。
编辑:您提到的路径是 Root -> Types -> ObjectTypes -> BaseObjectType。您确定您在此处找到的节点是具有值的变量节点,还是您只是看到此服务器定义的其他类型?
推荐阅读
- xamarin.forms - UWP:尝试打开页面时出现 AccessViolationException
- phpunit - Phpunit 错误“此 PHPDBG 版本不支持代码覆盖率”
- swift - 在字符串格式中跳过未使用的位置参数(Swift)
- symfony - 树枝模板上表单字段的 setValue
- java - 在 Java 8 中以简化的方式将地图的元素正确写入 CSV
- sql - 根据 Hive 中的条件连接表
- python - 径向基函数的图像超分辨率
- ios - iOS 如何处理恰好在背景之前发生的事件?
- prolog - 有谁知道用于格式化输入的 Prolog 代码?
- java - Glassfish 使用内部模块库而不是应用程序库