Nodi di progetto in C#¶
Introduzione
Nel codice di un NetLogic, i nodi del progetto (vedere Modello informativo) sono rappresentati da speciali classi C# che contengono ed espongono delle proprietà.
Classe IUANode
Espone le seguenti proprietà base di qualsiasi nodo del progetto:
BrowseName: nome del nodo nel progetto Q Studio, non localizzabile
DisplayName: nome del nodo, solitamente visualizzabile in interfaccia utente e localizzabile in Q Studio
NodeId: identificativo unico del nodo, assegnato automaticamente da Q Studio
Classe IUAObject
Espone le proprietà di qualsiasi istanza di oggetto di progetto (es.: oggetti grafici, allarmi, driver, ecc…).
È una sottoclasse di IUANode e ne espone quindi tutte le proprietà. Espone inoltre la proprietà ObjectType, ovvero un riferimento al tipo di oggetto (classe IUAObjectType) da cui deriva l’istanza.
Classe IUAObjectType
Espone le proprietà di qualsiasi tipo di oggetto di progetto (es.: oggetti grafici, allarmi, driver, ecc…).
È una sottoclasse di IUANode e ne espone quindi tutte le proprietà. Espone inoltre la proprietà SuperType, ovvero l’oggetto C# che rappresenta il tipo di oggetto da cui deriva lo stesso IUAObjectType.
Classe IUAVariable
Espone le proprietà di qualsiasi istanza di variabile di progetto (variabile base, variabile analogica, tag di PLC, puntatore a nodo).
È una sottoclasse di IUANode e ne espone quindi tutte le proprietà. Espone inoltre le seguenti proprietà:
ArrayDimensions: quantità di celle dell’array
DataType: tipo di dato che la variabile può contenere (es.:
OpcUa.DataTypes.Boolean,OpcUa.DataTypes.Int16).Value : valore della variabile (proprietà di tipo UAValue)
VariableType: oggetto C# che rappresenta il tipo di variabile da cui deriva l’istanza.
Classe IUAVariableType
Espone le proprietà di qualsiasi tipo di variabile di progetto.
È una sottoclasse di IUANode e ne espone quindi tutte le proprietà. Espone inoltre le seguenti proprietà:
ArrayDimensions: quantità di celle dell’array
DataType: tipo di dato che la variabile può contenere (es.:
OpcUa.DataTypes.Boolean,OpcUa.DataTypes.Int16).SuperType: oggetto C# che rappresenta il tipo di variabile da cui deriva la stessa
IUVariableType.
Classe UAValue
Espone un valore. Il valore può poi essere convertito da e verso diversi tipi di dati C#.
Classi per tipi custom e nativi
Per qualsiasi tipo nativo o custom di progetto è disponibile una classe C# corrispondente. Questa classe è sempre una sottoclasse di IUAObject o IUAVariable, a cui vengono aggiunte eventuali proprietà specificate nel tipo. Ad esempio, se in Q Studio si crea un tipo di oggetto Motor, con due proprietà Speed e Acceleration, viene automaticamente creata la classe C# Motor con le proprietà Speed, SpeedVariable, Acceleration, AccelerationVariable (per le classe delle proprietà vedere Proprietà degli oggetti).
Le classi C# dei tipi nativi sono definite nei moduli Q Platform. Le classi C# corrispondenti ai tipi custom vengono invece automaticamente create da Q Studio quando si salva il progetto.
Nota
il tipo di un oggetto o variabile selezionato/a da cui deriva un’istanza è visualizzabile in Q Studio nel pannello Proprietà con mouseover su Tipo o sul suo valore.
Proprietà degli oggetti
Per ogni proprietà di un oggetto OPC UA sono disponibili due varianti di proprietà C#:
una proprietà il cui nome è uguale al BrowseName della proprietà (ad esempio, la classe
Textper la proprietà Testo di un’oggetto Etichetta). Questa rappresenta il valore della proprietà (ad esempio"Current speed is: "), il cui tipo di dato è quello della proprietà C# stessa (ad esempio il tipo di dato string perText).una proprietà di tipo
IUAVariableil cui nome è composto dal BrowseName della proprietà e dal suffisso «Variable» (ad esempio, la proprietàTextVariablecorrispondente alla proprietà Text di un oggetto Etichetta). Questa rappresenta il nodo OPC UA della proprietà. È utile, per esempio, per impostare collegamenti dinamici (vedere API per i collegamenti dinamici) e per altre istruzioni che richiedono l’accesso alla classeIUAVariabledella proprietà.
Vedi anche
Concetti correlati
API correlate