Визуализация динамически создаваемых узлов в 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
, удаление родителя приведет к удалению дочернего узла, но если ваш дочерний узел является большим и сложным объектом, это может занять некоторое время.