RemoteVariableSynchronizer() constructor
Erstellen Sie ein
RemoteVariableSynchronizer
-Objekt, das eine Liste mit Projektvariablen enthalten kann, die mit den entsprechenden Feldvariablen synchronisiert bleiben müssen.public RemoteVariableSynchronizer()
WICHTIG:
Das
RemoteVariableSynchronizer
-Objekt muss innerhalb der NetLogic als Mitglied der Klasse deklariert werden.Konstruktor mit Standardabfragezeit
Im nachstehenden Beispiel wird ein
variableSynchronizer
-Objekt erstellt, um den Wert einer Speed
-Projektvariablen mit dem Wert einer Feldvariable zur Identifizierung der Motordrehzahl synchronisiert zu halten. Die vom motorSpeed
-Objekt dargestellte Projektvariable wird über die Add()
-Methode zum variableSynchronizer
-Objekt hinzugefügt.Wenn sich der Wert der Feldvariable ändert, wird die
motorSpeed_VariableChange
-Methode ausgeführt. Wenn der Wert von motorSpeed
(der Feldvariable) größer als 200 ist, wird eine Warnmeldung generiert. Die Standardabfragezeit ist auf volle Geschwindigkeit festgelegt.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;
In der Methode
Stop()
wird durch Aufrufen der Methode Dispose()
die Beendigung der Synchronisierung ausgelöst, wenn der übergeordnete Knoten des NetLogic-Objekts entfernt wird.Konstruktor mit benutzerdefinierter Abfragezeit
Im folgenden Beispiel wird die Abfragezeit für
RemoteVariableSynchronizer
auf 5000
Millisekunden festgelegt.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;
Rückmeldung geben