跳到主要内容

WellKnownNodes

WellKnownNodes 是静态类, 预定义 OPC Foundation 标准节点的 NodeId 字符串常量. 用它代替手写 i=2258 提升代码可读性.

配套

常用根节点

常量NodeId含义
WellKnownNodes.RootFolderi=84Address Space 根
WellKnownNodes.ObjectsFolderi=85业务数据根
WellKnownNodes.TypesFolderi=86类型定义根
WellKnownNodes.ViewsFolderi=87视图根
WellKnownNodes.Serveri=2253Server 自身对象

Server 状态

常量NodeId含义
Server_ServerStatusi=2256Server 状态结构
Server_ServerStatus_Statei=2259状态 (Running / Failed / ...)
Server_ServerStatus_CurrentTimei=2258服务端当前时间
Server_ServerStatus_StartTimei=2257服务端启动时间
Server_ServerStatus_BuildInfoi=2260BuildInfo (产品 / 厂商 / 版本)
Server_ServerArrayi=2254ServerArray 字符串数组
Server_NamespaceArrayi=2255NamespaceArray 字符串数组

标准 ReferenceType

常量NodeId
HasComponenti=47
HasPropertyi=46
Organizesi=35
HasTypeDefinitioni=40
HasSubtypei=45

用法

// 不推荐: 硬编码
using var dv = ua.Read("i=2258");

// 推荐: 用常量
using var dv = ua.Read(WellKnownNodes.Server_ServerStatus_CurrentTime);

ServerStatus 完整读取

var items = new[]
{
(WellKnownNodes.Server_ServerStatus_State, AttributeId.Value),
(WellKnownNodes.Server_ServerStatus_CurrentTime, AttributeId.Value),
(WellKnownNodes.Server_ServerStatus_StartTime, AttributeId.Value),
(WellKnownNodes.Server_NamespaceArray, AttributeId.Value),
};
var values = ua.ReadMany(items);
Console.WriteLine($"State = {values[0].Value}");
Console.WriteLine($"CurrentTime = {values[1].Value.AsDateTime}");
Console.WriteLine($"StartTime = {values[2].Value.AsDateTime}");
Console.WriteLine($"Namespaces = {string.Join(",", values[3].Value.AsStringArray)}");

完整列表

代码里查 WellKnownNodes.cs 源文件有 30+ 常量, OPC Foundation 标准命名空间下的节点都在.

下一步