Variabili di campo

Variabili di tipo Tag e variabili di campo

Per referenziare variabili di campo (tag dei PLC o variabili di un server OPC UA), UNIQO si serve di particolari variabili di progetto di tipo Tag che ne riportano il valore.

Quando si legge una variabile di tipo Tag, UNIQO legge la variabile di campo e aggiorna il valore della variabile di progetto. Quando si scrive in una variabile di tipo Tag, UNIQO propaga la scrittura sulla variabile di campo.

Lettura/scrittura in Q Studio e in C#

Mentre la lettura/scrittura di variabili di campo avviene automaticamente quando si legge/scrive una variabile di tipo Tag in Q Studio, per riprodurre lo stesso comportamento in C# è necessario usare specifiche API (vedere API per leggere/scrivere variabili di campo), in questi casi:

  • lettura/scrittura di variabili di tipo Tag, sincronizzate con corrispondenti tag dei PLC

  • lettura/scrittura di variabili importate tramite un oggetto Client OPC UA da un server OPC UA, per sincronizzarle con corrispondenti variabili di un server OPC UA

  • lettura/scrittura di una variabile direttamente o indirettamente collegata (tramite collegamenti dinamici o convertitori) a una variabile descritta nei due punti precedenti.

Nota

quando legge una variabile di tipo Tag tramite metodo Get, UNIQO non legge il valore sul campo e può perciò restituire un valore non aggiornato.

Eventi di cambio valore

Per sottoscrivere metodi all’evento di cambio valore delle variabili di campo è necessario usare un oggetto RemoteVariableSynchronizer (vedere IUAVariable.VariableChange e API per mantenere sincronizzate variabili di campo). Questo oggetto infatti mantiene costantemente aggiornate le variabili di progetto riferite a variabili di campo, senza la necessità di reiterare letture tramite semplici API di lettura (vedere API per leggere/scrivere variabili di campo).

L’oggetto RemoteVariableSynchronizer non è invece necessario se in Q Studio esiste già un collegamento a una variabile di tipo Tag da un oggetto grafico, da un oggetto Data logger, da un allarme o da un oggetto Schema ricetta. In questo caso in un NetLogic è possibile sottoscrivere il metodo di cambio valore direttamente sulla variabile di tipo Tag collegata.

Gestione dei ritardi di comunicazione con il campo

Se in un NetLogic si legge/scrive una variabile di campo, è necessario, prima di eseguire le istruzioni successive, assicurarsi che il valore corrente sia stato effettivamente letto che l’eventuale scrittura sia stata effettivamente eseguita.

In considerazione, dei ritardi dovuti ai diversi protocolli di comunicazione, le API per leggere/scrivere variabili di campo sono sincrone, ovvero la loro esecuzione deve terminare prima che l’istruzione successiva possa essere eseguita.