IUAVariable.VariableChange
Questo evento si verifica quando cambia il valore della variabile di progetto a cui fa riferimento l'oggetto C# di tipo
IUAVariable
.event EventHandler<VariableChangeEventArgs> VariableChange;
IMPORTANTE:
Se la variabile di progetto si riferisce a una variabile di campo, l'evento viene generato solo se la variabile di progetto viene mantenuta sincronizzata con il campo tramite un oggetto
RemoteVariableSynchronizer
, a meno che non esista già un collegamento alle seguenti entità in FactoryTalk Optix Studio
:- Variabile tag da un oggetto grafico
- Oggetto logger dei dati
- Allarme
- Oggetto schema delle ricette
In questo scenario, in una NetLogic, è possibile sottoscrivere il metodo Change Value direttamente nella variabile tag collegata.
Gestore eventi
Il gestore eventi
VariableChange
consente di sottoscrivere un metodo per l'evento con lo stesso nome.public delegate void VariableChange(object sender, VariableChangeEventArgs e);
Argomenti del gestore eventi
- sender(object)
- Un oggetto C# che corrisponde all'oggetto dell'origine del progetto dell'evento.
- e(VariableChangeEventArgs)
- Un oggetto C# che contiene le seguenti proprietà:
- variable(IUAVariable)
- La variabile del progetto che ha generato l'evento.
- newValue(UAValue)
- Il nuovo valore della variabile.
- oldValue(UAValue)
- Valore precedente della variabile.
- indexes(uint[])
- Solo per gli array:gli indici delle celle dell'array in cui il valore è cambiato.MANCIA: La proprietà è vuota se il valore di ciascuna cella cambia o se la variabile del progetto è scalare.
Esempio
Il metodo
Variable1_VariableChange
viene eseguito ogni volta che cambia il valore della variabile Variable1
del progetto.public override void Start() { var variable1 = Project.Current.GetVariable("Model/Variable1"); variable1.VariableChange += Variable1_VariableChange; } private void Variable1_VariableChange(object sender, VariableChangeEventArgs e) { var label1 = Owner.Get<Label>("Label1"); label1.Text = "Value of " + e.Variable.BrowseName + " changed from " + e.OldValue + " to " + e.NewValue; }
Fornire un feedback