.net - 如何将可选节点从我的信息模型实例化到我的 OPC UA 服务器(.Net 环境)

标签 .net opc-ua unified-automation-sdk

我是 OPC UA 服务器开发的初学者。我正在 .NET 环境中使用我自己的信息模型(在 UAModeler 上创建)创建一个服务器。

当我实例化信息模型中可用的节点时,只有那些设置为“强制”的节点才会成功实例化。我正在尝试找到一种方法,如何实例化其余节点,这些节点也按目的设置为建模规则的可选节点。

以下是节点管理器类中我的代码片段:

`Console.WriteLine("正在加载 Im 2.1 模型。"); ImportUaNodeset(Assembly.GetEntryAssembly(), "informationmodel_2.0.xml"); Console.WriteLine("IM 成功加载");

            CreateObjectSettings settings = new CreateObjectSettings()
            {
                ParentNodeId = UnifiedAutomation.UaBase.ObjectIds.ObjectsFolder,
                ReferenceTypeId = UnifiedAutomation.UaBase.ReferenceTypeIds.Organizes,
                RequestedNodeId = new NodeId("IM", DefaultNamespaceIndex),
                BrowseName = new QualifiedName("Departments", DefaultNamespaceIndex),
                TypeDefinitionId = UnifiedAutomation.UaBase.ObjectTypeIds.FolderType

            };
            ObjectNode controllersNode = CreateObject(Server.DefaultRequestContext, settings);

            settings = new CreateObjectSettings()
            {
                ParentNodeId = controllersNode.NodeId,
                ReferenceTypeId = UnifiedAutomation.UaBase.ReferenceTypeIds.Organizes,
                RequestedNodeId = new NodeId(DepartmentA, DefaultNamespaceIndex),
                BrowseName = new QualifiedName(DepartmentA, DefaultNamespaceIndex),
                TypeDefinitionId = new NodeId(My.MyIm.ObjectTypes.BodyshopProductionEquipmentType, DefaultNamespaceIndex)

            };

            CreateObject(Server.DefaultRequestContext, settings);
            
            ProductionDataNode = FindInMemoryNode(new NodeId(DepartmentA + ".ProductionData", DefaultNamespaceIndex)) as VariableNode;
            CounterPerTypeNode = FindInMemoryNode(new NodeId(DepartmentA + ".ProductionData.CounterPerType", DefaultNamespaceIndex)) as VariableNode;`
           

任何建议或类似的已解决示例将不胜感激。

谢谢

最佳答案

我没有使用 Unified-automation-sdk 的经验,但在 OPCFoundation 堆栈中,您必须手动创建节点。

这通常在 Node Manager 类的 CreateAddressSpace 方法中完成,请参阅 Boiler example .

建模角色可选表示服务器必须决定是否需要创建。

关于.net - 如何将可选节点从我的信息模型实例化到我的 OPC UA 服务器(.Net 环境),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65040364/

相关文章:

OPC UA 唯一 ID

x509 - 如何使用基于 node-opcua 的客户端连接到需要基于证书的用户身份验证的 OPC-UA 服务器

c# - 从对 ServerManager 类的公共(public)访问启动 Opc Ua 服务器抛出 NullPointerException

c# - 找不到 HttpRequestMessage,但引用了 System.Net.Http

c# - TypeMock 中的 [TestMethod] 属性在哪里?

C++调用dll函数

c# - .NET 异常窗口 API

opc-ua - Eclipse Milo,OPC-UA : where to start?