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
Text
per 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
IUAVariable
il cui nome è composto dal BrowseName della proprietà e dal suffisso «Variable» (ad esempio, la proprietàTextVariable
corrispondente 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 classeIUAVariable
della proprietà.
Vedi anche
Concetti correlati
API correlate