Arbeitsablauf für das Auslesen von Snapshot-Eigenschaften

Es gibt zwei Möglichkeiten, um einen Snapshot-Status abzufragen – das manuelle Abfragen mit der Methode GetSnapshotState oder das Beifügen zu einer Änderungsgruppe und Pollen ihrer Änderungen. Basierend auf dem Funktionsprinzip einer Änderungsgruppe meldet die Polling-Funktion in einem Polling-Zyklus nur an die geänderte Steuerung. In einigen Fällen ist es unmöglich, einen Snapshot-Status zu bestimmen. (Ändert sich z. B. ein Snapshot von „geladen“ in „geändert“, dann meldet das Q-SYS-Gerät nur, dass sich die Steuerung „match“ von „true“ in „false“ geändert hat. Die andere zugehörige Steuerung „last“ bleibt „true“.) Bei jeder Verwendung der Methode GetSnapshotState werden jedoch alle zugehörigen Steuerungen eines angeforderten Snapshots abgefragt. Mit den vollständigen Informationen kann der Snapshot-Status immer bestimmt werden.

Da jede Snapshot-Eigenschaft, die von einer Polling-Funktion (Poll oder AutoPoll) abgefragt wird, intern gespeichert wird, kann die Methode Clear des Funktionsbausteins FB_QRC_ResExtract verwendet werden, um diesen Speicher freizugeben.

Nach dem Eintreffen eines Antwort-Frames von einem Q-SYS-Gerät werden alle Snapshot-Steuerungseigenschaften, die durch die Polling-Methode abgerufen werden, intern gespeichert. (Das Attribut bSavOldRes hat darauf KEINE Auswirkungen.) Die Snapshot-Steuerungseigenschaften werden aktualisiert. Mit Hilfe der Methode Clear können diese Eigenschaften gelöscht werden.

Arbeitsablauf für das Auslesen von Snapshot-Eigenschaften 1:

Diese Logik hat keine Auswirkungen auf die Logik bSavOldRes, die im Abschnitt über das Attribut bSavOldRes beschrieben wird. Die Benutzer können jedoch auch bSavOldRes auf TRUE setzen, um die Steuerungseigenschaften beim Element aCtrlProp zu speichern.

Für ein besseres Verständnis dieses Verhaltens wird nachstehend ein Beispiel gezeigt.

Schritt 1: Nachdem Snapshot 1 und 3 (der Name der Snapshot Bank lautet „Bank1“, der Name der Snapshot-Komponente lautet „Snapshot1“) der Änderungsgruppe („ChangeGroup 1“) beigefügt wurden, wurde der Antwort-Frame empfangen:

Arbeitsablauf für das Auslesen von Snapshot-Eigenschaften 2:

Alle zugehörigen Informationen werden intern in einem Array gespeichert. Die Status der Snapshots werden bestimmt.

Schritt 2: Falls in einem Snapshot enthaltene Steuerungen in einem Polling-Zyklus geändert wurden, trifft ein Polling-Frame ein:

Arbeitsablauf für das Auslesen von Snapshot-Eigenschaften 3:

Die Eigenschaft „match.1“ wird im internen Array aktualisiert und der Snapshot „Snapshot 1“ ändert seinen Status von „geladen“ in „geändert“. (aCtrlProp[0])

Schritt 3: Snapshot 3 wird ausgelöst.

Arbeitsablauf für das Auslesen von Snapshot-Eigenschaften 4:

Der „Snapshot 3“ wurde soeben ausgelöst und der Polling-Frame wurde empfangen. Die zugehörigen Steuerungseigenschaften werden aktualisiert.

Schritt 4: Löschen des internen Arrays.

Wenn Benutzer den Status eines anderen Snapshots pollen möchten und die gespeicherten Eigenschaften nicht mehr nützlich sind, sollte das interne Array mit Hilfe der Methode Clear zurückgesetzt werden.

Arbeitsablauf für das Auslesen von Snapshot-Eigenschaften 5:

Nach dem Löschvorgang sind das interne Array und das Array aCtrlProp beide leer.