//===========================(Re-)start der Ampelanlage=========================
(#EREIGNISDEKLARATION ReStart) //Startereignis
(#ZUSTANDSDEKLARATION ReStarten) //Startzustand
(#GruppenÜBERGANGSDEKLARATION ReStarten ReStart 
  (#AUS #WO #A #GRÜN)(#AUS #WO #A #GELB)(#AUS #WO #F #GRÜN)(#AUS #SN #A #GRÜN)
  (#AUS #SN #A #GELB)(#AUS #SN #F #GRÜN)(#EIN #WO #A #ROT)(#EIN #WO #F #ROT)
  (#EIN #SN #A #ROT) (#EIN #SN #F #ROT) (#COUNTDOWN 4)
  +NormalBetrieb'WO-Rot +SN-DruckKnopf'nicht-gedrückt +WO-DruckKnopf'nicht-gedrückt 
  +SN-InduktionsSchleife'nicht-bestätigt +WO-InduktionsSchleife'nicht-bestätigt 
) //Startübergang

(#EREIGNISDEKLARATION COUNTDOWN-IST-NULL) //Ist in T nicht vordeklariert
//Zustände für den Normalbetrieb der Ampelanlage
(#GruppenDEKLARATION NormalBetrieb)
(#GruppenZUSTANDSDEKLARATION NormalBetrieb SN-GelbRot)
(#GruppenZUSTANDSDEKLARATION NormalBetrieb SN-Grün)
(#GruppenZUSTANDSDEKLARATION NormalBetrieb SN-Gelb)
(#GruppenZUSTANDSDEKLARATION NormalBetrieb SN-Rot)
(#GruppenZUSTANDSDEKLARATION NormalBetrieb WO-GelbRot)
(#GruppenZUSTANDSDEKLARATION NormalBetrieb WO-Grün)
(#GruppenZUSTANDSDEKLARATION NormalBetrieb WO-Gelb)
(#GruppenZUSTANDSDEKLARATION NormalBetrieb WO-Rot)

//Zustände für Süd/Nördlichen Druckknopf 
(#GruppenDEKLARATION SN-DruckKnopf)
(#GruppenZUSTANDSDEKLARATION SN-DruckKnopf nicht-gedrückt)
(#GruppenZUSTANDSDEKLARATION SN-DruckKnopf gedrückt)
//Ereignisse für SN-DruckKnopfe
(#EREIGNISDEKLARATION SN-DruckKnopf)

//Zustände für West/Östlichen Druckknopf 
(#GruppenDEKLARATION WO-DruckKnopf)
(#GruppenZUSTANDSDEKLARATION WO-DruckKnopf nicht-gedrückt)
(#GruppenZUSTANDSDEKLARATION WO-DruckKnopf gedrückt)
//Ereignisse für WO-DruckKnopfe
(#EREIGNISDEKLARATION WO-DruckKnopf)

//Zustände für Süd/Nördlichen Induktionsschleife 
(#GruppenDEKLARATION SN-InduktionsSchleife)
(#GruppenZUSTANDSDEKLARATION SN-InduktionsSchleife nicht-bestätigt)
(#GruppenZUSTANDSDEKLARATION SN-InduktionsSchleife bestätigt)
//Ereignisse für SN-InduktionsSchleife 
(#EREIGNISDEKLARATION SN-InduktionsSchleife)

//Zustände für West/Östlichen Induktionsschleife 
(#GruppenDEKLARATION WO-InduktionsSchleife)
(#GruppenZUSTANDSDEKLARATION WO-InduktionsSchleife nicht-bestätigt)
(#GruppenZUSTANDSDEKLARATION WO-InduktionsSchleife bestätigt)
//Ereignisse für WO-InduktionsSchleife 
(#EREIGNISDEKLARATION WO-InduktionsSchleife)
 
//Übergänge des Normalbetriebes
(#GruppenÜBERGANGSDEKLARATION 
  +NormalBetrieb'WO-Rot -WO-DruckKnopf'gedrückt -WO-InduktionsSchleife'bestätigt
  COUNTDOWN-IST-NULL 
  (#EIN #SN #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'SN-GelbRot
)
(#GruppenÜBERGANGSDEKLARATION 
  +NormalBetrieb'SN-GelbRot -WO-DruckKnopf'gedrückt -WO-InduktionsSchleife'bestätigt 
  COUNTDOWN-IST-NULL 
  (#EIN #SN #A #GRÜN) (#EIN #SN #F #GRÜN) (#AUS #SN #A #ROT) (#AUS #SN #A #GELB)
  (#AUS #SN #F #ROT) (#COUNTDOWN 30)
  +NormalBetrieb'SN-Grün +SN-DruckKnopf'nicht-gedrückt 
  +SN-InduktionsSchleife'nicht-bestätigt 
)
(#GruppenÜBERGANGSDEKLARATION 
  +NormalBetrieb'SN-Grün COUNTDOWN-IST-NULL 
  (#AUS #SN #A #GRÜN) (#AUS #SN #F #GRÜN) (#EIN #SN #A #GELB) (#EIN #SN #F #ROT) 
  (#COUNTDOWN 3)
  +NormalBetrieb'SN-Gelb
)
(#GruppenÜBERGANGSDEKLARATION 
  +NormalBetrieb'SN-Gelb COUNTDOWN-IST-NULL 
  (#AUS #SN #A #GELB) (#EIN #SN #A #ROT) (#COUNTDOWN 4)
  +NormalBetrieb'SN-Rot
)
(#GruppenÜBERGANGSDEKLARATION 
  +NormalBetrieb'SN-Rot -SN-DruckKnopf'gedrückt -SN-InduktionsSchleife'bestätigt  
  COUNTDOWN-IST-NULL 
  (#EIN #WO #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'WO-GelbRot
)
(#GruppenÜBERGANGSDEKLARATION 
  +NormalBetrieb'WO-GelbRot -SN-DruckKnopf'gedrückt -SN-InduktionsSchleife'bestätigt  
  COUNTDOWN-IST-NULL 
  (#AUS #WO #A #GELB) (#AUS #WO #A #ROT) (#AUS #WO #F #ROT) (#EIN #WO #F #GRÜN) 
  (#EIN #WO #A #GRÜN) (#COUNTDOWN 30)
  +NormalBetrieb'WO-Grün +WO-DruckKnopf'nicht-gedrückt 
  +WO-InduktionsSchleife'nicht-bestätigt
 )
(#GruppenÜBERGANGSDEKLARATION 
 +NormalBetrieb'WO-Grün COUNTDOWN-IST-NULL
 (#AUS #WO #A #GRÜN) (#AUS #WO #F #GRÜN) (#EIN #WO #F #ROT) (#EIN #WO #A #GELB) 
 (#COUNTDOWN 3)
  +NormalBetrieb'WO-Gelb
)
(#GruppenÜBERGANGSDEKLARATION 
  +NormalBetrieb'WO-Gelb COUNTDOWN-IST-NULL 
  (#AUS #WO #A #GELB) (#EIN #WO #A #ROT) (#COUNTDOWN 4)
  +NormalBetrieb'WO-Rot
)

//Übergänge für den SN-DruckKnopf
(#GruppenÜBERGANGSDEKLARATION 
  -SN-DruckKnopf'gedrückt -NormalBetrieb'SN-Grün -NormalBetrieb'SN-GelbRot
  SN-DruckKnopf 
  (#COUNTDOWN 2) //Dieser Countdown ist zum Ausgleich von doppelten Ereignissen
  +SN-DruckKnopf'gedrückt
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn der SN-DruckKnopf gedrückt wurde, nicht zur WO Reihe wechseln  
  +NormalBetrieb'SN-Rot +SN-DruckKnopf'gedrückt -WO-DruckKnopf'gedrückt 
  -WO-InduktionsSchleife'gedrückt COUNTDOWN-IST-NULL 
  (#EIN #SN #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'SN-GelbRot
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn der SN-DruckKnopf gedrückt wurde, schneller den Zustand NormalBetrieb'WO-Grün  verlassen
  +NormalBetrieb'WO-GelbRot +SN-DruckKnopf'gedrückt COUNTDOWN-IST-NULL 
  (#AUS #WO #A #GELB) (#AUS #WO #A #ROT) (#AUS #WO #F #ROT) (#EIN #WO #F #GRÜN)
  (#EIN #WO #A #GRÜN) (#COUNTDOWN 5)
  +NormalBetrieb'WO-Grün)

(#GruppenÜBERGANGSDEKLARATION  //Wenn der SN- und der WO-DruckKnopf gedrückt wurden, trotzdem von WO-Rot in den Zustand SN-GelbRot wechseln
  +NormalBetrieb'WO-Rot +SN-DruckKnopf'gedrückt +WO-DruckKnopf'gedrückt COUNTDOWN-IST-NULL 
  (#EIN #SN #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'SN-GelbRot
)


//Übergänge für die SN-InduktionsSchleife 
(#GruppenÜBERGANGSDEKLARATION 
  -SN-InduktionsSchleife'bestätigt -NormalBetrieb'SN-Grün -NormalBetrieb'SN-GelbRot
  SN-InduktionsSchleife 
  (#COUNTDOWN 2) //Dieser Countdown ist zum Ausgleich von doppelten Ereignissen
  +SN-InduktionsSchleife'bestätigt 
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn die SN-InduktionsSchleife bestätigt, nicht zur WO Reihe wechseln
  +NormalBetrieb'SN-Rot +SN-InduktionsSchleife'bestätigt -WO-DruckKnopf'gedrückt 
  -WO-InduktionsSchleife'gedrückt COUNTDOWN-IST-NULL 
  (#EIN #SN #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'SN-GelbRot
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn die SN-InduktionsSchleife bestätigt, schneller den Zustand NormalBetrieb'WO-Grün verlassen
  +NormalBetrieb'WO-GelbRot +SN-InduktionsSchleife'bestätigt 
  COUNTDOWN-IST-NULL 
(#AUS #WO #A #GELB) (#AUS #WO #A #ROT) (#AUS #WO #F #ROT) (#EIN #WO #F #GRÜN) (#EIN #WO #A #GRÜN) (#COUNTDOWN 5)
  +NormalBetrieb'WO-Grün
)

(#GruppenÜBERGANGSDEKLARATION  //Wenn die SN- und die WO-Schleife bestätigt wurden, trotzdem von WO-Rot in den Zustand SN-GelbRot wechseln
  +NormalBetrieb'WO-Rot +SN-Induktionschleife'gedrückt +WO-InduktionsSchleife'gedrückt COUNTDOWN-IST-NULL 
  (#EIN #SN #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'SN-GelbRot
)

//Übergänge für den WO-DruckKnopf
(#GruppenÜBERGANGSDEKLARATION 
  -WO-DruckKnopf'gedrückt -NormalBetrieb'WO-Grün -NormalBetrieb'WO-GelbRot
  WO-DruckKnopf 
  (#COUNTDOWN 2) //Dieser Countdown ist zum Ausgleich von doppelten Ereignissen
  +WO-DruckKnopf'gedrückt
)

(#GruppenÜBERGANGSDEKLARATION  //Wenn der WO-DruckKnopf gedrückt wurde, nicht zur SN Reihe wechseln
  +NormalBetrieb'WO-Rot +WO-DruckKnopf'gedrückt -SN-DruckKnopf'gedrückt 
  -SN-InduktionsSchleife'gedrückt
  COUNTDOWN-IST-NULL 
  (#EIN #WO #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'WO-GelbRot
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn der WO-DruckKnopf gedrückt wurde, schneller den  Zustand NormalBetrieb'SN-Grün verlassen
  +NormalBetrieb'SN-GelbRot +WO-DruckKnopf'gedrückt
  COUNTDOWN-IST-NULL 
  (#AUS #SN #A #GELB) (#AUS #SN #A #ROT) (#AUS #SN #F #ROT) (#EIN #SN #F #GRÜN) (#EIN #SN #A #GRÜN) (#COUNTDOWN 5)
  +NormalBetrieb'SN-Grün
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn der SN- und der WO-DruckKnopf gedrückt wurden, trotzdem von SN-Rot in den Zustand WO-GelbRot wechseln
  +NormalBetrieb'SN-Rot +WO-DruckKnopf'gedrückt +SN-DruckKnopf'gedrückt COUNTDOWN-IST-NULL 
  (#EIN #WO #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'WO-GelbRot
)
//Übergänge für die WO-InduktionsSchleife 
(#GruppenÜBERGANGSDEKLARATION 
  -WO-InduktionsSchleife'bestätigt -NormalBetrieb'WO-Grün -NormalBetrieb'WO-GelbRot
  WO-InduktionsSchleife 
  (#COUNTDOWN 2) //Dieser Countdown ist zum Ausgleich von doppelten Ereignissen
  +WO-InduktionsSchleife'bestätigt 
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn die WO-InduktionsSchleife bestätigt, nicht zur SN Reihe wechseln
  +NormalBetrieb'WO-Rot +WO-InduktionsSchleife'bestätigt -SN-DruckKnopf'gedrückt 
  -SN-InduktionsSchleife'gedrückt
  COUNTDOWN-IST-NULL 
  (#EIN #WO #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'WO-GelbRot
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn die WO-InduktionsSchleife bestätigt, schneller den Zustand Normalbetrieb'SN-Grün verlassen
  +NormalBetrieb'SN-GelbRot +WO-InduktionsSchleife'bestätigt 
  COUNTDOWN-IST-NULL 
  (#AUS #SN #A #GELB) (#AUS #SN #A #ROT) (#AUS #SN #F #ROT) (#EIN #SN #F #GRÜN) 
  (#EIN #SN #A #GRÜN) (#COUNTDOWN 5)
  +NormalBetrieb'SN-Grün
)
(#GruppenÜBERGANGSDEKLARATION  //Wenn die SN- und die WO-Schleife bestätigt wurden, trotzdem von SN-Rot in den Zustand WO-GelbRot wechseln
  +NormalBetrieb'SN-Rot +WO-InduktionsSchleife'gedrückt +SN-InduktionsSchleife'gedrückt COUNTDOWN-IST-NULL 
  (#EIN #WO #A #GELB) (#COUNTDOWN 2)
  +NormalBetrieb'WO-GelbRot
)
//===========================Start der Ampelanlage===========================
(#EREIGNIS ReStart) //Startereignis auslösen
(#GruppenÜBERGANGSDEKLARATION INTERPRETER-START ReStart (#EREIGNIS ReStart) ReStarten)

