API per restituire nodi tramite ricerca¶
Introduzione
Le API descritte di seguito restituiscono oggetti C# corrispondenti a nodi OPC UA del progetto. A differenza delle API di tipo Get, non è necessario conoscere e/o specificare il nodo esatto in cui cercare il nodo da restituire. Infatti, i nodi vengono cercati tra tutti i nodi figli di un nodo noto, a qualsiasi livello della sua struttura.
Nota
rispetto all’esecuzione di un’API di tipo Get, in cui si specifica il percorso esatto del nodo da restituire, l’esecuzione di un’API di tipo Find è più lenta. Inoltre, in caso siano presenti più nodi figli con lo stesso nome, può restituire un nodo indesiderato.
Le API di tipo Find sono fornite dalla classe IUANode, le cui istanze sono punti di partenza per cercare i nodi da restituire.
IUANode.Find(browseName)¶
Restituisce un oggetto C# di tipo IUANode, corrispondente al primo nodo figlio trovato tra tutti i figli del nodo su cui si invoca il metodo e denominato come l’argomento.
IUANode Find(string browseName);
Argomenti
browseName string
BrowseName del nodo da trovare.
Restituisce
IUANode
Oggetto C# corrispondente al nodo trovato.
Esempio
Di seguito un esempio in cui l’API restituisce un oggetto C# corrispondente al primo nodo Speed figlio del nodo model:
var model = Project.Current.Get("Model");
var speed = model.Find("Speed");
IUANode.FindObject(browseName)¶
Restituisce un oggetto C# di tipo IUAObject, corrispondente al primo oggetto figlio trovato tra tutti i figli del nodo su cui si invoca il metodo e denominato come l’argomento.
IUAObject FindObject(string browseName);
Argomenti
browseName string
BrowseName dell’oggetto da trovare.
Restituisce
IUANode
Oggetto C# corrispondente all’oggetto trovato.
Esempio
Di seguito un esempio in cui l’API restituisce un oggetto C# corrispondente al primo oggetto Motor figlio del nodo radice del progetto:
var motor = Project.Current.FindObject("Motor");
var currentSpeed = motor.GetVariable("Speed").Value;
IUANode.FindVariable(browseName)¶
Restituisce un oggetto C# di tipo IUAVariable, corrispondente alla prima variabile figlia trovata tra tutti i figli del nodo su cui si invoca il metodo e denominata come l’argomento.
IUAVariable FindVariable(string browseName);
Argomenti browse
browseName string
BrowseName della variabile da trovare.
Restituisce
IUANode
Oggetto C# corrispondente alla variabile trovata.
Esempio
Di seguito un esempio in cui l’API restituisce un oggetto C# corrispondente alla prima variabile Speed figlia del nodo radice del progetto:
var currentSpeed = Project.Current.FindVariable("Speed");
IUANode.Find<T>(browseName)¶
Restituisce un oggetto C# corrispondente al primo nodo figlio tra tutti i figli del nodo su cui si invoca il metodo, denominato come l’argomento e del tipo specificato.
Nota
specificare un tipo esatto (<T>) migliora l’IntelliSense nell’editor di codice. Durante la scrittura di codice permette inoltre di identificare gli errori, mentre a runtime è evidente se il nodo cercato è del tipo richiesto o meno (se non lo è, l’API restituisce null).
T Find<T>(string browseName);
Argomenti
T
Classe C# di tipo IUANode, corrispondente alla classe dell’oggetto C# da restituire.
browseName string
BrowseName del nodo da trovare.
Restituisce
T
Oggetto C# corrispondente al nodo trovato.
Esempi
Di seguito un esempio in cui l’API restituisce un oggetto C# corrispondente al primo nodo Motor1 figlio del nodo che contiene il NetLogic:
var motor = Owner.Find<Motor>("Motor1");
var currentSpeed = motor.Speed;
IUANode.FindByType<T>()¶
Restituisce un oggetto C# corrispondente al primo nodo figlio tra tutti i figli del nodo su cui si invoca il metodo e del tipo specificato.
Nota
specificare un tipo esatto (<T>) migliora l’IntelliSense nell’editor di codice. Durante la scrittura di codice permette inoltre di identificare gli errori, mentre a runtime è evidente se il nodo cercato è del tipo richiesto o meno (se non lo è, l’API restituisce null).
T FindByType<T>();
Argomenti
T
Classe C# di tipo IUANode, corrispondente alla classe dell’oggetto C# da restituire.
Restituisce
T
Oggetto C# corrispondente al nodo trovato.
Esempio
Di seguito un esempio in cui l’API restituisce un oggetto C# corrispondente al primo nodo di tipo Motor figlio del nodo radice del progetto:
var motor = Project.Current.FindByType<Motor>();
IUANode.FindNodesByType<T>()¶
Restituisce una lista C# del tipo IEnumerable corrispondente alla lista di tutti i nodi figli del nodo su cui si invoca il metodo e del tipo specificato.
Nota
specificare un tipo esatto (<T>) migliora l’IntelliSense nell’editor di codice. Durante la scrittura di codice permette inoltre di identificare gli errori, mentre a runtime è evidente se il nodo cercato è del tipo richiesto o meno (se non lo è, l’API restituisce null).
IEnumerable<T> FindNodesByType<T>();
Argomenti
T
Classe C# di tipo IUANode, corrispondente alla classe dell’oggetto C# da restituire.
Restituisce
IEnumerable
Lista C# contenente i nodi del tipo richiesto.
Esempio
Di seguito un esempio in cui l’API restituisce una lista di tutti i nodi di tipo Motor nel progetto:
var motors = Project.Current.FindNodesByType<Motor>();
Vedi anche
Concetti correlati
API correlate