Häufige Fragen


PlcValue

Unter welchen Bedingungen wird das PlcValue.Change Event ausgelöst?

Beim Einsatz von PlcValue und Ableitungen wie PlcInt16, PlcInt32, PlcBoolean oder PlcBooleanArray wird das Changed-Ereignis verwendet, um Wertänderungen mitzuteilen. Dieses Ereignis wird bei jeder Änderung der Value-Eigenschaft ausgelöst.

Dieses Ereignis wird unter folgenden Bedingungen ausgelöst:

  • Benutzercode ändert den Wert der Value-Eigenschaft auf einen anderen Wert als den zuvor von der Eigenschaft bereitgestellten.
  • Eine Lese-Operation unter Verwendung von PlcValue Instanzen (ausgeführt über eine PlcDeviceConnection) führte zu einen anderen Wert als den von der Eigenschaft zuvor bereitgestellten. Im Falle von Array-Werten, wenn sich mindestens ein Eintrag im Array ändert, wird das Ereignis ebenso ausgelöst.

Dieses Ereigbnis wird unter den folgenden Bedingungen nicht ausgelöst:

  • Benutzercode ändert den Wert der Value Eigenschaft auf den gleichen Wert als den zuvor von der Eigenschaft bereitgestellten.
  • Beim Eintragen eines EventHandlers für das Changed-Ereignis. Das schließt auch den ersten EventHandler mit ein.
  • Der Wert wird über eine Lese-Operation unter Verwendung von PlcValue Instanzen gelesen (ausgeführt über eine PlcDeviceConnection) führte zum gleichen Wert wie der von der Eigenschaft zuvor bereitgestellte. Das schließt auch die erste Lese-Operation mit ein.

Ist es notwendig über jede Änderung am Prozessabild in der SPS informiert zu werden, besteht die Möglichkeit eine initiale Lese-Operation der PlcValue-Instanzen durchzuführen. Werden dann im Anschluss die EventHandler in das Changed-Ereignis eingetragen und darauf hin relevante Änderungen (durch zum Beispiel Polling) regelmäßig gelesen, wird auch der EventHandler bei jeder Änderung ausgeführt.