2017-01-29 5 views
0

Ich weiß, dass der TranslateBrowsePathsToNodeIds() - Dienst verwendet werden kann, um gegen Typdefinitionen zu programmieren und dadurch die NodeIds der Komponenten/Eigenschaften eines Knotens abzurufen.OPC UA TranslatedBrowsePathsToNodeIds() Service

Ich habe zwei Fragen.

1) Erfordert das letzte Element der RelativePath-Struktur einen gültigen targetName, d. H. Kann nicht null sein?

2) Gibt es ein vorgeschriebenes Verhalten, wenn der Pfad erfolgreich in zwei verschiedenen Zweigen aufgelöst werden kann, d. H. Das Programm kann verschiedene Knoten auf einem Zwischenpfad auswählen und trotzdem der nächsten Sequenz von Pfaden erfolgreich folgen?

Danke

Antwort

1

1) Ja, kann das letzte Element eine leer target haben. Entsprechend der Spezifikation:

Das letzte Element kann einen leeren targetName haben. In dieser Situation sind alle Ziele der durch die referenceTypeId identifizierten Referenzen die Ziele des RelativePath.

Der targetName soll für alle anderen Elemente angegeben werden.

2) wieder aus der Spezifikation:

Wenn ein Knoten mehrere Ziele mit derselben BrowseName hat, muss der Server eine Liste von NodeIds zurückzukehren. Da jedoch einer der Hauptzwecke dieses Dienstes darin besteht, die Programmierung gegen Typdefinitionen zu unterstützen, wird die NodeId des Knotens basierend auf der Typdefinition des Startknotens als erste NodeId in der Liste zurückgegeben.

Ich realisiere, dass Sie nach Zwischennamen suchen, aber ich denke, das gilt immer noch; Sie enden mit mehreren Zielen, die vom Aufruf zurückgegeben werden.