- Manuale introduttivo
- Creare progetti
- OPC UA
- Oggetti grafici
- Oggetti grafici predefiniti
- Esercitazione sugli oggetti grafici
- Collegamenti dinamici
- Allarmi
- Logger
- Sessioni e impostazioni locali
- Riferimenti a oggetti e variabili
- Estensione dei progetti
- NetLogic
- Riferimento API C#
Costruttore RemoteVariableSynchronizer()
Crea un oggetto
RemoteVariableSynchronizer
che possa contenere un elenco di variabili di progetto da tenere sincronizzate con le variabili di campo correlate.public RemoteVariableSynchronizer()
IMPORTANTE:
L'oggetto
RemoteVariableSynchronizer
deve essere dichiarato come membro della classe all'interno della NetLogic.Costruttore con il tempo di polling predefinito
Nell'esempio seguente viene creato un oggetto
variableSynchronizer
per mantenere il valore di una variabile di progetto Speed
sincronizzato con il valore di una variabile di campo che identifica la velocità di un motore. La variabile di progetto, rappresentata dall'oggetto motorSpeed
, viene aggiunta all'oggetto variableSynchronizer
tramite il metodo Add()
.Quando la variabile di campo cambia il suo valore, viene eseguito il metodo
motorSpeed_VariableChange
. Quando il valore di motorSpeed
(della variabile di campo) è maggiore di 200, viene generato un messaggio di avviso. Il tempo di polling predefinito è impostato sulla velocità massima.private void Start() { motorSpeed = LogicObject.Owner.GetVariable("Speed");variableSynchronizer = new RemoteVariableSynchronizer();variableSynchronizer.Add(motorSpeed); motorSpeed.VariableChange += MotorSpeed_VariableChange; } private void MotorSpeed_VariableChange(object sender, VariableChangeEventArgs e) { if (motorSpeed.Value > 200) { Log.Warning("Speed limit reached!"); } } private IUAVariable motorSpeed; private RemoteVariableSynchronizer variableSynchronizer;
Nel metodo
Stop()
l'invocazione del metodo Dispose()
causa la fine della sincronizzazione quando viene rimosso il nodo padre della NetLogic.Costruttore con tempo di polling personalizzato
Nel seguente esempio, il tempo di polling per
RemoteVariableSynchronizer
è impostato su 5000
millisecondi.public override void Start() { var variable1 = Project.Current.Get<IUAVariable>("Model/Variable1"); variable1.VariableChange += Variable1_VariableChange;synchronizer = new RemoteVariableSynchronizer(TimeSpan.FromMilliseconds(5000));synchronizer.Add(variable1); } private void Variable1_VariableChange(object sender, VariableChangeEventArgs e) { Log.Info($"Variable1 {e.NewValue}"); } public override void Stop() { synchronizer.Dispose(); var variable1 = Project.Current.Get<IUAVariable>("Model/Variable1"); variable1.VariableChange -= Variable1_VariableChange; } RemoteVariableSynchronizer synchronizer;
Fornire un feedback