You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OPC UA新手求教:如何基于自定义对象类型创建节点实例?

关于OPC UA自定义对象类型实例创建的问题解答

你的代码思路是正确的,但仅设置TypeDefinitionId还不够,需要补充几个关键参数才能成功创建自定义对象类型的实例。以下是完善后的代码示例和说明:

必要的参数补充

创建节点实例时,必须指定以下核心设置:

  • NodeId:每个节点的唯一标识,需确保在服务器命名空间内唯一
  • ParentNodeId:实例挂载的父节点(通常是服务器的Objects文件夹)
  • BrowseName:客户端浏览时显示的节点名称
  • DisplayName:用户友好的显示文本

完整代码示例

// 假设自定义类型所在的命名空间索引为2(根据你的实际配置调整)
ushort namespaceIndex = 2;

CreateObjectSettings settings = new CreateObjectSettings()
{
    // 自定义对象类型的NodeId
    TypeDefinitionId = ObjectTypeIds.MyCustomObject,
    // 实例的唯一标识
    NodeId = new NodeId("MyCustomTestInstance", namespaceIndex),
    // 父节点(挂载到Objects文件夹)
    ParentNodeId = ObjectIds.ObjectsFolder,
    // 浏览名称
    BrowseName = new QualifiedName("TestInstance", namespaceIndex),
    // 显示名称
    DisplayName = new LocalizedText("en-US", "Test Custom Instance")
};

// 创建实例
Node test = CreateObject(Server.DefaultRequestContext, settings);

关键说明

  • 命名空间索引namespaceIndex需要和你在UA Modeler中定义自定义类型时的命名空间对应,可通过服务器的命名空间管理器查询。
  • 创建完成后,test变量就是你要的自定义对象类型实例,后续可以直接操作它的属性、方法等。
  • 这种方式会自动继承自定义对象类型的所有属性和结构,无需手动重新定义,完全符合你的需求。

内容的提问来源于stack exchange,提问作者oiergoiergh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:05:25