首页 > 解决方案 > 使用 UA-.NETStandard 访问已知类型中的节点的最简单方法是什么?

问题描述

概括

我正在为 Blazor 中的可视化做一个简单的概念证明。

我创建了一个演示服务器,该服务器表示一个设备,该设备公开一个带有两个“MeasurementType”实例的文件夹。这些类型是使用 ModelCompiler 生成的。“输出”的类型为“AnalogUnitRangeType”

地址空间:

+ Root
    + Objects
        + Equipment
            + Supply
                + Pressure of MeasurementType
                + Humidity of MeasurementType

测量类型:

+ Measurement
    + Output of AnalogUnitRangeType (double)
        + EURange
        + EngineeringUnits

我正在使用 Blazor 创建 UI,并使用 Opc Foundation Nuget 包来浏览服务器以动态生成用户界面。在这种情况下,这将是代表“压力”和“湿度”的两个分量

问题:

浏览服务器并查找已知的自定义类型(如 MeasurementType)时。访问子节点的最简单方法是什么?

我正在浏览所有节点并检查它们是否是这样的测量类型:


if (node.TypeDefinitionId.Identifier.ToString() == 
ObjectTypeIds.MeasurementType.Identifier.ToString())

当我找到类型时,我会继续浏览引用并在 displayName 上进行匹配以找到我需要的变量。因为我知道类型,所以可能有更简单的方法。

例如,我希望有可能做类似的事情?


if(node is MeasurementState)
{
    var measurementNode = node as MeasurementState;
}

我浏览了这些样本,但必须承认我觉得它有点不知所措。如果您有任何好的资源来解释 opcfoundation sdk,我们也将不胜感激。

标签: opc-ua

解决方案


推荐阅读