Change-Gate-Transferobjekt
Das Change-Gate überwacht einen oder mehrere Werte und führt einen Subflow nur dann aus, wenn sich ein Wert relevant geändert hat. So laufen nachgelagerte Schritte nicht bei jedem Zyklus, sondern nur bei tatsächlicher Änderung. Der Subflow wird wie beim Bedingung-(IF)-Transferobjekt als eigener Ablauf angelegt und beim Öffnen des Gates aufgerufen.

Stellen Sie beim Editieren des Transferobjekts folgende Eigenschaften ein:
Betriebsmodus
| Modus | Bedeutung |
|---|---|
| Einzel-Eingänge | Feste, im Dialog angelegte Schwellwert-Eingänge, jeder mit eigenem Änderungsmodus und Schwellwert. Für zur Projektierungszeit bekannte Werte. |
| Key/Value-Arrays | Zwei feste Eingänge Key und Value, jeweils als Array. Die Arrays werden paarweise über den Index zu einer Menge aus Schlüssel und Wert verbunden. Ein gemeinsamer Änderungsmodus und Schwellwert gilt für alle Schlüssel; die Vergleichsbasis wird je Schlüssel geführt. Für datengetriebene, zur Projektierungszeit unbekannte Mengen. |
Änderungsmodus
Verglichen wird immer gegen den zuletzt durchgelassenen Wert (die Vergleichsbasis).
| Modus | Das Gate öffnet, wenn ... |
|---|---|
| Jede Änderung | der Wert von der Vergleichsbasis abweicht. Gleiche Werte werden blockiert. |
| Absolute Schwelle | die absolute Abweichung den Schwellwert erreicht. |
| Prozentuale Schwelle | die prozentuale Abweichung den Schwellwert erreicht. |
Die Schwellenmodi erfordern numerische Werte. Im Modus Einzel-Eingänge wird der Änderungsmodus je Eingang eingestellt, im Modus Key/Value-Arrays einmal gemeinsam für alle Schlüssel.
Verknüpfung
Bei mehreren Schwellwert-Eingängen legt die Verknüpfung fest, wann das Gate öffnet:
| Verknüpfung | Das Gate öffnet, wenn ... |
|---|---|
| Beliebiger Wert | mindestens ein überwachter Wert sich relevant geändert hat. |
| Alle Werte | jeder überwachte Wert sich relevant geändert hat. |
Zeit
| Eigenschaft | Bedeutung |
|---|---|
| Heartbeat | Ist der Heartbeat aktiv, öffnet der nächste Zyklus nach Ablauf der eingestellten Zeitspanne immer, unabhängig von der Änderung. Die Zeitspanne wird bei jeder Öffnung zurückgesetzt. |
| Sperrzeit | Ist die Sperrzeit aktiv, bleibt das Gate nach einer Öffnung für die eingestellte Dauer fest verschlossen, auch bei Änderung oder Heartbeat. Die Sperrzeit muss kleiner als der Heartbeat sein. |
| Nachholen blockierter Öffnungen | Ist das Nachholen aktiv, merkt sich das Gate die während der Sperrzeit eintreffenden Werte und holt sie nach Ablauf der Sperrzeit als eigene Öffnung nach (siehe unten). Nur zusammen mit der Sperrzeit sinnvoll. |
Nachholen blockierter Öffnungen
Ohne Nachholen werden alle Änderungen verworfen, die in die Sperrzeit fallen. Mit Nachholen merkt sich das Change-Gate jeden während der Sperrzeit eintreffenden Zyklus, je überwachtem Eingang beziehungsweise je Schlüssel den zuletzt gesehenen Wert, und holt das Gemerkte als eigene Öffnung nach, sobald nach Ablauf der Sperrzeit der nächste Zyklus eintrifft.
Beim Nachholen gelten folgende Besonderheiten:
- Gemerkt wird ohne Änderungsbedingung: Auch ein Wert, der den Schwellwert nicht erreicht, wird gemerkt und nachgeholt. Die Änderungseinstellungen entscheiden, wann das Gate öffnet, nicht, was eine Sperrzeit merken darf. Im Diagramm liegt V4 mit 11 nur 1 von der Vergleichsbasis entfernt und wird trotzdem übertragen.
- Das Nachholen setzt weder die Vergleichsbasis noch eine neue Sperrzeit. Die folgenden Zyklen werden weiterhin gegen die bisherige Vergleichsbasis geprüft, bis einer von ihnen den Schwellwert erreicht. Im Diagramm bleibt die Vergleichsbasis daher bis V8 auf 10 stehen; erst V8 überträgt regulär, setzt die Vergleichsbasis auf 20 und startet die nächste Sperrzeit.
- Die nachgeholte Öffnung überträgt die Nutzdaten und Scope-Variablen des Zyklus, aus dem der gemerkte Wert stammt, nicht die des auslösenden Zyklus. Im Modus Key/Value-Arrays können die nachgeholten Paare aus mehreren Zyklen stammen; übertragen wird dann der Kontext des letzten Zyklus, der zur Sperrzeit beigetragen hat.
- Die Werte des auslösenden Zyklus gehen nicht verloren: Erfüllen sie ihre Änderungsbedingung gegen die unveränderte Vergleichsbasis, folgen sie im selben Zyklus als zweite Öffnung. Der Subflow wird dann zweimal aufgerufen, zuerst mit der nachgeholten Öffnung; erst die zweite, reguläre Öffnung setzt die Vergleichsbasis neu und startet die nächste Sperrzeit.
Der Zeitpunkt der Übertragung hängt davon ab, wann der nächste Zyklus eintrifft. Läuft die Sperrzeit ab, ohne dass Daten eintreffen, passiert zunächst nichts; der gemerkte Wert wird erst mit dem nächsten Zyklus übertragen.
Gemerkt wird immer nur der zuletzt eingetroffene Wert, nicht der auffälligste. Ein kurzzeitiger Extremwert innerhalb der Sperrzeit wird durch einen späteren Wert derselben Sperrzeit überschrieben.
Was nachgeholt wird: Einzel-Eingänge und Key/Value-Arrays
In beiden Betriebsmodi gilt dieselbe Regel: Eine nachgeholte Öffnung überträgt das, was eine Öffnung ihres Betriebsmodus immer überträgt.
- Einzel-Eingänge: Eine Öffnung überträgt stets alle überwachten Eingänge als einen Datensatz. Nachgeholt wird der komplette gemerkte Datensatz, sobald mindestens ein überwachter Eingang von seiner Vergleichsbasis abweicht – Eingänge, die wieder auf ihrer Vergleichsbasis stehen, eingeschlossen. Ein gemerkter Datensatz, dessen Werte alle wieder auf der Vergleichsbasis stehen, wird nicht nachgeholt, denn ein unveränderter Datensatz erreicht den Subflow nie. Jede Abweichung zählt, der Schwellwert spielt dabei keine Rolle.
- Key/Value-Arrays: Eine Öffnung überträgt einzelne Paare, und ein unverändertes Paar erreicht den Subflow grundsätzlich nicht. Nachgeholt werden daher nur die gemerkten Paare, deren Wert von der Vergleichsbasis ihres Schlüssels abweicht; jede Abweichung zählt, der Schwellwert spielt dabei keine Rolle. Ein Wert, der vor Ablauf der Sperrzeit auf die Vergleichsbasis zurückkehrt, wird nicht nachgeholt. Weicht kein gemerktes Paar ab, entfällt die nachgeholte Öffnung und der Zyklus wird regulär ausgewertet.
Das Nachholen ist im Modus Key/Value-Arrays je Schlüssel unabhängig: Schlüssel, die in verschiedenen Zyklen derselben Sperrzeit blockiert wurden, werden gemeinsam nachgeholt, jeder mit seinem zuletzt gesehenen Wert. Ein Schlüssel, der erstmals während der Sperrzeit eintrifft, folgt der Option „Ersten Zyklus durchlassen".
Was das Nachholen im Betrieb bewirkt
Ohne Nachholen entsteht eine Lücke über die gesamte Sperrzeit hinweg: Die Aufzeichnung springt vom letzten Wert vor der Sperrzeit direkt auf den nächsten regulär übertragenen Wert. Mit Nachholen wird der Wert aus der Sperrzeit verzögert, aber vollständig übertragen.
Verhalten
| Eigenschaft | Bedeutung |
|---|---|
| Ersten Zyklus durchlassen | Ist die Option gesetzt, öffnet der erste empfangene Zyklus. Andernfalls wird beim ersten Zyklus nur die Vergleichsbasis gesetzt, ohne den Subflow auszuführen. |
| Array-Nutzdaten ausrichten | Nur im Modus Key/Value-Arrays: Array-Nutzdaten werden auf dieselben Array-Indizes wie die geänderten Schlüssel reduziert. |
Bleibt das Gate geschlossen, wird nur der Subflow übersprungen. Der Transfer endet als regulärer Erfolg, nachfolgende Schritte laufen normal weiter.
Nutzdaten
Zusätzlich zu den überwachten Werten können weitere Eingänge als Nutzdaten angelegt werden. Sie gehen nicht in die Änderungsprüfung ein, werden aber an den Subflow übergeben.
Variablen
Wie bei den anderen Subflow-Transferobjekten lassen sich Scope-Variablen deklarieren. Eine Variable mit statischem Wert wird fest eingesetzt; eine Variable ohne statischen Wert wird als verdrahteter Eingang je Aufruf gefüllt.
Subflow
Über die Schaltfläche „Subflow anlegen / öffnen" wird der zum Change-Gate gehörende Ablauf erstellt und im Designer geöffnet. In diesen Subflow ziehen Sie die gewünschten Transferobjekte. Beim Öffnen des Gates werden die überwachten Werte (im Modus Key/Value-Arrays nur die geänderten Paare) sowie die Nutzdaten und Variablen an den Subflow übergeben; dessen Rückgabewerte stehen an den Ausgängen des Change-Gates zur Verfügung.