|
Durch Ereignisse veränderte Variablen können weitere Ereignisse triggern.
Beispiel: Abwärts- und Aufwärtszähler
STATE VARIABLES
Z1 (INT) := 0,
Z2 (INT) := 0
WHENEVER Z1 > 0
DO
Z1^ := Z1 - 1;
END
WHENEVER Z1 = 0 AND Z2 < 10
DO
Z2^ := Z2 + 1;
Z1^ := 10;
END
|
|

Der Zähler Z1 wird regelmäßig auf null heruntergezählt. Dann wird der Zähler Z2 um eins erhöht, solange bis er den Wert 10 annimmt.
Um die Ereignisse von einander unterscheiden zu können, wird nach jeder Zustandsänderung ein Ereigniszähler (Takt) hochgezählt, der auch im Ergebnis ausgewiesen wird.
Erst wenn zu einem Zeitpunkt keine weiteren Ereignisse mehr ausgeführt werden können, wird die Systemzeit weitergesetzt.
|