Как создать экземпляр необязательного узла из моей информационной модели на моем сервере OPC UA (.Net Environement)
Я новичок в разработке серверов OPC UA. Я работаю над средой.NET, чтобы создать сервер с моей собственной информационной моделью, созданной на UAModeler.
когда я создаю экземпляры узлов, доступных в моей информационной модели, успешно создаются только те, которые установлены как обязательные. Я пытаюсь найти способ создать экземпляры остальных узлов, которые по назначению установлены как Необязательные для правила моделирования.
Ниже фрагмент моего кода из класса Node Manager:
`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;`
любые предложения или аналогичные решенные примеры будут высоко оценены.
благодаря
1 ответ
У меня нет опыта работы с unified-automation-sdk, но в стеке OPCFoundation вам нужно создавать узлы вручную.
Обычно это делается в
CreateAddressSpace
метод класса Node Manager, см . пример Boiler .
Необязательная роль моделирования указывает, что сервер должен решить, требуется ли создание или нет.