Accesso ai nodi di progetto

Introduzione: accesso ai membri di un oggetto in C#

In C#, ogni proprietà o metodo contenuto in un oggetto, è genericamente definito un membro dell’oggetto. Ogni membro è identificato dal BrowseName del nodo di progetto corrispondente.

Nota

per visualizzare il BrowseName di una proprietà nel pannello Proprietà posizionare il puntatore sul suo nome: compare un tooltip con BrowseName, tipo di dato e descrizione breve (se presente).

Per accedere ai membri, in ordine gerarchico, si usa il punto. Negli esempi seguenti si accede a un oggetto Motor e alle sue proprietà Acceleration e Speed.

Motor.Acceleration = 123;

In questo esempio si imposta il valore della proprietà Acceleration dell’oggetto Motor sul valore 123.

int currentSpeed = Motor.Speed;

In questo esempio si assegna al valore della variabile C# di tipo intero currentSpeed quello della proprietà Speed dell’oggetto Motor.

Accedere ai nodi OPC UA di un progetto Q Studio

Per accedere a un nodo del modello informativo in C#, tale nodo dev’essere rappresentato nel NetLogic da un corrispondente oggetto C#. Per ottenere tale oggetto C# è possibile sfruttare le seguenti API:

Per riferirsi ai nodi OPC UA delle proprietà di un oggetto (vedere Proprietà), il nome della corrispondente proprietà C# è composto dal BrowseName della proprietà a cui si aggiunge il suffisso «Variable». Di seguito un esempio in cui si imposta un collegamento dinamico sulla proprietà Testo di un’etichetta tramite API, accedendo al nodo della proprietà rappresentato da TextVariable (vedere API per i collegamenti dinamici):

Label1.TextVariable.SetDynamicLink(speedValue);

Variabile LogicObject: accedere direttamente all’oggetto NetLogic

Ogni NetLogic espone la variabile LogicObject, che rappresenta il nodo NetLogic stesso. È utile per accedere direttamente al nodo senza scrivere ulteriore codice.

Nell’esempio seguente si imposta il valore della variabile Speed, contenuti nel NetLogic, su 100:

LogicObject.GetVariable("Speed").Value = 100;

Nell’esempio seguente si assegna alla variabile C# di tipo intero speed il valore della variabile Speed:

int speed = LogicObject.GetVariable("Speed").Value;

Variabile Owner: accedere direttamente all’oggetto padre del NetLogic

Ogni NetLogic espone la variabile Owner, che rappresenta il nodo padre dello NetLogic stesso. È utile per accedere direttamente a tale nodo senza scrivere ulteriore codice.

Nell’esempio seguente si assegna alla variabile C# di tipo stringa name il valore del BrowseName del nodo padre del NetLogic:

string name = Owner.BrowseName;

Variabile Session: accedere direttamente all’alias di sessione

Ogni NetLogic espone la variabile Session, che rappresenta il nodo di sessione. È utile per accedere direttamente a tale nodo per leggere o modificare le proprietà della sessione (vedere Nodi della sessione).