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