Визуализация динамически создаваемых узлов в UAExpert

Я могу динамически создать узел с помощью вызовов узла метода, но не могу увидеть его в UAExpert без ручного поиска (Createcustomnode с тем же nodeId показывает узел в «представлении доступа к данным»). Перезапуск UAExpert после создания узла не решает эту проблему. Как я могу решить эту проблему?

Спасибо

      public ServiceResult AddNodeMethod(ISystemContext context, MethodState method, IList<object> inputArgs, IList<object> outputArgs0)
    {

        BaseDataVariableState variable = new BaseDataVariableState(opcUaServer);

        variable.SymbolicName = "THISISATEST";
        variable.ReferenceTypeId = ReferenceTypes.Organizes;
        variable.TypeDefinitionId = VariableTypeIds.BaseDataVariableType;
        variable.NodeId = new NodeId((uint)2099, NamespaceIndex);
        variable.BrowseName = new QualifiedName("TEST2");
        variable.DisplayName = new LocalizedText("en", "Thisisatest");
        variable.WriteMask = AttributeWriteMask.DisplayName | AttributeWriteMask.Description;
        variable.UserWriteMask = AttributeWriteMask.DisplayName | AttributeWriteMask.Description;
        variable.DataType = DataTypeIds.Int32;
        variable.ValueRank = ValueRanks.Scalar;
        variable.AccessLevel = AccessLevels.CurrentReadOrWrite;
        variable.UserAccessLevel = AccessLevels.CurrentReadOrWrite;
        variable.Historizing = false;
        variable.Value = 0;
        variable.StatusCode = StatusCodes.Good;
        variable.Timestamp = DateTime.UtcNow;

        if (opcUaServer != null)
        {
            AddPredefinedNode(SystemContext, variable);
        }

        if(FindNodeInAddressSpace(variable.NodeId) != null){
            Console.WriteLine("Node succesfully created");
            return ServiceResult.Good;
        }
        return new ServiceResult(2);
    }

1 ответ

Вам нужно добавить родителя к вашему узлу.

Например, если вы создаете корневую папку, ваш родитель будет

      ParentNodeId = ObjectIds.ObjectsFolder,
ParentAsOwner = true,

Это позволит вашему клиенту OPC UA, такому как UaExpert, перейти к вашему узлу из родительского объекта.

Примечание: если у вас естьParentAsOwner = true, удаление родителя приведет к удалению дочернего узла, но если ваш дочерний узел является большим и сложным объектом, это может занять некоторое время.

Другие вопросы по тегам