• Deutsch
  • English

Automatische Zugsteuerung mit der Ereignisverwaltung

Einleitung

Es werden verschiedene Mechanismen vorgestellt, mit deren Hilfe mittels der Ereignisverwaltung auf beliebig komplexen Anlagen ein automatischer Zugbetrieb mit unterschiedlichsten Fahrwegen realisiert werden kann. Hierbei wird mit einfachen Schaltbausteinen begonnen, die dann als Teilfunktionen in nachfolgende komplexere Bausteine übernommen werden. Die Bausteine können mittels der Ereignisverwaltung dupliziert werden und dadurch mehrfach zum Einsatz kommen. In einer "händischen" Nachbearbeitung sind die einzelnen Baustein-Kopien dann an die jeweils auslösenden und zu steuernden Objekte anzupassen.

Die einzelnen Schaltbeispiele beziehen sich jeweils auf eine konkrete Beispiel-Anlage, die parallel im Online-Katalog unter "Experimentelle Anlagen" bereitgestellt werden.

Dieses Wiki wird fortgeschrieben.

 

Übersicht

Einfacher Signalhalt
Signalhalt mit Komfort-Funktionen
Einfache Streckenblock-Schaltung
Anstoß identischer Aktionen durch verschiedene auslösende Ereignisse
Haltepunkt-Schaltung für passierenden Zug
Realisierung eines Lock-Mechanismus mittels einer Variable der Ereignisverwaltung
Gleis-Vereinigungen und -Verzweigungen
Eingleisige Strecke mit Verkehr in beide Richtungen und Ausweichstationen
Dynamische Gleisauswahl durch konkurrierende Anforderungen

 

Einfacher Signalhalt

Minimal-Konfiguration, mit der eine Signalschaltung  mit Zugbeeinflussung realisiert werden kann. Der Zug wird – durch das Signal gesteuert – angehalten und gestartet.

Beteiligte Schaltobjekte

  • Signal (steuert das Verhalten des Zuges bei der Annäherung oder beim Halt vor dem Signal)
  • Haltegleis (rot, steuert die Geschwindigkeit der auf dem Gleis befindlichen Lok)

Einträge in der Ereignisverwaltung (Liste der Ereignisse)

  • Zug anhalten
    Auslöser:       Zug befährt Haltegleis.
    Aktion:           Geschwindigkeit der auf dem Haltegleis befindlichen Lok wird auf "0" gesetzt.
  • Fahrt sperren
    Auslöser:       Signal wird geschlossen
    Aktion:           Ereignis Zug anhalten wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
  • Fahrt freigeben
    Auslöser:       Signal wird geöffnet
    Aktionen:       Ereignis Zug anhalten wird deaktiviert und damit für einen sich nähernden Zug unwirksam.
                              Geschwindigkeit der auf dem Haltegleis befindlichen Lok wird auf die Reisegeschwindigkeit gesetzt.

Bei dieser Konfiguration muss die Länge des Haltegleises auf die Reisegeschwindigkeit des Zuges abgestimmt sein. Sie muss mindestens so groß sein, dass der in das Gleis einfahrende Zug noch auf dem Gleis zum Stehen kommt. Nur dann ist ein Start des Zuges durch das Öffnen des Signals möglich.

Anwendungsbeispiel: Anlage "Automatik-Steuerung 01 – Einfacher Signalhalt"
Mit dem Schalter in der rechten Anlagen-Ecke wird das Signal geschaltet.

 

Signalhalt mit Komfort-Funktionen

  

Gegenüber der vorangehenden Schaltung gibt es hier zusätzliche Funktionen für ein sicheres Anhalten, eine gesicherte Durchfahrt, ein vorzeitiges Abbremsen und eine verzögerte Anfahrt.

Beteiligte Schaltobjekte

  • Signal (steuert das Verhalten des Zuges bei der Annäherung oder beim Halt vor dem Signal)
  • Haltegleis (rot, steuert die Geschwindigkeit der auf dem Gleis befindlichen Lok)
  • Bremsgleis (orange, bewirkt ein vorzeitiges Abbremsen des Zuges auf Annäherungsgeschwindigkeit)
  • Sperrweiche (violett, bewirkt im geschlossenen Zustand den Zwangshalt eines das Haltegleis überfahrenden Zuges)
  • Fahrgleis (grün, beschleunigt den befahrenden Zug auf Reisegeschwindigkeit)

Die "Sperrweiche" ist ein Weichenkonstrukt, bei dem der Radius und die Länge des abzweigenden Strangs so klein gewählt sind, dass dieser Strang bei der Darstellung der Weiche durch das Modellbahn-Studio nicht angezeigt wird. An diesen Strang wird kein Gleis angeschlossen. Deshalb bleibt der Zug stehen, wenn die Weiche auf "Abzweig" steht. Aufgrund der Kürze dieses Strangs bleibt der Zug vor der Abzweigung stehen und kann daher seine Fahrt im geraden Strang fortsetzen, sobald die Sperrweiche auf "Geradeaus" umgestellt wurde. Die Blockierung ist nur beim Befahren der Sperrweiche in Richtung der Verzweigung wirksam, wenn für die Lokomotiven die "automatische Freischaltung" der Weichen eingestellt ist (wird in der Gegenrichtung "aufgeschlitzt").

Einträge in der Ereignisverwaltung (Liste der Ereignisse)

  • Zug abbremsen
    Auslöser:       Zug befährt Bremsgleis
    Aktion:           Geschwindigkeit der auf dem Bremsgleis befindlichen Lok wird auf Annäherungsgeschwindigkeit reduziert.
  • Zug anhalten
    Auslöser:       Zug befährt Haltegleis.
    Aktion:           Geschwindigkeit der auf dem Haltegleis befindlichen Lok wird auf "0" gesetzt.
  • Fahrt sperren
    Auslöser:       Signal wird geschlossen
    Aktionen:       Ereignis Zug abbremsen wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
                              Ereignis Zug anhalten wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
  • Sperrweiche schließen
    Auslöser:       Zug verlässt die Sperrweiche.
    Bedingung:   Signal ist geschlossen.
    Aktion:           Sperrweiche wird auf "abzweigend gestellt" und verhindert damit ein Überfahren durch den Zug.
  • Fahrt freigeben
    Auslöser:       Signal wird geöffnet
    Aktionen:       Ereignis Zug abbremsen wird deaktiviert.
                              Ereignis Zug anhalten wird deaktiviert.
                              Sperrweiche wird geöffnet, um den Zug passieren zu lassen.
                              Start-Countdown wird gestartet, um die Reaktionszeit des Lokführers auf das Öffnen des Signals zu simulieren.
  • Zug starten
    Auslöser:       Ablauf des Start-Countdowns (der Reaktionszeit des Lokführers)
    Aktion:           Geschwindigkeit der auf dem Haltegleis befindlichen Lok wird auf eine geringe Startgeschwindigkeit gesetzt.
    Durch den Start des Zuges mit einer geringeren Geschwindigkeit als der Reisegeschwindigkeit wird eine "behutsamere" Beschleunigung erreicht.
  • Zug beschleunigen
    Auslöser:       Zug befährt Fahrgleis
    Aktion:           Geschwindigkeit der auf dem Fahrgleis befindlichen Lok wird auf Reisegeschwindigkeit gesetzt.
    Eine nachträgliche Beschleunigung des Zuges auf die Reisegeschwindigkeit ist auch dann erforderlich, wenn das Signal während der Annäherung des Zuges mit reduzierter Geschwindigkeit geöffnet wird. Wenn die Lok hierbei das Haltegleis noch nicht erreicht hat, wird dessen Geschwindigkeitszuweisung nicht wirksam, und der Zug passiert das Signal mit der reduzierten Geschwindigkeit. Es ist dann die Aufgabe dieses Ereignisses, die Reisegeschwindigkeit wiederherzustellen.

Anwendungsbeispiel: Anlage "Automatik-Steuerung 02 – Signalhalt mit Komfort-Funktionen"

Mit dem Schalter in der rechten Anlagen-Ecke wird der Fahrbetrieb ein- und ausgeschaltet. Nach dem Ausschalten fährt der Zug weiter, bis er vor dem Halt zeigenden Signal zum Stehen kommt. Das in der Ereignisverwaltung der Beispiel-Anlage zusätzlich vorhandene Ereignis "Signal schließt Sperrweiche" ist nicht Bestandteil der oben beschriebenen Signal-abhängigen Zugsteuerung.

 

Einfache Streckenblock-Schaltung

Bei der einfachen Streckenblock-Schaltung werden mehrere Blockabschnitte, die jeweils die im vorherigen Abschnitt beschriebenen Schaltobjekte enthalten, hintereinander angeordnet. Zu den obigen Signalschaltungen kommen zusätzliche Schaltungen für die Interaktion zwischen aufeinanderfolgenden Blockabschnitten hinzu, die dadurch zustande kommen, dass der aktuelle Blockabschnitt nur dann verlassen werden darf, wenn der nächste Blockabschnitt frei ist, und der aktuelle Blockabschnitt für einen nachfolgenden Zug aus dem rückwärtigen Blockabschnitt nach dem Verlassen freigegeben wird. Das für den eigenen Blockabschnitt als "Ausfahrsignal" agierende Blocksignal ist gleichzeitig für den in Fahrtrichtung nachfolgenden Blockabschnitt das Einfahrsignal.

Beteiligte Schaltobjekte für jeweils einen Blockabschnitt (mit Index-Nummern)

  • Signal m (steuert das Verhalten des Zuges bei der Annäherung oder beim Halt vor dem Signal)
  • Haltegleis m (rot, steuert die Geschwindigkeit der auf dem Gleis befindlichen Lok)
  • Bremsgleis m (orange, bewirkt ein vorzeitiges Abbremsen des Zuges auf Annäherungsgeschwindigkeit)
  • Sperrweiche m (violett, bewirkt im geschlossenen Zustand den Zwangshalt eines das Haltegleis überfahrenden Zuges)
  • Fahrgleis m (grün, beschleunigt den befahrenden Zug auf Reisegeschwindigkeit)

Bei der Beschreibung der Einträge in der Ereignisverwaltung wird Blockabschnitt 1 (m=1) als "aktueller" Blockabschnitt betrachtet. Der in Fahrtrichtung nachfolgende Blockabschnitt (links außerhalb des obigen Bildes) besitze die Nummer m=5, der zurückliegende Blockabschnitt (im Bild rechts) die Nummer m=2.

Einträge in der Ereignisverwaltung am Beispiel von Streckenblock-Abschnitt 1 (Liste der Ereignisse)

  • Zug abbremsen
    Auslöser:       Zug befährt Bremsgleis 1
    Aktion:           Geschwindigkeit der auf dem Bremsgleis 1 befindlichen Lok wird auf Annäherungsgeschwindigkeit reduziert.
  • Zug anhalten
    Auslöser:       Zug befährt Haltegleis 1
    Aktion:           Geschwindigkeit der auf dem Haltegleis 1 befindlichen Lok wird auf "0" gesetzt.
  • Ausfahrt blockieren (Sperrweiche und Signal schließen) + Einfahrt freigeben
    Auslöser:       Zug verlässt die Sperrweiche 1
    Bedingung:    (nicht mehr notwendig, da das Signal 1 hier ebenfalls geschlossen wird)
    Aktionen:       Sperrweiche 1 wird geschlossen (abzweigende Stellung) und verhindert damit ein Überfahren durch den Zug.
                              Signal 1 (Ausfahrsignal (= Einfahrsignal für nächsten Blockabschnitt 5)) wird geschlossen.
                              Signal 2 (Einfahrsignal (= Ausfahrsignal des rückwärtigen Blockabschnitts 2)) wird geöffnet.
  • Fahrt sperren
    Auslöser:       Signal 1 wird geschlossen
    Aktionen:       Ereignis Zug abbremsen wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
                              Ereignis Zug anhalten wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
  • Fahrt freigeben
    Auslöser:       Signal 1 wird geöffnet
    Aktionen:       Ereignis Zug abbremsen wird deaktiviert.
                              Ereignis Zug anhalten wird deaktiviert.
                              Sperrweiche 1 wird geöffnet (Geradeaus-Stellung), um den Zug passieren zu lassen.
                              Start-Countdown 1 wird gestartet, um die Reaktionszeit des Lokführers auf das Öffnen des Signals zu simulieren.
    Die Öffnung des Signals 1 erfolgt durch den vorausfahrenden Zug beim Verlassen des vorausliegenden Blockabschnitts 5.
  • Zug starten
    Auslöser:       Ablauf des Start-Countdowns 1 (der Reaktionszeit des Lokführers)
    Aktion:           Geschwindigkeit der auf dem Haltegleis 1 befindlichen Lok wird auf eine geringe Startgeschwindigkeit gesetzt.
    Durch den Start des Zuges mit einer geringeren Geschwindigkeit als der Reisegeschwindigkeit wird eine "behutsamere" Beschleunigung erreicht.
  • Zug beschleunigen
    Auslöser:       Zug befährt Fahrgleis 1
    Aktion:           Geschwindigkeit der auf dem Fahrgleis1 befindlichen Lok wird auf Reisegeschwindigkeit gesetzt.
    Eine nachträgliche Beschleunigung des Zuges auf die Reisegeschwindigkeit ist auch dann erforderlich, wenn das Signal geöffnet wird, nachdem der Zug bereits in den Bremsabschnitt eingefahren ist. Wenn die Lok hierbei das Haltegleis noch nicht erreicht hat, wird dessen Geschwindigkeitszuweisung nicht wirksam, und der Zug passiert das Signal mit der reduzierten Annäherungsgeschwindigkeit. Es ist dann die Aufgabe dieses Ereignisses, die Reisegeschwindigkeit wiederherzustellen.

Da das Blocksignal nur während der Belegung des nachfolgenden Blockabschnitts geschlossen ist, ist seine "Grundstellung" der geöffnete Zustand. Hierdurch bedarf es keiner aktiven Anforderung für die Öffnung des Signals durch den herannahenden Zug.

Diese Streckenblock-Schaltung ist nur für in einer Richtung befahrene Strecken geeignet. Zweigleisige Strecken mit eindeutig festgelegten (gegenläufigen) Fahrtrichtungen können als zwei eingleisige Strecken mit jeweiligem Betrieb in nur einer Richtung betrachtet werden.

Eingleisige Streckenabschnitte, die in beiden Richtungen befahren werden, bedürfen einer anderen Behandlung (siehe weiter unten). Gleiches gilt für zweigleisige Streckenabschnitte mit Gleiswechselbetrieb.

Anwendungsbeispiel: Anlage "Automatik-Steuerung 03 - Einfacher Streckenblock"

Mit dem Schalter in der rechten Anlagen-Ecke wird der Fahrbetrieb ein- und ausgeschaltet. Mit dem Ausschalten wird die Freischaltung der Ausfahrt aus Blockabschnitt 1 durch den Blockabschnitt 5 verlassenden Zug unterbunden, sodass der nächste in Abschnitt 1 einfahrende Zug dauerhaft angehalten wird. Damit kommt der zweite Zug durch die Blocksteuerung im Blockabschnitt 2 zum Stehen. Die in der Ereignisverwaltung im Streckenblock 5 realisierte Ausgliederung der Öffnung von Signal 1 in die zusätzliche Ereignisdefinition "Einfahrt freigeben" dient ausschließlich der An- und Abschaltung des Anlagenbetriebs und ist wie die komplette Ereignisgruppe "Schalter" nicht Bestandteil der Streckenblock-Realisierung.

 

Anstoß identischer Aktionen durch verschiedene auslösende Ereignisse

Jede Aktion, die über die Ereignisverwaltung des Modellbahn-Studios ausgestoßen wird, besitzt genau einen Auslöser. Soll eine identische Aktionsfolge durch verschiedene Auslöser angestoßen werden, muss für jeden dieser Auslöser ein Ereignis implementiert werden, das zur Ausführung dieser Aktionsfolge führt. Um nicht die gesamte Ereignisfolge für jeden dieser Auslöser implementieren zu müssen, benötigt mein eine von jedem Auslöser aufzurufende "Anstoß-Funktion", die ihrerseits ein speziell für diese Aktionsfolge vorgesehenes Ereignis auslöst, um die Aktionsfolge anzustoßen.

Hierfür eignet sich die Countdown-Funktion mit einer Wartezeit 0 Sekunden. Das Aufziehen dieses "Anstoß-Countdowns" bewirkt also die unmittelbare Ausführung aller Aktionen, welche diesen Countdown als Auslöser besitzen. Um also diese nur einmal implementierte Aktionsfolge durch verschiedene Auslöser ausführen zu lassen, muss in deren Ereignis-Definitionen nur der "Anstoß-Countdown" für die besagte Aktionsfolge aktiviert (aufgezogen) werden.

 

Haltepunkt-Schaltung für passierenden Zug

Während in der oben beschriebenen Streckenblock-Implementierung das Blocksignal im "Ruhezustand" geöffnet ist und nur in der Zeit, in welcher der nachfolgende Blockabschnitt belegt ist, geschlossen wird, ist es bei einem Haltepunkt genau umgekehrt: Im Ruhezustand ist das "Ausfahrsignal" geschlossen und wird nur auf Anforderung – sobald der Zug das Signal passieren möchte – geöffnet (natürlich nur, wenn zu diesem Zeitpunkt der nachfolgende Blockabschnitt frei ist). Zieht man weiterhin in Betracht, dass es auch Züge gibt, die den Haltepunkt ohne Halt durchfahren wollen, gibt es 3 drei verschiedene Auslöser, durch die das Öffnen des Signals veranlasst werden kann:

  1. Abfahrbereitschaft des Zuges nach geplanter Haltezeit (nur, wenn nachfolgender Blockabschnitt frei),
  2. Durchfahrbereitschaft des Zuges ohne geplanten Halt (nur, wenn nachfolgender Blockabschnitt frei),
  3. Nachfolgender Blockabschnitt wird frei (nur, wenn Zug bereit zur Abfahrt oder Durchfahrt).

Es gibt also drei verschiedene Anlässe, die jeweils mit einer zu erfüllenden Zusatzbedingung verknüpft sind, um das Signal zu öffnen. Hier kommt der im vorangehenden Abschnitt beschriebene "Anstoß-Countdown" ins Spiel, der es ermöglicht, einen gemeinsamen Aktionsblock durch verschiedene Auslöser anstoßen zu können.

Die Zusatzbedingung "nachfolgender Blockabschnitt frei" wird durch eine "Lock-Variable" realisiert (Näheres zu "Locks" im folgenden Abschnitt), deren Wert die Belegung dieses Blockabschnitts realisiert und in der Zusatzbedingung der Ereignisse "Abfahrbereitschaft" und "Durchfahrbereitschaft"  (Punkte 1 und 2) ausgewertet wird. Umgekehrt bleiben diese Ereignisse deaktiviert, solange die Haltezeit nicht abgelaufen oder die Durchfahrt nicht angefordert ist. Damit bleibt der Auslöser "Nachfolge-Abschnitt wird frei" wirkungslos, solange diese Ereignisse nicht aktiviert sind (implizit wirkende Zusatzbedingung bei Punkt 3).

Im für die nachfolgende Schaltungsbeschreibung zugrunde gelegten Referenzbeispiel ist Streckenblock 1 der Haltepunkt-Abschnitt. Der nachfolgende Blockabschnitt ist mit Streckenblock 5 bezeichnet. Dieselben Indizes werden auch für die hier beschriebenen Objekte und Ereignisse (dort der Ereignisbezeichnung vorangestellt) verwendet.

Beteiligte Schaltobjekte aus den Streckenblock-Abschnitten 1 und 5

  • Signal 1 (steuert das Verhalten des Zuges bei der Annäherung oder beim Halt vor dem Signal)
  • Haltegleis 1 (rot, steuert die Geschwindigkeit der auf dem Gleis befindlichen Lok)
  • Bremsgleis 1 (orange, bewirkt ein vorzeitiges Abbremsen des Zuges auf Annäherungsgeschwindigkeit)
  • Sperrweiche 1 (violett, bewirkt im geschlossenen Zustand den Zwangshalt eines das Haltegleis überfahrenden Zuges)
  • Fahrgleis 1 (grün, beschleunigt den befahrenden Zug auf Reisegeschwindigkeit)
  • Einfahrgleis 1 (blau, erzeugt eine Durchfahr-Anforderung, wenn der Zug nicht "geplant" anhalten soll)
  • Sperrweiche 5 (Sperrweiche des nachfolgenden Blockabschnitts links außerhalb des Bildausschnitts)

Einträge in der Ereignisverwaltung für die Streckenblock-Abschnitte 1 und 5 (Liste der relevanten Ereignisse)

  • 1:  Zug abbremsen
    Auslöser:       Zug befährt Bremsgleis 1
    Aktion:           Geschwindigkeit der auf dem Bremsgleis 1 befindlichen Lok wird auf Annäherungsgeschwindigkeit reduziert.
  • 1:  Zug anhalten
    Auslöser:       Zug befährt Haltegleis 1
    Aktionen:       Geschwindigkeit der auf dem Haltegleis befindlichen Lok wird auf "0" gesetzt.
                          Haltezeit-Countdown 1 aufziehen (für geplante Haltepunkt-Wartezeit)
  • 1:  Ausfahrt blockieren (Sperrweiche und Signal schließen) + Einfahrt freigeben
    Auslöser:       Zug verlässt die Sperrweiche 1
    Aktionen:       Ereignis 1:  Ausfahrt freigeben wird deaktiviert, um Öffnung des Signals ohne fahrbereiten Zug zu verhindern.
                              Sperrweiche 1 wird geschlossen (abzweigende Stellung) und verhindert damit ein Überfahren durch den Zug.
                              Signal 1 (Ausfahrsignal (= Einfahrsignal für nächsten Blockabschnitt 5)) wird geschlossen.
                              Signal 2 (Einfahrsignal (= Ausfahrsignal des rückwärtigen Blockabschnitts 2)) wird geöffnet.
  • 1:  Fahrt sperren
    Auslöser:       Signal 1 wird geschlossen
    Aktionen:       Ereignis 1:  Zug abbremsen wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
                              Ereignis 1:  Zug anhalten wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
  • 1:  Fahrt freigeben
    Auslöser:       Signal1 wird geöffnet
    Aktionen:       Ereignis 1:  Zug abbremsen wird deaktiviert.
                              Ereignis 1:  Zug anhalten wird deaktiviert.
                              Sperrweiche 1 wird geöffnet (Geradeaus-Stellung), um den Zug passieren zu lassen.
                              Start-Countdown 1 wird gestartet, um die Reaktionszeit des Lokführers auf das Öffnen des Signals zu simulieren.
    Die Öffnung des Signals 1 wird durch den Ablauf des "Anstoß-Countdowns" Anstoß Abfahr-Auftrag 1 ausgelöst, der wiederum durch die Auslöser 1:  Zug zur Abfahrt bereit, 1:  Zug für Durchfahrt bereit oder 5:  Ausfahrt blockieren angestoßen wird. Letzterer kennzeichnet insbesondere die nun freie Einfahrt aus Blockabschnitt 1.
  • 1:  Zug starten
    Auslöser:       Ablauf des Start-Countdowns 1 (der Reaktionszeit des Lokführers)
    Aktion:           Geschwindigkeit der auf dem Haltegleis 1 befindlichen Lok wird auf eine geringe Startgeschwindigkeit gesetzt.
    Durch den Start des Zuges mit einer geringeren Geschwindigkeit als der Reisegeschwindigkeit wird eine "behutsamere" Beschleunigung erreicht.
  • 1:  Zug beschleunigen
    Auslöser:       Zug befährt Fahrgleis 1
    Aktion:           Geschwindigkeit der auf dem Fahrgleis 1 befindlichen Lok wird auf Reisegeschwindigkeit gesetzt.
    Eine nachträgliche Beschleunigung des Zuges auf die Reisegeschwindigkeit ist auch dann erforderlich, wenn das Signal geöffnet wird, nachdem der Zug bereits in den Bremsabschnitt eingefahren ist. Wenn die Lok hierbei das Haltegleis noch nicht erreicht hat, wird dessen Geschwindigkeitszuweisung nicht wirksam, und der Zug passiert das Signal mit der reduzierten Annäherungsgeschwindigkeit. Es ist dann die Aufgabe dieses Ereignisses, die Reisegeschwindigkeit wiederherzustellen.
  • 1:  Zug zur Abfahrt bereit
    Auslöser:       Ablauf des Haltezeit-Countdowns 1 (geplante Haltepunkt-Wartezeit abgelaufen)
    Aktionen:       Ereignis 1:  Ausfahrt freigeben aktivieren, damit der Countdown Anstoß Abfahrauftrag 1 wirksam wird
                              Countdown Anstoß Abfahrauftrag 1 mit Dauer "0 Sekunden"  anstoßen (wird sofort wirksam).
  • 1:  Zug für Durchfahrt bereit
    Auslöser:       Zug befährt Einfahrgleis 1
    Aktionen:       Ereignis 1:  Ausfahrt freigeben aktivieren, damit der Countdown Anstoß Abfahrauftrag 1 wirksam wird
                              Countdown Anstoß Abfahrauftrag 1 mit Dauer "0 Sekunden"  anstoßen (wird sofort wirksam).
  • 1:  Ausfahrt freigeben
    Auslöser:       Ablauf des Countdowns Anstoß Abfahrauftrag 1 (wird unmittelbar mit dem Anstoß wirksam)
    Bedingung:    Lock-Variable Belegungs-Lock 5 für Blockabschnitt 5 besitzt den Wert "0" (Kennzeichnung als frei).
    Aktionen:       Lock-Variable Belegungs-Lock 5 auf den Wert "1" setzen (Blockabschnitt 5 als belegt kennzeichnen)
                              Signal 1 öffnen (wird nur wirksam, wenn die Bedingung erfüllt und das Ereignis selbst aktiviert ist).
  • 5:  Ausfahrt blockieren (aus Blockabschnitt 5) + Einfahrt freigeben (aus Blockabschnitt 1)
    Auslöser:       Zug verlässt die Sperrweiche 5
    Aktionen:       Sperrweiche 5 wird geschlossen (abzweigende Stellung) und verhindert damit ein Überfahren durch den Zug.
                              Signal 5 (Ausfahrsignal (= Einfahrsignal für nächsten Blockabschnitt 4)) wird geschlossen.
                              Lock-Variable Belegungs-Lock 5 auf den Wert "0" setzen (Blockabschnitt 5 als frei kennzeichnen)
                              Countdown Anstoß Abfahrauftrag 1 mit Dauer "0 Sekunden"  anstoßen (wird sofort wirksam).

Anwendungsbeispiel: Anlage "Automatik-Steuerung 04 - Haltepunkt-Schaltung"

Mit dem äußeren Schalter in der rechten Anlagen-Ecke wird der Fahrbetrieb ein- und ausgeschaltet. Mit dem Ausschalten wird die Freischaltung der Ausfahrt aus Blockabschnitt 5 durch den Blockabschnitt 4 verlassenden Zug unterbunden, sodass der nächste in Abschnitt 5 einfahrende Zug dauerhaft angehalten wird. Damit kommt der zweite Zug durch die Blocksteuerung im Blockabschnitt 1 (das ist der Haltepunkt-Abschnitt) zum Stehen. Ist der Blockabschnitt 5 frei, hängt die Durchfahrt des Zuges durch den Haltepunkt-Abschnitt 1 oder sein geplanter Halt von der Stellung des inneren Schalters in der rechten Anlagen-Ecke ab. Bei der Stellung "Durchfahrt" wird neben dem blauen Einfahrgleis ein blauer Punkt als Indikator angezeigt. Ist ein geplanter Halt eingestellt, bleibt dieser Punkt unsichtbar.

Neben (Ausfahr-)Signal 1 wird ein grüner Punkt angezeigt, sobald beim Überfahren des Einfahrgleises 1 die Durchfahrt "beantragt" oder die geplante Haltezeit vor dem Signal abgelaufen ist. Das Signal 1 wird genau dann geöffnet, wenn sowohl die durch den grünen Punkt angezeigte Ausfahrbereitschaft zutrifft als auch der zu befahrende Blockabschnitt 5 frei ist. Trifft mindestens eine dieser beiden Bedingungen nicht zu, bleibt das Ausfahrsignal geschlossen. Der grüne Anzeigepunkt verschwindet wieder (Ausfahrbereitschaft nicht mehr vorhanden), sobald der ausfahrende Zug das Signal passiert hat.

 

Realisierung eines Lock-Mechanismus mittels einer Variable der Ereignisverwaltung

Ein Lock (englisches Wort für "Sperre") wird in der Datenverarbeitung dazu verwendet, Betriebsmittel, die zu einem Zeitpunkt nur von einer einzigen Instanz bearbeitet werden dürfen, exklusiv zu reservieren und damit einen parallelen Zugriff durch konkurrierende Instanzen zu verhindern. Jede Instanz, die das durch den Lock geschützte Betriebsmittel verwenden möchte, muss den Lock zuerst anfordern, und darf auf das Betriebsmittel erst zugreifen, nachdem ihr der Lock exklusiv zugeteilt wurde. Der Lock kann währenddessen keiner anderen Instanz zugewiesen werden. Nachdem die den Lock besitzende Instanz die Bearbeitung des Betriebsmittels abgeschlossen hat, gibt sie den Lock wieder frei, damit er bei Bedarf von einer anderen Instanz angefordert werden kann.

Im Modellbahn-Studio bietet sich für die Realisierung eines solchen Locks eine Variable aus der Ereignisverwaltung an. Hierbei legt man einen bestimmten Wert fest (beispielsweise den Wert "0"), der den durch die Variable repräsentierten Lock ("Lockvariable") als frei kennzeichnet. Alle anderen Werte kennzeichnen die Lockvariable als "belegt", wobei durch die Verwendung unterschiedlicher Belegungswerte für alle konkurrierenden Instanzen eine eindeutige Identifizierung der Lock-Zuordnung ermöglicht wird. Die Realisierung einer Lock-Anforderung in der Ereignisverwaltung könnte damit wie folgt aussehen:

Ereignis 1
Auslöser:                  beliebiges die Lock-Anforderung auslösendes Ereignis
Zusatzbedingung: Lockvariable = 0
Aktionen:                  Lockvariable auf einen von 0 verschiedenen, für die anfordernde Instanz spezifischen Wert setzen
                                     Countdown mit Wartezeit aufziehen

Ereignis 2
Auslöser:                  Wartezeit-Countdown abgelaufen
Zusatzbedingung: Lokvariable besitzt  den zuvor hineingeschriebenen Instanz-spezifischen Wert
Aktionen:                  Ausführen der durch den Lock geschützten Aktionen
                                     Lockvariable auf "0" setzen (Lock freigeben)

Ist bei Ereignis 1 die Zusatzbedingung nicht erfüllt, ist der Lock anderweitig belegt.
Ist bei Ereignis 2 die Zusatzbedingung nicht erfüllt, wurde der Lock zwischenzeitlich durch eine andere Instanz "weggeschnappt".
In beiden Fällen muss der Lock zu einem späteren Zeitpunkt erneut angefordert werden (neuer Beginn mit Ereignis 1).

Leider ist der hier beschriebene Mechanismus "Lockvariable auf 0 prüfen und dann auf eigenen Wert setzen" nicht "atomar". D.h. die Aktionsfolge "Lesen + Bewerten + Schreiben" kann nicht als "eine Operation" realisiert werden, während deren Bearbeitung konkurrierende Lese- und Schreib-Operationen unterbunden werden. Deshalb kann der Wert "0" aus der geprüften Lockvariable so lange auch durch andere Instanzen gelesen werden, bis sie mit einem anderen Wert überschrieben wurde. Damit führen auch diese Instanzen die Bearbeitung des Ereignisses 1 aus und überschreiben ihrerseits die vorgefundene (und vermeintlich noch gültige) "0" mit ihrem spezifischen Lock-Wert. Findet dieses Überschreiben durch die konkurrierenden Prozesse erst statt, nachdem die eigene Instanz die Zusatzbedingung in Ereignis 2 (erfolgreich) geprüft hat, nimmt diese an, dass sie den Lock besitzt, obwohl andere Instanzen ihn kurz darauf überschreiben, und bearbeitet das durch den Lock zu schützende Betriebsmittel nun, nicht wissend, dass sie den Lock überhaupt nicht mehr besitzt.

Um dieses Verhalten zumindest fast auszuschließen (eine 100%ige Sicherheit gibt es ohne die oben beschriebene atomare Operation nicht) , wählt man die Zeitspanne für den in Ereignis 1 aufzuziehenden Wartezeit-Countdown so groß, dass man annehmen kann, dass alle möglichen Konkurrenten die Lockvariable vor dem Beginn der Prüfung in Ereignis 2 überschrieben haben und damit der für die Prüfung der Zusatzbedingung gelesene Lockvariablenwert definitiv gültig ist. Der "Sieger" bei der Lockanforderung ist dabei stets jene Instanz, welche die Lockvariable als letzte überschreibt. Alle anderen anfordernden Instanzen müssen über das Ereignis 2 das Misslingen der Lock-Anforderung erkennen und deshalb diese zu einem späteren Zeitpunkt erneut versuchen.

Für die Bemessung der im Countdown zu spezifizierenden Wartezeit sind folgende Indikatoren von Bedeutung:

  1. Die Prüfung des Lockvariablen-Werts und das Überschreiben in Ereignis 1 sind zwar in Summe nicht "atomar", aber doch Teil einer einzigen Ereignisbearbeitung, sodass von einer sehr kurzen Zeitdifferenz zwischen dem Lesen der Lockvariable und dem Überschreiben ausgegangen werden kann.
  2. Konkurrierende Instanzen können den von der eigenen Instanz hinterlegten Lockvariablen-Wert nur dann überschreiben, wenn sie ihrerseits noch den Wert "0" vorgefunden haben, also ihre Bearbeitung des Ereignisses 1 vor dem Überschreiben der Lockvariable durch die eigene Instanz begonnen haben Man kann also davon ausgehen, dass das nachträgliche Überschreiben der von der eigenen Instanz gesetzten Lockvariable durch fremde Instanzen in nur sehr kurzer Zeit nach dem Beschreiben durch die eigene Instanz abgeschlossen ist.
  3. Die benötigte Zeit für eine Ereignisbearbeitung wird bei starker Auslastung (Größe und Rasterung der Anlage, Anzahl der 3D-Objekte, Anzahl der konkurrierenden Instanzen) möglicherweise gedehnt.

Letztendlich kann man die benötigte/ausreichende Wartezeit nur durch eigenes Probieren herausbekommen. Hier ein Erfahrungswert: Bei der Demo-Anlage Automatik-Steuerung 05b - Streckenvereinigung und -verzweigung (Bodenplatte 520 cm x 200 cm, eine verschlungene "Gleis-8" mit 9 "konkurrierenden" Bahnhofsgleisen und zusätzlichen 7 Streckenblock-Abschnitten, 9 Züge (95 Einzelfahrzeuge), keine für den Betriebsablauf überflüssigen Objekte (z.B. Gebäude)) reicht eine Wartezeit von 0,1 Sekunden für ein sicheres Funktionieren des Lock-Mechanismus aus.

 

Gleis-Vereinigungen und -Verzweigungen

Werden mehrere Gleiszweige in einen Gleisabschnitt zusammengeführt, müssen sich gleichzeitig auf die Einfahrt in das gemeinsame Gleis wartende Züge synchronisieren. Es darf also nur ein Zug einfahren, um Zusammenstöße zu vermeiden. Hierzu wird die im vorangegangenen Abschnitt beschriebene Lockvariable verwendet. In dem im obigen Bild dargestellten Beispiel besitzt der in einer Richtung befahrene Haltepunkt zwei Gleise, bei denen das obere für einen geplanten Halt und das untere für eine Durchfahrt ohne geplanten Halt vorgesehen ist. Der obere Zug erlangt die Ausfahrbereitschaft, sobald die geplante Haltezeit abgelaufen ist. Der untere Zug aktiviert seine Ausfahrbereitschaft schon beim Einfahren. Wird der nachfolgende Blockabschnitt erst frei, nachdem beide Züge die Ausfahrbereitschaft erlangt haben, wird über die Vergabe des Locks entschieden, welcher Zug zuerst ausfahren darf.

Die Verzweigung in eines der beiden Bahnhofsgleise aus dem vor der Einfahrt befahrenen Blockabschnitt erfolgt in Abhängigkeit davon, welches Gleis gerade frei ist. Alle möglichen Fahrwege (im betrachteten Beispiel in die Bahnhofsgleise 1 und 2) sind jeweils in einer separaten Ereignisdefinition implementiert, die alle über denselben Auslöser angestoßen werden. Jede Fahrweg-Definition ist bei freiem Gleis aktiviert und bei belegtem Gleis deaktiviert. So werden beim Anstoß der Fahrwegauswahl immer nur Fahrwege in freie Gleise berücksichtigt. Eine erfolgreiche Fahrwegschaltung beinhaltet insbesondere die Öffnung des Einfahrsignals aus dem rückwärtigen Blockabschnitt. Sind beim Anstoß der Fahrwegauswahl alle Gleise belegt, wird keine der Fahrwegschaltungen wirksam, und das vor der Einfahrt in die Verzweigung befindliche Signal bleibt geschlossen. Der Anstoß für die Fahrwegauswahl erfolgt grundsätzlich nach Einfahrt eines Zuges in eines der Zweiggleise und fallweise beim Verlassen eines Zweiggleises. Die letzte Variante kommt nur dann zum Tragen, wenn alle anderen Gleise belegt sind und kein Zug gerade einfährt.  

In der oben abgebildeten Anlage sind sowohl die Vereinigung zweier Gleise zu einem Gleisstrang als auch die Verzweigung von einem Gleis in zwei Gleise realisiert.  Die nachfolgende Auflistung enthält daher die in der Ereignisverwaltung hinterlegten Definitionen für beide Abläufe. Die in den Definitionen referenzierten Indizes beziehen sich hierbei auf die beiden Bahnhofs-Gleisabschnitte 1 (innen) und 2 (außen) sowie auf den Blockabschnitt 6 (links) hinter der Vereinigung und den Blockabschnitt 3 vor der Verzweigung (rechts, jeweils außerhalb des Bildausschnitts).

Beteiligte Schaltobjekte aus den Block-Abschnitten 1, 2, 3 und 6

Bahnhofsgleis 1:

  • Signal 1 (steuert das Verhalten des Zuges bei der Annäherung oder beim Halt vor dem Signal)
  • Haltegleis 1 (rot, steuert die Geschwindigkeit der auf dem Gleis befindlichen Lok)
  • Bremsgleis 1 (orange, bewirkt ein vorzeitiges Abbremsen des Zuges auf Annäherungsgeschwindigkeit)
  • Sperrweiche 1 (violett, bewirkt im geschlossenen Zustand den Zwangshalt eines das Haltegleis überfahrenden Zuges)
  • Fahrgleis 1 (grün, beschleunigt den befahrenden Zug auf Reisegeschwindigkeit)
  • Einfahrgleis 1 (blau, wird insbesondere für die Belegt-Markierung von Bahnhofsgleis 1 verwendet)

Bahnhofsgleis 2:

  • Signal 2 (steuert das Verhalten des Zuges bei der Annäherung oder beim Halt vor dem Signal)
  • Haltegleis 2 (rot, steuert die Geschwindigkeit der auf dem Gleis befindlichen Lok)
  • Bremsgleis 2 (orange, bewirkt ein vorzeitiges Abbremsen des Zuges auf Annäherungsgeschwindigkeit)
  • Sperrweiche 2 (violett, bewirkt im geschlossenen Zustand den Zwangshalt eines das Haltegleis überfahrenden Zuges)
  • Fahrgleis 2 (grün, beschleunigt den befahrenden Zug auf Reisegeschwindigkeit)
  • Einfahrgleis 2 (blau, erzeugt die Durchfahr-Anforderung und die Belegungsmarkierung für Bahnhofsgleis 2)

Umgebende Blockabschnitte:

  • Signal 3 (wird durch die Bereitstellung des Fahrwegs in ein freies Bahnhofsgleis geöffnet)
  • Sperrweiche 6 (Wird zur Freigabe der Einfahrt aus den zurückliegenden Bahnhofsgleisen verwendet)

Einträge in der Ereignisverwaltung für die Blockabschnitte 1, 2, 3 und 6 (Liste der relevanten Ereignisse)

Spezielle Ereignisse für Bahnhofsgleis 1:

  • 1:  Zug abbremsen
    Auslöser:       Zug befährt Bremsgleis 1
    Aktion:           Geschwindigkeit der auf dem Bremsgleis 1 befindlichen Lok wird auf Annäherungsgeschwindigkeit reduziert.
  • 1:  Zug anhalten
    Auslöser:       Zug befährt Haltegleis.1
    Aktionen:       Geschwindigkeit der auf dem Haltegleis 1 befindlichen Lok wird auf "0" gesetzt.
                              Haltezeit-Countdown 1 aufziehen (für geplante Haltepunkt-Wartezeit)
  • 1:  Ausfahrt blockieren (Sperrweiche und Signal schließen) + Einfahrt freigeben
    Auslöser:       Zug verlässt die Sperrweiche 1
    Aktionen:       Ereignis 1:  Ausfahrt freigeben wird deaktiviert, um Öffnung des Signals ohne fahrbereiten Zug zu verhindern.
                              Sperrweiche 1 wird geschlossen (abzweigende Stellung) und verhindert damit ein Überfahren durch den Zug.
                              Signal 1 (Ausfahrsignal) wird geschlossen.
                              Ereignis 1: Gleisauswahl  wird aktiviert, da Bahnhofsgleis 1 nun frei ist.
                              Countdown für Anstoß Gleisauswahl 1+2 starten (wird nur für die freien Gleise wirksam)
  • 1:  Fahrt sperren
    Auslöser:       Signal 1 wird geschlossen
    Aktionen:       Ereignis 1:  Zug abbremsen wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
                              Ereignis 1:  Zug anhalten wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
  • 1:  Fahrt freigeben
    Auslöser:       Signal 1 wird geöffnet
    Aktionen:       Ereignis 1:  Zug abbremsen wird deaktiviert.
                              Ereignis 1:  Zug anhalten wird deaktiviert.
                              Sperrweiche 1 wird geöffnet (Geradeaus-Stellung), um den Zug passieren zu lassen.
                              Start-Countdown 1 wird gestartet, um die Reaktionszeit des Lokführers auf das Öffnen des Signals zu simulieren.
    Die Öffnung des Signals 1 wird durch den Ablauf des "Anstoß-Countdowns" Anstoß Abfahr-Auftrag 1+2 und eine anschließende Zuteilung des Belegungs-Locks 6 ausgelöst. Letztere kennzeichnet die nun freie Ausfahrt aus Bahnhofsgleis 1 in Blockabschnitt 6.
  • 1:  Zug starten
    Auslöser:       Ablauf des Start-Countdowns 1 (der Reaktionszeit des Lokführers)
    Aktion:           Geschwindigkeit der auf dem Haltegleis 1 befindlichen Lok wird auf eine geringe Startgeschwindigkeit gesetzt.
    Durch den Start des Zuges mit einer geringeren Geschwindigkeit als der Reisegeschwindigkeit wird eine "behutsamere" Beschleunigung erreicht.
  • 1:  Zug beschleunigen
    Auslöser:       Zug befährt Fahrgleis 1
    Aktion:           Geschwindigkeit der auf dem Fahrgleis 1 befindlichen Lok wird auf Reisegeschwindigkeit gesetzt.
    Eine nachträgliche Beschleunigung des Zuges auf die Reisegeschwindigkeit ist auch dann erforderlich, wenn das Signal geöffnet wird, nachdem der Zug bereits in den Bremsabschnitt eingefahren ist. Wenn die Lok hierbei das Haltegleis noch nicht erreicht hat, wird dessen Geschwindigkeitszuweisung nicht wirksam, und der Zug passiert das Signal mit der reduzierten Annäherungsgeschwindigkeit. Es ist dann die Aufgabe dieses Ereignisses, die Reisegeschwindigkeit wiederherzustellen.
  • 1:  Zug zur Abfahrt bereit
    Auslöser:       Ablauf des Haltezeit-Countdowns 1 (geplante Haltepunkt-Wartezeit abgelaufen)
    Aktionen:       Ereignis 1:  Ausfahrt freigeben aktivieren, damit der Countdown Anstoß Abfahrauftrag 1+2 wirksam wird
                              Countdown Anstoß Abfahrauftrag 1+2 mit Dauer "0 Sekunden"  anstoßen (wird sofort wirksam).
  • 1:  Ausfahrt freigeben
    Auslöser:       Ablauf des Countdowns Anstoß Abfahrauftrag 1+2 (wird unmittelbar mit dem Anstoß wirksam)
    Bedingung:   Lock-Variable Belegungs-Lock 6 für Blockabschnitt 6 besitzt den Wert "0" (Kennzeichnung als frei).
    Aktion:           Countdown für Ausfahr-Lock-Anforderung 1 starten (künstliche Verzögerung der Lock-Anforderung)
    Legt man kein individuellen Verzögerungen für die Lock-Anforderung aller Konkurrenten fest, kommt bei zeitlich paralleler Anforderung jener Kandidat, der Lockvariable als letzter überschreibt, zum Zuge. Mit der künstlichen Verzögerung der Lock-Anforderung um Bruchteile von Sekunden, kann man für die einzelnen Konkurrenten Prioritäten zuordnen (je länger die Verzögerung, umso kleiner die Priorität).
  • 1:  Ausfahr-Lock anfordern
    Auslöser:       Ablauf des Countdowns für die Ausfahr-Lock-Anforderung 1 (Ablauf der Verzögerung für die Anforderung)
    Bedingung:   Lock-Variable Belegungs-Lock 6 für Blockabschnitt 6 besitzt den Wert "0" (Kennzeichnung als frei).
    Aktionen:       Lock-Variable Belegungs-Lock 6 auf den Wert "1" setzen (Blockabschnitt 6 als belegt kennzeichnen)
                              Countdown für die Lock-Verifizierung starten (Abwarten möglicher konkurrierender Lock-Belegungen)
  • 1:  Lock-Countdown
    Auslöser:       Ablauf des Countdowns für die Lock-Verifizierung
    Bedingung:   Lock-Variable Belegungs-Lock 6 für Blockabschnitt 6 besitzt den Wert "1" (Prüfung, ob erfolgreich belegt).
    Aktion:           Signal 1 öffnen
  • 1: Bahnhofsgleis belegen
    Auslöser:       Zug befährt Einfahrgleis 1
    Aktionen:       Signal 3 schließen (kommt damit möglicherweise dem Schließen mittels der Sperrweiche 3 zuvor)
                              Ereignis 1: Gleisauswahl (Fahrweg in Bahnhofsgleis 1) deaktivieren und damit unwirksam machen.
  • 1: Bahnhofseinfahrt umschalten
    Auslöser:       Zug verlässt Einfahrgleis 1 (und damit das zuvor passierte Weichenfeld)
    Aktionen:       Ereignis Bahnhofsgleis 1+2 aktivieren (Fahrwegumschaltung zulassen)
                              Countdown für Anstoß Gleisauswahl 1+2 starten (wird nur für die freien Gleise wirksam) 

Spezielle Ereignisse für Bahnhofsgleis 2:

  • 2:  Zug abbremsen
    Auslöser:       Zug befährt Bremsgleis 2
    Aktion:           Geschwindigkeit der auf dem Bremsgleis 2 befindlichen Lok wird auf Annäherungsgeschwindigkeit reduziert.
  • 2:  Zug anhalten
    Auslöser:       Zug befährt Haltegleis.2
    Aktion:           Geschwindigkeit der auf dem Haltegleis 2 befindlichen Lok wird auf "0" gesetzt.
                              Haltezeit-Countdown 2 aufziehen (für geplante Haltepunkt-Wartezeit)
  • 2:  Ausfahrt blockieren (Sperrweiche und Signal schließen) + Einfahrt freigeben
    Auslöser:       Zug verlässt die Sperrweiche 2
    Aktionen:       Ereignis 2:  Ausfahrt freigeben wird deaktiviert, um Öffnung des Signals ohne fahrbereiten Zug zu verhindern.
                              Sperrweiche 2 wird geschlossen (abzweigende Stellung) und verhindert damit ein Überfahren durch den Zug.
                              Signal 2 (Ausfahrsignal) wird geschlossen.
                              Ereignis 2: Gleisauswahl  wird aktiviert, da Bahnhofsgleis 2 nun frei ist.
                              Countdown für Anstoß Gleisauswahl 1+2 starten (wird nur für die freien Gleise wirksam)
  • 2:  Fahrt sperren
    Auslöser:       Signal 2 wird geschlossen
    Aktionen:       Ereignis 2:  Zug abbremsen wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
                              Ereignis 2:  Zug anhalten wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
  • 2:  Fahrt freigeben
    Auslöser:       Signal 2 wird geöffnet
    Aktionen:       Ereignis 2:  Zug abbremsen wird deaktiviert.
                              Ereignis 2:  Zug anhalten wird deaktiviert.
                              Sperrweiche 2 wird geöffnet (Geradeaus-Stellung), um den Zug passieren zu lassen.
                              Start-Countdown 2 wird gestartet, um die Reaktionszeit des Lokführers auf das Öffnen des Signals zu simulieren.
    Die Öffnung des Signals 2 wird durch den Ablauf des "Anstoß-Countdowns" Anstoß Abfahr-Auftrag 1+2 und eine anschließende Zuteilung des Belegungs-Locks 6 ausgelöst. Letztere kennzeichnet die nun freie Ausfahrt aus Bahnhofsgleis 2 in Blockabschnitt 6.
  • 2:  Zug starten
    Auslöser:       Ablauf des Start-Countdowns 2 (der Reaktionszeit des Lokführers)
    Aktion:           Geschwindigkeit der auf dem Haltegleis 2 befindlichen Lok wird auf eine geringe Startgeschwindigkeit gesetzt.
    Durch den Start des Zuges mit einer geringeren Geschwindigkeit als der Reisegeschwindigkeit wird eine "behutsamere" Beschleunigung erreicht.
  • 2:  Zug beschleunigen
    Auslöser:       Zug befährt Fahrgleis 2
    Aktion:           Geschwindigkeit der auf dem Fahrgleis 2 befindlichen Lok wird auf Reisegeschwindigkeit gesetzt.
    Eine nachträgliche Beschleunigung des Zuges auf die Reisegeschwindigkeit ist auch dann erforderlich, wenn das Signal geöffnet wird, nachdem der Zug bereits in den Bremsabschnitt eingefahren ist. Wenn die Lok hierbei das Haltegleis noch nicht erreicht hat, wird dessen Geschwindigkeitszuweisung nicht wirksam, und der Zug passiert das Signal mit der reduzierten Annäherungsgeschwindigkeit. Es ist dann die Aufgabe dieses Ereignisses, die Reisegeschwindigkeit wiederherzustellen.
  • 2:  Zug für Durchfahrt bereit
    Auslöser:       Zug befährt Einfahrgleis 2
    Aktionen:       Ereignis 2:  Ausfahrt freigeben aktivieren, damit der Countdown Anstoß Abfahrauftrag 1+2 wirksam wird
                              Countdown Anstoß Abfahrauftrag 1+2 mit Dauer "0 Sekunden"  anstoßen (wird sofort wirksam).
  • 2:  Ausfahrt freigeben
    Auslöser:       Ablauf des Countdowns Anstoß Abfahrauftrag 1+2 (wird unmittelbar mit dem Anstoß wirksam)
    Bedingung:   Lock-Variable Belegungs-Lock 6 für Blockabschnitt 6 besitzt den Wert "0" (Kennzeichnung als frei).
    Aktion:           Countdown für Ausfahr-Lock-Anforderung 2 starten (künstliche Verzögerung der Lock-Anforderung)
    Legt man kein individuellen Verzögerungen für die Lock-Anforderung aller Konkurrenten fest, kommt bei zeitlich paralleler Anforderung jener Kandidat, der Lockvariable als letzter überschreibt, zum Zuge. Mit der künstlichen Verzögerung der Lock-Anforderung um Bruchteile von Sekunden, kann man für die einzelnen Konkurrenten Prioritäten zuordnen (je länger die Verzögerung, umso kleiner die Priorität).
  • 2:  Ausfahr-Lock anfordern
    Auslöser:       Ablauf des Countdowns für die Ausfahr-Lock-Anforderung 2 (Ablauf der Verzögerung für die Anforderung)
    Bedingung:   Lock-Variable Belegungs-Lock 6 für Blockabschnitt 6 besitzt den Wert "0" (Kennzeichnung als frei).
    Aktionen:       Lock-Variable Belegungs-Lock 6 auf den Wert "2" setzen (Blockabschnitt 6 als belegt kennzeichnen)
                              Countdown für die Lock-Verifizierung starten (Abwarten möglicher konkurrierender Lock-Belegungen)
  • 2:  Lock-Countdown
    Auslöser:       Ablauf des Countdowns für die Lock-Verifizierung
    Bedingung:   Lock-Variable Belegungs-Lock 6 für Blockabschnitt 6 besitzt den Wert "2" (Prüfung, ob erfolgreich belegt).
    Aktion:           Signal 2 öffnen
  • 2: Bahnhofsgleis belegen
    Auslöser:       Zug befährt Einfahrgleis 2
    Aktionen:       Signal 3 schließen (kommt damit möglicherweise dem Schließen mittels der Sperrweiche 3 zuvor)
                              Ereignis 2: Gleisauswahl (Fahrweg in Bahnhofsgleis 2) deaktivieren und damit unwirksam machen.
  • 2: Bahnhofseinfahrt umschalten
    Auslöser:       Zug verlässt Einfahrgleis 2 (und damit das zuvor passierte Weichenfeld)
    Aktionen:       Ereignis Bahnhofsgleis 1+2 aktivieren (Fahrwegumschaltung zulassen)
                              Countdown für Anstoß Gleisauswahl 1+2 starten (wird nur für die freien Gleise wirksam) 

Gemeinsame Ereignisse für beide Bahnhofsgleise:

  • 2: Gleisauswahl
    Auslöser:       Ablauf des Countdowns Anstoß Gleisauswahl 1+2
    Bedingung:   Signal 3 des rückwärtigen Blockabschnitts 3 ist geschlossen
    Aktionen:       Sämtliche Weichen des Fahrwegs nach Bahnhofsgleis 2 stellen (hier nur einzige Weiche 1+2)
                              Signal 3 für die Einfahrt in Bahnhofsgleis 2 öffnen.
  • 1: Gleisauswahl
    Auslöser:       Ablauf des Countdowns Anstoß Gleisauswahl 1+2
    Bedingung:   Signal 3 des rückwärtigen Blockabschnitts 3 ist geschlossen
    Aktionen:       Sämtliche Weichen des Fahrwegs nach Bahnhofsgleis 1 stellen (hier nur einzige Weiche 1+2)
                              Signal 3 für die Einfahrt in Bahnhofsgleis 1 öffnen.
  • 6:  Ausfahrt blockieren (aus Blockabschnitt 6) + Einfahrt freigeben (aus Bahnhofsgleis 1 oder 2, über Lockfreigabe)
    Auslöser:       Zug verlässt die Sperrweiche 6
    Aktionen:       Sperrweiche 6 wird geschlossen (abzweigende Stellung) und verhindert damit ein Überfahren durch den Zug.
                              Signal 6 (Ausfahrsignal (= Einfahrsignal für nächsten Blockabschnitt 5)) wird geschlossen.
                              Lock-Variable Belegungs-Lock 6 auf den Wert "0" setzen (Blockabschnitt 6 als frei kennzeichnen).
                              Countdown Anstoß Abfahrauftrag 1+2 mit Dauer "0 Sekunden"  anstoßen (wird sofort wirksam).

Anwendungsbeispiel 1: Anlage "Automatik-Steuerung 05 - Streckenvereinigung und -verzweigung"

Mit dem Schalter in der rechten Anlagen-Ecke wird der Fahrbetrieb ein- und ausgeschaltet. Mit dem Ausschalten wird die Freischaltung der Ausfahrt aus Blockabschnitt 6 durch den Blockabschnitt 5 verlassenden Zug unterbunden, sodass der nächste in Abschnitt 6 einfahrende Zug dauerhaft angehalten wird. Damit bleiben auch die im Haltepunkt befindlichen Züge ungeachtet einer eventuellen Ausfahrbereitschaft stehen. Ist der Blockabschnitt 6 frei, wird den Bahnhofs-Abschnitten die Ausfahrmöglichkeit signalisiert. Diese wird aber nur bei einer vorliegenden Ausfahrbereitschaft angenommen, wobei sich beide Züge bei gleichzeitiger Ausfahrbereitschaft über die Lockvariable 6 synchronisieren (es kann gleichzeitig nur ein Zug ausfahren).

Neben beiden Ausfahrsignalen gibt es grüne Punkte, welche die Ausfahrbereitschaft aus dem jeweiligen Bahnhofsgleis anzeigen (nur bei existierender Ausfahrbereitschaft sichtbar). Man beachte, dass das jeweilige Ausfahrsignal trotz existierender Ausfahrbereitschaft geschlossen sein kann. Dann bleibt der jeweils betroffene Zug trotzdem stehen, bis das Signal geöffnet wird.

Anwendungsbeispiel 2: Anlage "Automatik-Steuerung 05b - Streckenvereinigung und -verzweigung"

Der in diesem Abschnitt beschriebene Algorithmus ist sowohl bei der Streckenvereinigung als auch bei der Streckenverzweigung auch auf mehr als zwei Gleise anwendbar. Die in diesem Bild gezeigte Demo-Anlage besitzt eine aus 9 Gleisen bestehende Gleisharfe, bei der das mittlere Gleis als "Durchfahrgleis" konzipiert ist und auf allen anderen Gleisen jeweils ein geplanter Halt eingelegt wird. Die beide Enden der Gleisharfe verbindende Strecke ist in 7 Streckenblock-Abschnitte unterteilt, sodass mehrere Züge aus der Gleisharfe gleichzeitig unterwegs sein können. Hierdurch kann man sehr gut beobachten, wie bei der Einfahrt in die Gleisharfe stets nur die freien Gleise ausgewählt werden.

Die Anlage wird über den Schalter in der rechten Anlagenecke gestartet und gestoppt. Nach dem Stoppen endet der Betrieb, sobald alle unterwegs befindlichen Züge wieder in die Gleisharfe eingefahren sind.

 

Eingleisige Strecke mit Verkehr in beide Richtungen und Ausweichstationen

Wird eine eingleisige Strecke in beiden Richtungen befahren, stellen die an beiden Enden befindlichen mehrgleisigen Zugänge oder Ausgänge ("Ausweichen") die "Synchronisationsobjekte" dar. Züge, die von beiden Enden her in den eingleisigen Abschnitt einfahren wollen, müssen sich also "gegenseitig absprechen", wer den Abschnitt zuerst befahren darf. Hierzu wird der weiter oben beschriebene Lock-Mechanismus verwendet.

Jeder in der zum obigen Bildausschnitt gehörenden Anlage realisierte Bahnhof ist an jeweils zwei abgehende eingleisige Strecken angebunden, wobei für jede Richtung genau ein Gleis als Durchgangs- und Haltegleis fest zugeteilt ist (das dritte Gleis bei einigen Bahnhöfen ist nur "Attrappe" und wird erst in einer späteren Ausbaustufe mit variabler Gleiszuordnung verwendet).

Die jeweils zwischen zwei Bahnhöfen befindlichen eingleisigen Strecken können in ihrer ganzen Länge jeweils nur von einem Zug befahren werden, wenn man verhindern möchte, dass laufend aufeinander folgende Züge das Befahren in der Gegenrichtung dauerhaft blockieren. Diese Streckenabschnitte werden daher nicht in mehrere Blockabschnitte unterteilt. Vielmehr werden für den Aufbau der Ereignisverwaltung die kompletten Abschnitte zwischen den Ausfahrsignalen zweier aufeinander folgender Bahnhöfe als "Blockabschnitte" betrachtet, wobei der in beiden Richtungen gemeinsam benutzte eingleisige Abschnitt als "Weichenstraße" zwischen den verbundenen Bahnhofsgleisen angesehen werden kann.

Bei der hier beschriebenen Anlage bilden die 5 enthaltenen Bahnhöfe eine geschlossene Kette, wobei die Bahnhöfe selbst mit den Buchstaben A-E, die Bahnhofsgleise mit zusätzlichen Nummern (A1, A2, …) und die verbindenden eingleisigen Strecken mit der Kombination der Buchstaben von den angrenzenden Bahnhöfen bezeichnet sind. In den beiden nachfolgend aufgelisteten "Ketten" sind die Fahrwege (mit den beteiligten Bahnhofsgleisen) für beide Fahrtrichtungen ausgewiesen (die Bahnhofsgleise A1, C3 und E3 werden erst beim nächsten Anlagenbeispiel mit gleichem Gleisplan berücksichtigt):

A2 (Bahnhofsgleis) – AD (Streckenabschnitt) – D1 (Bahnhofsgleis) – CD – C2 – BC – B2 – BE – E2 – AE – A2
A3 (Bahnhofsgleis) – AE (Streckenabschnitt) – E1 (Bahnhofsgleis) – BE – B1 – BC – C1 – CD – D2 – AD – A3

Die Schaltung ist für alle betrachten Bahnhofsgleise und angrenzenden Strecken identisch. In der nachfolgenden Übersicht der Schaltungen in der Ereignisverwaltung wird daher stellvertretend nur das Bahnhofsgleis A2 mit zugehöriger "Umgebung" betrachtet. Die anderen Schaltungen ergeben sich dann durch "geeigneten" Austausch der Gleis- und Signal-Bezeichnungen sowie der Countdown-Definitionen und Ereignis-Referenzen.

Beteiligte Schaltobjekte im Umfeld von Bahnhofsgleis A2 (mit Bezug zu Bahnhofsgleis E2)

  • Signal A2D (Ausfahrsignal in Richtung Bahnhof D)
  • Haltegleis A2D (rot, Haltegleis in Richtung Ausfahrt nach Bahnhof D)
  • Bremsgleis A2 (orange, bremst aus Richtung E einfahrenden Zug ab)
  • Sperrweiche A2D (violett, sperrt bei geschlossenem Signal die Ausfahrt in Richtung D)
  • Ausfahrgleis A2D (grün, beschleunigt den in Richtung D ausfahrenden Zug auf Reisegeschwindigkeit)
  • Einfahrgleis A2E (blau, bewirkt beim Überfahren die Belegung von Gleis A2 aus Richtung E und die Freigabe des verlassenen Streckenabschnitts AE)

Einträge in der Ereignisverwaltung für das Bahnhofsgleis A2 (mit Bezug zu Bahnhofsgleis E2)

Ereignisgruppe "Bahnhofsgleis A2":

  • A2D:  Einfahrt in Bahnhofsgleis A2
    Auslöser:       Zug befährt Einfahrgleis A2E
    Aktion:            Belegungs-Variable für Bahnhofsgleis A2 wird auf 1 gesetzt und zeigt damit dessen Belegung an.
  • A2D:  Einfahrt aus Strecke AE
    Auslöser:       Zug verlässt Einfahrgleis A2E
    Aktion:            Streckenlock-Variable wird auf 0 gesetzt und damit freigegeben.
    Die Freigabe des Streckenlocks AE bewirkt den Anstoß der Ausfahrbereitschaften für einen möglichen Nachfolgezug aus dem Bahnhof E und einen möglicherweise auf Gleis A3 wartenden Gegenzug (siehe Ereignisgruppe Streckenlocks).
  • A2D:  Zug abbremsen
    Auslöser:       Zug befährt Bremsgleis A2
    Aktion:            Geschwindigkeit der auf dem Bremsgleis A2 befindlichen Lok wird auf Annäherungsgeschwindigkeit reduziert.
  • A2D:  Zug anhalten
    Auslöser:       Zug befährt Haltegleis.A2D
    Aktionen:       Geschwindigkeit der auf dem Haltegleis A2D befindlichen Lok wird auf "0" gesetzt.
                              Haltezeit-Countdown A2D aufziehen (für geplante Haltepunkt-Wartezeit)
  • A2D:  Ausfahrt blockieren (Sperrweiche und Signal schließen) + Einfahrt freigeben
    Auslöser:       Zug verlässt die Sperrweiche A2D.
    Aktionen:       Sperrweiche A2D wird geschlossen (abzweigende Stellung) und verhindert damit ein Überfahren durch den Zug.
                              Signal A2D (Ausfahrsignal in Richtung D) wird geschlossen.
  • A2D:  Ausfahrt sperren
    Auslöser:       Signal A2D wird geschlossen
    Aktionen:       Ereignis A2D:  Zug abbremsen wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
                              Ereignis A2D:  Zug anhalten wird aktiviert und damit bei der nächsten Annäherung eines Zuges wirksam.
  • A2D:  Ausfahrt freigeben
    Auslöser:       Signal A2D wird geöffnet
    Aktionen:       Ereignis A2D:  Zug abbremsen wird deaktiviert.
                              Ereignis A2D:  Zug anhalten wird deaktiviert.
                              Sperrweiche A2D1 wird geöffnet (Geradeaus-Stellung), um den Zug passieren zu lassen.
                              Start-Countdown A2D wird gestartet (Simulation der Reaktionszeit des Lokführers auf das Öffnen des Signals).
    Die Öffnung des Signals A2D wird durch den Ablauf des "Anstoß-Countdowns" Anstoß Ausfahrbereitschaft A2D und eine anschließende Zuteilung des Streckenbelegungs-Locks AD (Strecke in Richtung D) ausgelöst. Die Lockzuteilung  kennzeichnet die nun freie Ausfahrt aus Bahnhofsgleis A2 in den Streckenabschnitt AD.
  • A2D:  Zug starten
    Auslöser:       Ablauf des Start-Countdowns A2D (der Reaktionszeit des Lokführers)
    Aktion:            Geschwindigkeit der auf dem Haltegleis A2D befindlichen Lok wird auf eine geringe Startgeschwindigkeit gesetzt.
    Durch den Start des Zuges mit einer geringeren Geschwindigkeit als der Reisegeschwindigkeit wird eine "behutsamere" Beschleunigung erreicht.
  • A2D:  Zug beschleunigen
    Auslöser:       Zug befährt Ausfahrgleis A2D
    Aktion:            Geschwindigkeit der auf dem Fahrgleis A2D befindlichen Lok wird auf Reisegeschwindigkeit gesetzt.
    Eine nachträgliche Beschleunigung des Zuges auf die Reisegeschwindigkeit ist auch dann erforderlich, wenn das Signal A2D geöffnet wird, nachdem der Zug bereits in den Bremsabschnitt eingefahren ist. Wenn die Lok hierbei das Haltegleis noch nicht erreicht hat, wird dessen Geschwindigkeitszuweisung nicht wirksam, und der Zug passiert das Signal mit der reduzierten Annäherungsgeschwindigkeit. Es ist dann die Aufgabe dieses Ereignisses, die Reisegeschwindigkeit wiederherzustellen.
  • A2D:  Zug zur Abfahrt bereit
    Auslöser:       Ablauf des Haltezeit-Countdowns A2D (geplante Haltepunkt-Wartezeit abgelaufen)
    Aktionen:       Ereignis A2D:  Ausfahrbereitschaft aktivieren (für Countdown Anstoß Abfahrbereitschaft A2D)
                              Countdown Anstoß Ausfahrbereitschaft A2D mit Dauer "0 Sekunden"  setzen (wird sofort wirksam).
  • A2D:  Ausfahrbereitschaft
    Auslöser:       Ablauf des Countdowns Anstoß Abfahrauftrag A2D (wird unmittelbar mit dem Anstoß wirksam)
    Bedingung:   Gleis D1 im Zielbahnhof D frei (Belegungs-Variable D1 = 0)
      und:               Streckenabschnitt AD frei (Streckenlock-Variable = 0).
    Aktionen:       Streckenlock-Variable AD auf "A2D" setzen  (Streckenabschnitt AD als belegt kennzeichnen).
                              Countdown Streckenlock A2D starten (Abwarten möglicher konkurrierender Lock-Belegungen)
  • A2D:  Ausfahrt einleiten
    Auslöser:       Ablauf des Countdowns Streckenlock A2D für die Lock-Verifizierung
    Bedingung:   Lock-Variable Streckenlock-Variable AD besitzt den Wert "A2D" (Prüfung, ob erfolgreich belegt).
    Aktionen:       Fahrweg in Gleis D1 des Zielbahnhofs D (Weiche DA12) schalten.
                              Signal A2D (Ausfahrsignal) öffnen
  • A2D:  Ausfahrt aus Bahnhofsgleis A2
    Auslöser:       Zug verlässt Ausfahrgleis A2D (und damit das Bahnhofsgleis A2)
    Aktionen:       Belegungs-Variable A2 wird auf 0 gesetzt und damit  das Bahnhofsgleis A2 freigegeben.
                              Ereignis A2D:  Ausfahrbereitschaft wird deaktiviert
                              Countdown E2A:  Ausfahrbereitschaft für möglichen nachfolgenden Zug aus Bahnhof E setzen

Ereignisgruppe "Durchfahrt" (Durchfahrbereitschaft für alle Bahnhofsgleise zusammengefasst und damit als Gruppe "schaltbar"):

  • A2D:  Zug zur Durchfahrt bereit
    Auslöser:       Zug befährt Einfahrgleis A2E
    Aktionen:       Ereignis A2D:  Ausfahrbereitschaft aktivieren (für Countdown Anstoß Abfahrbereitschaft A2D)
                              Countdown Anstoß Ausfahrbereitschaft A2D mit Dauer "0 Sekunden"  setzen (wird sofort wirksam).

Ereignisgruppe "Streckenlocks"  (Countdowns für Ausfahrbereitschaften aus den angrenzenden Bahnhöfen)

  • AD:  Freigabe Streckenlock AE
    Auslöser:       Streckenlock-Variable AE erhält den Wert "0" zugewiesen (Lock wird frei).
    Aktionen:       Countdown Anstoß Ausfahrbereitschaft A3E setzen (für in Bahnhof A auf Ausfahrt wartenden Zug).
                              Countdown Anstoß Ausfahrbereitschaft E2A setzen (für in Bahnhof E auf Ausfahrt wartenden Zug).
    Beide Züge versuchen daraufhin, den Streckenlock zu bekommen, um in die Strecke einfahren zu können.

Anwendungsbeispiel: Anlage "Automatik-Steuerung 06 - Gegenverkehr"

Innerhalb der Schaltergruppe in der rechten Anlagen-Ecke dienen die beiden rechten Schalter dem Starten und Stoppen der jeweils in einer Richtung fahrenden Züge. Ist nur eine Fahrtrichtung aktiviert, verhalten sich die hintereinander her fahrenden Züge wie bei der Fahrt durch Blockabschnitte (hier die jeweils zwischen den Ausfahrsignalen zweier angrenzender Bahnhöfe liegenden Gleisabschnitte). Sind beide Fahrtrichtungen aktiviert, werden jene Züge, die aus den gegenüber liegenden Bahnhöfen in denselben Streckenabschnitt einfahren wollen, über den zugehörigen Lock-Mechanismus synchronisiert. Wird die Fahrt in eine oder beide Fahrtrichtungen gestoppt, werden zuerst die Züge im Bahnhof A angehalten. Die nachfolgenden Züge bleiben dann in den in Fahrtrichtung jeweils zurückliegenden Bahnhöfen stehen.

Mit dem linken Schalter wird gesteuert, ob in die Bahnhöfe einfahrende Züge einen geplanten Halt einlegen (Schalter aus) oder durchfahren sollen (Schalter an). Letzteres ist allerdings nur möglich, wenn gleichzeitig das Bahnhofsgleis des nächsten Zielbahnhofs und der Streckenabschnitt dorthin frei sind. Sonst wird der jeweils betroffene Zug trotzdem angehalten.

 

Dynamische Gleisauswahl durch konkurrierende Anforderungen

Die diesem Abschnitt zugrunde gelegte Anlage besitzt zwar denselben Gleisplan wie die Beispiel-Anlage aus dem vorangegangenen Abschnitt. Sie besitzt aber eine wesentlich flexiblere (und damit aber auch aufwendigere) Automatik-Steuerung. Hier können nun alle Bahnhofsgleise in beiden Richtungen befahren und durch den jeweils ankommenden Zug je nach Verfügbarkeit dynamisch ausgewählt werden.

Bezeichnet man wieder von vorne nach hinten die 5 vorhandenen Bahnhöfe mit den Buchstaben A-E und nummeriert die Gleise jedes Bahnhofs zusätzlich durch, so können beispielsweise sowohl Züge aus dem Bahnhof D als auch solche aus dem Bahnhof E in den Bahnhof A einfahren, wobei sich jeder Zug selbst eines der Gleise A1-A3, das gerade frei ist, aussucht. Die im vorangegangenen Abschnitt skizzierten "Ketten" werden daher für jede Fahrtrichtung wie folgt verallgemeinert:

A (1-3) (Bahnhofsgleise) – AD (Strecke) – D (1-2) (Bahnhofsgleise) – CD – C (1-3) – BC – B (1-2) – BE – E (1-3) – AE – A (1-3)
A (1-3) (Bahnhofsgleise) – AE (Strecke) – E (1-3) (Bahnhofsgleise) – BE – B (1-2) – BC – C (1-3) – CD – D (1-2) – AD – A (1-3) 

Damit diese Vorgehensweise dauerhaft funktioniert, dürfen nicht alle Gleise eines Bahnhofs gleichzeitig in derselben Richtung belegt sein. Wären nämlich alle Gleise des Bahnhofs A in Fahrtrichtung zum Bahnhof E und gleichzeitig alle Gleise des Bahnhofs E in Fahrtrichtung zum Bahnhof A belegt, könnte keiner der Züge mehr ausfahren, und die Anlage wäre dauerhaft blockiert. Wenn man allerdings sicherstellt, dass in jedem Bahnhof für jede Richtung mindestens ein Ausfahr-Gleis reserviert ist (muss nicht immer dasselbe sein), kann jeder im Bahnhof stehende Zug ausfahren, wenn im nächsten Bahnhof (für den diese Regel ja auch gilt) ein Gleis in derselben Fahrtrichtung frei ist.

Die nachfolgend beschriebene Schaltungsfolge deckt jeweils eine Fahrtrichtung für ein Bahnhofsgleis mit Bezug zu den angrenzenden Anschlusstrecken und den beidseitigen Nachbarbahnöfen ab. Da die 5 Bahnhöfe insgesamt 13 Bahnsteiggleise besitzen, sind dies somit 26 (fast) identische Schaltungsfolgen, die sich im Wesentlichen nur durch die unterschiedlichen Gleis- und Signal-Referenzen sowie die zugehörigen Lock- und Schalt-Variablen unterscheiden. Die nachfolgenden Auflistungen sind repräsentativ für das in Fahrtrichtung zum Bahnhof D verwendete Bahnhofsgleis A2 (Kennzeichnung: A2D) wiedergegeben.

Grober Betriebsablauf

  • Der vom Bahnhof E kommende in Gleis A2 einfahrende Zug gibt die bisher belegte Strecke AE (d.h. den zugehörigen Streckenlock) frei.
  • Schon beim Einfahren (wenn Durchfahrt ohne Halt geplant ist) oder nach Ablauf der geplanten Haltezeit wird unter dem Schutz einer Lockvariable für den Bahnhof D geprüft, ob die Einfahrt in diesen Bahnhof möglich ist, und wenn ja, dort ein freies Bahnhofsgleis reserviert. Der Lock garantiert, dass während dieser Prüfung, Entscheidungsfindung und Reservierung keine Anforderung eines anderen Zuges, der ebenfalls in den Bahnhof D einfahren möchte, eine Änderung vornimmt. Ist die Gleisreservierung abgeschlossen, wird der Bahnhofslock wieder freigegeben.
  • Stattdessen wird nun der Streckenlock für die Verbindungsstrecke AD angefordert. Erst wenn dieser Lock zugeteilt wurde, kann der Fahrweg in das reservierte Gleis von Bahnhof D eingestellt und die Fahrt dorthin angetreten werden, da dann sichergestellt ist, dass kein anderer Zug die Fahrstraße manipuliert und in die Strecke einfährt, solange dieser Lock gehalten ist. Die Freigabe des Streckenlocks AD nach Ankunft des Zuges im Bahnhof D entspricht dem obigen ersten Punkt dieser Aufstellung.

Beteiligte Schaltobjekte für Bahnhofsgleis A2 in Fahrtrichtung D (im obigen Bild von links nach rechts dargestellt)

  • Signal EA (Einfahrsignal aus der Strecke AE in den Bahnhof A)
  • Fahrgleis A2E (grün, Einfahrgleis in Bahnhofsgleis A2 – ist in Gegenrichtung das Ausfahrgleis)
  • Freigleis A2E (blau, Schaltgleis zur Anforderung der Durchfahrt und Feststellung der Fahrtrichtung)
  • Signal A2E (nur für die Gegenrichtung relevant)
  • Sperrweiche A2E (violett, nur für die Gegenrichtung relevant)
  • Haltegleis A2E (rot, nur für die Gegenrichtung relevant)
  • Bremsgleis A2 (orange, bremst den einfahrenden Zug ab, für beide Fahrtrichtungen gleichermaßen verwendet)
  • Haltegleis A2D (rot, Haltegleis in Richtung Ausfahrt nach Bahnhof D)
  • Sperrweiche A2D (violett, sperrt bei geschlossenem Signal A2D die Ausfahrt in Richtung Bahnhof D)
  • Signal A2D (Ausfahrsignal in Richtung Bahnhof D)
  • Freigleis A2D (blau, wird hier nur zur Prüfung der Fahrtrichtung im Zusammenhang mit Fahrgleis A2D verwendet)
  • Fahrgleis A2D (grün, Ausfahrgleis aus Bahnhofsgleis A2, beschleunigt den in Richtung Bahnhof D ausfahrenden Zug auf Reisegeschwindigkeit – ist in Gegenrichtung das Einfahrgleis)

Verwendete Variablen innerhalb der Ereignissteuerung (X, Y, Z und n werden als Platzhalter-Zeichen verwendet)

  • Bahnhofslock X (sichert die exklusive Prüfung und Reservierung eines Bahnhofsgleises im Zielbahnhof X)
  • Streckenlock XY (sichert die Nutzung des Streckenabschnitts zwischen den Bahnhöfen X und Y)
  • Freigleise X (alle Richtungen) (gibt die Zahl der im Bahnhof X freien Gleise an)
    Diese Zahl wird beim Reservieren eines Gleises im Bahnhof x um 1 reduziert und beim Ausfahren um 1 erhöht.
  • Freigleise X (aus Richtung Y) (gibt die Anzahl aktuell zulässiger Einfahrten in Bahnhof X aus Bahnhof Y an)
    Diese Zahl wird um 1 reduziert, wenn im Bahnhof X durch eine Anforderung aus Bahnhof Y ein Gleis reserviert wird. Hierbei wird in der Variable Gleisbelegung für das betroffene Bahnhofsgleis die Kennzeichnung des Bahnhofs, aus dem die Reservierung erfolgte, hinterlegt. Wird das Bahnhofsgleis verlassen, wird über die Variable Gleisbelegung festgestellt, aus welcher Richtung das Gleis ursprünglich reserviert wurde. Dieser Freigleise-Zähler wird dann um 1 erhöht.

Besitzt der Bahnhof X n Bahnhofsgleise, von denen keines belegt oder reserviert ist, ist der Variable Freigleise X (alle Richtungen)  der Wert n zugewiesen. Die beiden Variablen Freigleise X (aus Richtung Y) und Freigleise X (aus Richtung Z), wobei Y und Z die beiden Nachbarbahnhöfe bezeichnen, besitzen dann jeweils den Wert n-1. Sind alle Gleise des betrachteten Bahnhofs belegt, aber die zulässigen Einfahrten aus einer Richtung noch nicht ausgeschöpft, zeigt die zugehörige Variable Freigleise X (aus Richtung Y)  einen Wert >0 an, obwohl keine freies Gleis mehr vorhanden ist. Ist die Anzahl der zulässigen Einfahrten aus einer Richtung ausgeschöpft  (Freigleise X (aus Richtung Y)  = 0), wird ein im Bahnhof X vorgefundenes freies Gleis (Freigleise X (alle Richtungen) > 0) dennoch nicht zugeteilt.

  • Gleisauswahl X (übermittelt dem anfordernden Zug die Nummer n eines freien Gleises im Bahnhof X)
  • Gleisbelegung Xn (identifiziert den Bahnhof Y, aus welchem die Reservierung des Gleises n im Bahnhof X erfolgte)
  • Fahrziel XnY (Zwischenablage für die Nummer des im Zielbahnhof reservierten Gleises. Diese Zwischenablage wird benötigt, weil die Reservierung des Gleises und die Einstellung des Fahrwegs dorthin in verschiedenen Ereignis-Auswertungen erfolgen.)

Für die Schaltungsfolge im betrachteten Bahnhofsgleis relevante Ereignisgruppen

  • A2D: Bahnhofsgleis A2 --> D (Ereignisgruppe für die Bahnhofsgleis- und Richtungs-spezifischen Ereignisse)
  • A13: Gleisbelegung im Bahnhof A (Ereignisgruppe für die Richtungs-unabhängige Gleisbelegung)
  • D12: Gleisbelegung im Bahnhof D (Ereignisgruppe für die Richtungs-unabhängige Gleisbelegung)
  • A13: Sperrweichen im Bahnhof A (Ereignisgruppe für die Richtungs-unabhängige Sperrweichen-Verwaltung)
  • Strecken (Ereignisgruppe für die Verwaltung der Strecken zwischen den Bahnhöfen)

Einträge der Ereignisverwaltung in chronologischer Reihenfolge von der Einfahrt bis zur Ausfahrt

Damit die Chronologie der Ereignisfolge eingehalten werden kann, müssen Ereignisdefinitionen aus unterschiedlichen Ereignisgruppen gemischt werden. Die zugehörige Ereignisgruppe wird daher jeder aufgeführten Ereignisdefinition hinzugefügt.

  • A2D: Einfahrt einleiten (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:           Zug befährt (Ein-)Fahrgleis A2E
    Bedingung:       Freigleis A2E (Nachbargleis) frei (Zug fährt in Bahnhof ein)
    Aktionen:          Ereignisgruppe A2E: Bahnhofsgleis A2 --> E für die Gegenrichtung wird deaktiviert.
    Die Ereignisverwaltung kann an den Ereignissen "Befahren eines Gleises" und "Verlassen eines Gleises" nicht erkennen, in welche Richtung der auslösende Zug fährt und ob das Ereignis für diese Fahrtrichtung relevant ist. Ersteres kann festgestellt werden, indem man als Zusatzbedingung abfragt, ob der auslösende Zug ein unmittelbares Nachbargleis belegt oder dieses frei ist. Zusätzlich werden eine Fahrtrichtung nicht relevante oder sogar schädliche Ereignis-Auswertungen dadurch unterbunden, dass man diese in eine Richtungs-spezifische Ereignisgruppe einfügt und diese beim Befahren des betrachteten Gleisabschnitts (hier einem Bahnhofsgleis) komplett ausblendet (deaktiviert).
  • A2D: Durchfahrt anfordern (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:           Zug befährt Freigleis A2E
    Bedingungen:  Zug befindet sich auch auf Fahrgleis A2E
                                  Durchfahrschalter an (Durchfahrt ohne Halt, soweit möglich – kein planmäßiger Halt vorgesehen)
    Aktionen:           Ereignisgruppe A2D: Wartezeit einstellen deaktivieren (Wartezeit-Countdown darf nicht aufgezogen werden!).
                                 Unmittelbarer Anstoß des Ereignisses "Haltezeit abgelaufen" (Countdown Haltezeit mit Wert 0).
  • A2D: Streckenabschnitt AE freigeben (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:           Zug verlässt Fahrgleis A2E (Zug in Bahnhofsgleis vollständig eingefahren)
    Bedingungen:  Zug befindet sich auch auf Freigleis A2E
                                 Variable Gleisbelegung A2 zeigt Reservierung aus Bahnhof E an
    Aktionen:          Einfahrsignal EA der Strecke aus Richtung Bahnhof E wird geschlossen.
                                Streckenlock AE der nun verlassenen Strecke wird freigegeben.
  • A0E: Streckenfreigabe (Ereignisgruppe Strecken)
    Auslöser:        Streckenlock-Variable AE wird auf "0" zurückgesetzt und damit der Streckenlock AE freigegeben
    Aktionen:        Streckenlock-Freigabe für mögliche Anforderung aus Gleis A1E signalisieren.
                              Streckenlock-Freigabe für mögliche Anforderung aus Gleis A2E signalisieren.
                              Streckenlock-Freigabe für mögliche Anforderung aus Gleis A3E signalisieren.
                              Streckenlock-Freigabe für mögliche Anforderung aus Gleis E1A signalisieren.
                              Streckenlock-Freigabe für mögliche Anforderung aus Gleis E2A signalisieren.
                              Streckenlock-Freigabe für mögliche Anforderung aus Gleis E3A signalisieren.
    Das durch die Freigabe des Streckenlocks AE ausgelöste Ereignis ist unabhängig von dem den Streckenlock freigebenden Zug (oder genauer dem freigebenden Bahnhofsgleis). Es informiert alle an diesen Streckenabschnitt anschließenden Ausfahrgleise über die Freigabe des Locks, unabhängig davon, ob dort jeweils ein Zug auf Einfahrt in die Strecke wartet oder nicht. Die "Benachrichtigung" löst dort jedoch nur dann eine entsprechende Reaktion (Anforderung des Streckenlocks) aus, wenn tatsächlich ein Zug auf die Einfahrt wartet. Sonst ist die dort angestoßene Streckenlock-Anforderung deaktiviert und kommt nicht zur Ausführung. 
  • A2D: Zug abbremsen (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Zug befährt Bremsgleis A2
    Aktion:               Geschwindigkeit der auf dem Bremsgleis A2 befindlichen Lok wird auf Annäherungsgeschwindigkeit reduziert.
    Das Ereignis ist nur aktiviert, solange das Ausfahrsignal A2D geschlossen ist. Bei geöffnetem Signal ist das Ereignis wirkungslos.
  • A2D: Zug anhalten (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Zug befährt Haltegleis A2D
    Aktion:               Die auf dem Haltegleis befindliche Lok wird auf 0 angebremst (läuft bis zum Stand aus).
    Das Ereignis ist nur aktiviert, solange das Ausfahrsignal A2D geschlossen ist. Bei geöffnetem Signal ist das Ereignis wirkungslos.
  • A2D: Wartezeit einstellen (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Zug befährt Haltegleis A2D
    Aktion:               Es wird ein Countdown in der Länge der geplanten Wartezeit aufgezogen (Countdown Haltezeit mit Wert >0).
    Das Ereignis ist nur aktiviert, solange das Ausfahrsignal A2D geschlossen ist. Bei geöffnetem Signal ist das Ereignis wirkungslos. Wird bei der Einfahrt des Zuges in das Bahnhofsgleis die Durchfahrt angefordert, darf dieser Wartezeit-Countdown nicht aufgezogen werden. Das Ereignis wird daher auch bei einer Durchfahrt-Anforderung deaktiviert (siehe oben das Ereignis A2D: Durchfahrt anfordern).
  • A2D: Zug zur Ausfahrt bereit (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Countdown Haltezeit ist abgelaufen oder wurde direkt ohne Wartezeit angestoßen
    Aktionen:          Das Ereignis A2D: Ausfahrbereitschaft wird aktiviert.
                                 Das Ereignis A2D: Ausfahrbereitschaft wird direkt ausgelöst.
  • A2D: Ausfahrbereitschaft (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Anstoß des Ereignisses aus verschiedenen Anlässen.
    Bedingungen: Bahnhofslock D ist frei
                                Es gibt mindestens ein freies Gleis im Bahnhof D (Variable Freigleise D (alle Richtungen) > 0)
                               Einfahrtmöglichkeit in Bahnhof D aus Richtung A nicht ausgeschöpft (Freigleise D (aus Richtung A) > 0)
    Aktionen:        Ein möglicherweise noch laufender Haltezeit-Countdown wird gestoppt.
                              Der als frei erkannte Bahnhofslock D wird mit dem eigenen Kennzeichen A2D belegt.
                              Mögliche konkurrierende Belegungen des Bahnhofslocks D werden abgewartet (Bahnhofslock- Countdown).
                              Das gerade bearbeitete Ereignis A2D: Ausfahrbereitschaft wird deaktiviert.
    Es gibt verschiedene Anlässe, dieses Ereignis auszulösen. Insbesondere wenn die Anforderung eines Gleises im nächsten Zielbahnhof nicht erfolgreich ist, muss die Ausfahrbereitschaft aktiviert bleiben, damit die bisher missglückte Anforderung eines Zielgleises erneut angestoßen werden kann. Dies darf allerdings nur dann passieren, wenn auf diesen Anstoß explizit gewartet wird. Ansonsten (insbesondere dann, wenn das betroffene Ausfahrgleis überhaupt nicht belegt ist) darf die Ausfahr-Anforderung nicht eingeleitet werden, was durch die Deaktivierung dieses Ereignisses verhindert wird. Es  wird daher, wenn ein Zug tatsächlich "zur Ausfahrt bereit" wird, durch die Bearbeitung des oberhalb spezifizierten Ereignisses A2D: Zug zur Ausfahrt bereit explizit aktiviert.
  • A2D: Bahnhofslock nicht bekommen (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Ablauf des Bahnhofslock-Countdowns
    Bedingung:      Eigener Wert A2D in der Variable Bahnhofslock D anderweitig überschrieben
    Aktion:              Lock-Anforderung nach kurzer Wartezeit erneut versuchen (Countdown Haltezeit mit kurzer Wartezeit).
    Mit dem Aufziehen des Haltezeit-Countdowns wird nach kurzer Wartezeit erneut das Ereignis A2D: Zug zur Ausfahrt bereit ausgelöst. Dieses (re-)aktiviert das Ereignis A2D: Ausfahrbereitschaft und stößt die Anforderung des Bahnhofslocks erneut an. Da der Bahnhofslock nur kurz gehalten wird, um ein freies Zielgleis zu reservieren, und danach unmittelbar wieder freigegeben wird, genügt eine kurze "Warteschleife", um den Lock dann tatsächlich zu erhalten.
  • A2D: Bahnhofslock OK, alle Gleise belegt (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Ablauf des Bahnhofslock-Countdowns
    Bedingungen: Bahnhofslock erfolgreich bekommen, aber
                                Alle Gleise des Zielbahnhofs belegt (Variable Freigleise D (alle Richtungen) = 0)
    Aktionen:         Ereignis A2D: Ausfahrbereitschaft reaktivieren
                               Bahnhofslock D bis zur nächsten Anforderung freigeben.
    Der Bahnhofslock wird automatisch wieder angefordert, sobald das Ereignis A2D: Ausfahrbereitschaft erneut angestoßen wurde.
  • A2D: Bahnhofslock OK, Zufahrt A blockiert (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Ablauf des Bahnhofslock-Countdowns
    Bedingungen: Bahnhofslock erfolgreich bekommen, aber
                                Zufahrten in Bahnhof D aus Bahnhof A ausgeschöpft (Variable Freigleise D (aus Richtung A) = 0)
    Aktionen:         Ereignis A2D: Ausfahrbereitschaft reaktivieren
                               Bahnhofslock D bis zur nächsten Anforderung freigeben.
    Der Bahnhofslock wird automatisch wieder angefordert, sobald das Ereignis A2D: Ausfahrbereitschaft erneut angestoßen wurde. In der Zwischenzeit wird möglicherweise einem Zug, der aus der Gegenrichtung in Bahnhof D einfahren möchte, der Zugang zum Bahnhofslock D ermöglicht.
  • A2D: Bahnhofslock und Zufahrt OK (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Ablauf des Bahnhofslock-Countdowns
    Bedingungen: Bahnhofslock erfolgreich bekommen
                                Freies Gleis im Bahnhof D vorhanden (Variable Freigleise D (alle Richtungen) > 0)
                                Zufahrt aus Bahnhof A nicht ausgeschöpft (Variable Freigleise D (aus Richtung A) > 0)
    Aktionen:         Initialisierung der Variable Gleisauswahl D mit dem Wert 0.
                               Anstoß der vom Ursprung der Gleis-Anforderung unabhängigen Gleisauswahl D im Bahnhof D.
                               Aufziehen des Gleisauswahl-Countdowns (Warten auf das Ergebnis der Gleisauswahl).
  • D1x: Auswahl Gleis 1 (Ereignisgruppe D12: Gleisbelegung im Bahnhof D)
    Auslöser:          Anstoß der Gleisauswahl D
    Bedingung:      Gleis D1 momentan nicht belegt (Variable Gleisbelegung D1 = 0)
    Aktion:              Rückgabe des Werts 1 (zur Identifizierung des freien Gleises D1) in die Variable Gleisauswahl D
  • D2x: Auswahl Gleis 2 (Ereignisgruppe D12: Gleisbelegung im Bahnhof D)
    Auslöser:          Anstoß der Gleisauswahl D
    Bedingung:      Gleis D2 momentan nicht belegt (Variable Gleisbelegung D2 = 0)
    Aktion:              Rückgabe des Werts 2 (zur Identifizierung des freien Gleises D2) in die Variable Gleisauswahl D
    Dieses Ereignis ist für jedes Gleis des Bahnhofs D definiert (bei Bahnhöfen mit 3 Gleisen kommt ein drittes Ereignis dazu). Ist ein Gleis schon belegt oder reserviert, ist das zugehörige Ereignis deaktiviert und kommt daher beim Anstoß der Gleisauswahl nicht zur Ausführung. Im Endergebnis wird die Variable Gleisauswahl D nur durch "freie Gleise" überschrieben und zeigt letztendlich den Wert an, der von einem "freien Gleis" dort zuletzt hinterlegt wurde.
  • A2D: Kein Zielgleis ausgewählt (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)   
    Auslöser:          Gleisauswahl-Countdown aus Ereignis A2D: Bahnhofslock und Zufahrt OK abgelaufen
    Bedingung:      Variable Gleisauswahl D besitzt den Wert 0 (kein freies Gleis zugewiesen)
    Aktionen:          Ereignis A2D: Ausfahrbereitschaft reaktivieren
                                Bahnhofslock D bis zur nächsten Anforderung freigeben.
    Eigentlich sollte dieses Ereignis nicht auftreten, weil der Bahnhofslock D gerade gehalten wird, ein freies Gleis festgestellt wurde und eine konkurrierende Reservierung (ohne Besitz dieses Locks) ausgeschlossen ist. Dennoch wurde dieses Ereignis zur Sicherheit (Abdeckung aller möglichen Varianten) mit aufgenommen.
  • A2D: Zielgleis D1 ausgewählt (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Gleisauswahl-Countdown aus Ereignis A2D: Bahnhofslock und Zufahrt OK abgelaufen
    Bedingung:      Variable Gleisauswahl D besitzt den Wert 1 (Zielgleis D1 zugewiesen)
    Aktionen:          Ereignis D1x: Auswahl Gleis 1 wird deaktiviert und damit bei der nächsten Gleisauswahl nicht mehr wirksam.
                                 In Variable Gleisbelegung D1 wird als anfordernde Instanz der Bahnhof A hinterlegt.
                                 Der Wert der Variable Freigleise D (alle Richtungen) wird um 1 reduziert.
                                 Der Wert der Variable Freigleise D (aus Richtung A) wird um 1 reduziert.
                                 Variable Fahrziel A2D wird als Zwischenablage für die Nummer 1 des zugeteilten Gleises D1 verwendet.
                                 Der Bahnhofslock D wird nun nicht mehr benötigt und kann daher freigegeben werden.
                                 Das Ereignis A2D: Streckenlock-Anforderung wird für die Anforderung des Streckenlocks AD aktiviert.
                                 Die Anforderung des Streckenlocks AD für die Ausfahrt aus Bahnhofsgleis A2 wird angestoßen.
  • A2D: Zielgleis D2 ausgewählt (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Gleisauswahl-Countdown aus Ereignis A2D: Bahnhofslock und Zufahrt OK abgelaufen
    Bedingung:      Variable Gleisauswahl D besitzt den Wert 2 (Zielgleis D2 zugewiesen)
    Aktionen:          Ereignis D2x: Auswahl Gleis 2 wird deaktiviert und damit bei der nächsten Gleisauswahl nicht mehr wirksam.
                                 In Variable Gleisbelegung D2 wird als anfordernde Instanz der Bahnhof A hinterlegt.
                                 Der Wert der Variable Freigleise D (alle Richtungen) wird um 1 reduziert.
                                 Der Wert der Variable Freigleise D (aus Richtung A) wird um 1 reduziert.
                                 Variable Fahrziel A2D wird als Zwischenablage für die Nummer 2 des zugeteilten Gleises D2 verwendet.
                                 Der Bahnhofslock D wird nun nicht mehr benötigt und kann daher freigegeben werden.
                                 Das Ereignis A2D: Streckenlock-Anforderung wird für die Anforderung des Streckenlocks AD aktiviert.
                                 Die Anforderung des Streckenlocks AD für die Ausfahrt aus Bahnhofsgleis A2 wird angestoßen.
    Dieses Ereignis muss für jedes mögliche Zielgleis vorhanden sein. Besitzt der Zielbahnhof 3 Gleise, gibt es hier auch eine zusätzliche Ereignisdefinition für das dritte Gleis des Zielbahnhofs.
  • A2D: Streckenlock-Anforderung (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Anstoß durch die erfolgreiche Zuweisung eines Gleises im Zielbahnhof
    Bedingung:      Streckenlock AD der zu befahrenden Strecke ist frei (Variable Streckenlock AD = 0)
    Aktionen:         Belegung des Streckenlocks AD durch Zuweisung des eigenen Kennzeichens A2D.
                                Mögliche konkurrierende Belegungen des Streckenlocks AD abwarten (Aufziehen des Countdowns).
  • A2D: Streckenlock zugeteilt, Fahrziel D1 (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Wartezeit der Streckenlock-Anforderung (Streckenlock-Countdown) abgelaufen
    Bedingungen: Streckenlock erfolgreich zugeteilt (Variable Streckenlock AD = A2D)
                                 In Variable Fahrziel A2D ist der Wert 1 (Zielgleis D1 zugeteilt) hinterlegt
    Aktionen:          Das Ereignis A2D: Streckenlock-Anforderung wird deaktiviert (darf nicht mehr ausgelöst werden).
                                 Umschaltung des Fahrgleises D1A zur Einstellung der Fahrstraße D1A: Einfahrt von A nach D1.
                                 Öffnen des Ausfahrsignals A2D.
                                 Löschen der der als Zwischenablage verwendeten, nicht mehr benötigten Variablen Fahrziel A2D.
  • A2D: Streckenlock zugeteilt, Fahrziel D2 (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Wartezeit der Streckenlock-Anforderung (Streckenlock-Countdown) abgelaufen
    Bedingungen: Streckenlock erfolgreich zugeteilt (Variable Streckenlock AD = A2D)
                                 In Variable Fahrziel A2D ist der Wert 2 (Zielgleis D2 zugeteilt) hinterlegt
    Aktionen:          Das Ereignis A2D: Streckenlock-Anforderung wird deaktiviert (darf nicht mehr ausgelöst werden).
                                 Umschaltung des Fahrgleises D2A zur Einstellung der Fahrstraße D2A: Einfahrt von A nach D2.
                                 Öffnen des Ausfahrsignals A2D.
                                 Löschen der der als Zwischenablage verwendeten, nicht mehr benötigten Variablen Fahrziel A2D.
    Ist der Zielbahnhof 3-gleisig, muss auch hier eine zusätzliche Ereignisauswertung für das dritte Fahrziel definiert sein.
    Wurde der Streckenlock nicht zugeteilt (weil ein anderer Zug bei der Blockierung der Strecke zuvorgekommen ist), werden die obigen Ereignisse nicht ausgelöst. Stattdessen bleibt das Ereignis A2D: Streckenlock-Anforderung aktiviert. Hierdurch kann es durch die Freigabe des Locks durch den aktuell belegenden Zug automatisch neu angestoßen werden.
  • D1A: Einfahrt von A nach D1 (Ereignisgruppe D12: Gleisbelegung im Bahnhof D)
    Auslöser:          Fahrgleis D1A (Schaltweiche) an der Einfahrt A des Bahnhofsgleises D1 wird umgeschaltet
    Aktion(en):       Alle Weichen des Fahrwegs aus Strecke AD in Bahnhofsgleis D1 werden gestellt.
  • D2A: Einfahrt von A nach D2 (Ereignisgruppe D12: Gleisbelegung im Bahnhof D)
    Auslöser:          Fahrgleis D2A (Schaltweiche) an der Einfahrt A des Bahnhofsgleises D2 wird umgeschaltet
    Aktion(en):       Alle Weichen des Fahrwegs aus Strecke AD in Bahnhofsgleis D2 werden gestellt.
    Bei 3-gleisigen Bahnhöfen gibt es auch hier eine zusätzliche Fahrstraßenschaltung in das dritte Bahnhofsgleis.
  • A2D: Ausfahrt freigeben (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Ausfahrsignal A2D wird geöffnet
    Aktionen:          Ereignis A2D: Zug abbremsen wird deaktiviert und damit unwirksam.
                                 Ereignis A2D: Zug anhalten wird deaktiviert und damit unwirksam.
                                 Ereignis A2D: Wartezeit einstellen wird deaktiviert und damit unwirksam.
                                 Sperrweiche A2D wird geöffnet (Geradeaus-Stellung), um den Zug passieren zu lassen.
                                 Anstoß des Zugstart-Countdowns A2D (Reaktionszeit des Lokführers auf das Öffnen des Signals).
  • A2D: Zug starten (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Ablauf des Start-Countdowns A2D (der Reaktionszeit des Lokführers)
    Aktion:              Geschwindigkeit der auf dem Haltegleis A2D befindlichen Lok wird auf eine geringe Startgeschwindigkeit gesetzt.
    Durch den Start des Zuges mit einer geringeren Geschwindigkeit als der Reisegeschwindigkeit wird eine "behutsamere" Beschleunigung erreicht.
  • A2D: Zug beschleunigen (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Zug befährt das (Aus-)Fahrgleis A2D
    Bedingung:      Das benachbarte Freigleis A2D ist ebenfalls vom Zug belegt (Ausfahrt aus dem Bahnhofsgleis)
    Aktion:              Die Geschwindigkeit der auf dem Fahrgleis A2D befindlichen Lok wird auf Reisegeschwindigkeit gesetzt.
    Eine nachträgliche Beschleunigung des Zuges auf die Reisegeschwindigkeit ist auch dann erforderlich, wenn das Signal A2D geöffnet wird, nachdem der Zug bereits in den (aktiven) Bremsabschnitt eingefahren ist. Wenn die Lok hierbei das Haltegleis noch nicht erreicht hat, wird dessen Geschwindigkeitszuweisung nicht wirksam, und der Zug passiert das Signal mit der reduzierten Annäherungsgeschwindigkeit. Es ist dann die Aufgabe dieses Ereignisses, die Reisegeschwindigkeit wiederherzustellen.
  • A2D: Ausfahrt blockieren (Ereignisgruppe A13: Sperrweichen im Bahnhof A)
    Auslöser:          Zug verlässt Sperrweiche A2D
    Aktionen:          Sperrweiche A2D auf Blockierung zurückstellen (verhindert ein Überfahren des geschlossenen Signals).
                                 Ausfahrsignal A2D schließen.
  • A2D: Zughalt aktivieren (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Ausfahrsignal A2D wird geschlossen
    Aktionen:          Ereignis A2D: Zug abbremsen wird aktiviert und damit wirksam.
                                 Ereignis A2D: Zug anhalten wird aktiviert und damit wirksam.
                                 Ereignis A2D: Wartezeit einstellen wird aktiviert und damit wirksam.
  • A2D: Ausfahrt abschließen (Ereignisgruppe A2D: Bahnhofsgleis A2 --> D)
    Auslöser:          Zug verlässt Fahrgleis A2D
    Bedingung:      Benachbartes Freigleis A2D ist frei (Zug hat Bahnhofsgleis A2 komplett verlassen)
    Aktionen:          Ereignis A2x: Auswahl Gleis 2 wird aktiviert (Gleis A2 steht wieder für eine Neubelegung zur Verfügung)
                                 Ereignisgruppe A2E: Bahnhofsgleis A2 --> E für die Gegenrichtung wird reaktiviert.
                                 Einfahrsignal AD in den Zielbahnhof D wird für die bevorstehende Einfahrt geöffnet.
  • A2D: Gleisbelegung D frei (Ereignisgruppe A13: Gleisbelegung im Bahnhof A)
    Auslöser:          Aktivierung des Ereignisses A2x: Auswahl Gleis 2, nachdem es vom ausfahrenden Zug verlassen wurde.
    Bedingung:      Variable Gleisbelegung A2 zeigt ursprüngliche Einfahrt aus Richtung D an
    Aktionen:          Variable Gleisbelegung A2 wird mit Wert 0 überschrieben (Belegung aufgehoben).
                                 Variable Freigleise A (alle Richtungen) wird um 1 erhöht.
                                 Variable Freigleise A (aus Richtung D) wird um 1 erhöht.
                                 Ausfahrbereitschaft D1A für Gleis 1 des Bahnhofs D wird angestoßen.
                                 Ausfahrbereitschaft D2A für Gleis 2 des Bahnhofs D wird angestoßen.
  • A2E: Gleisbelegung E frei (Ereignisgruppe A13: Gleisbelegung im Bahnhof A)
    Auslöser:          Aktivierung des Ereignisses A2x: Auswahl Gleis 2, nachdem es vom ausfahrenden Zug verlassen wurde.
    Bedingung:      Variable Gleisbelegung A2 zeigt ursprüngliche Einfahrt aus Richtung E an
    Aktionen:          Variable Gleisbelegung A2 wird mit Wert 0 überschrieben (Belegung aufgehoben).
                                 Variable Freigleise A (alle Richtungen) wird um 1 erhöht.
                                 Variable Freigleise A (aus Richtung E) wird um 1 erhöht.
                                 Ausfahrbereitschaft E1A für Gleis 1 des Bahnhofs E wird angestoßen.
                                 Ausfahrbereitschaft E2A für Gleis 2 des Bahnhofs E wird angestoßen.
                                 Ausfahrbereitschaft E3A für Gleis 3 des Bahnhofs E wird angestoßen.
    Bei dem hier zugrunde gelegten Anlagen-Beispiel ist in den Bahnhöfen für die Züge kein Fahrtrichtungswechsel vorgesehen (alle Züge fahren "nur vorwärts"). Deshalb fuhr der das Gleis A2 in Richtung Bahnhof D verlassende Zug ursprünglich aus Bahnhof E kommend in das Gleis A2 ein. Dementsprechend besitzt die Variable Gleisbelegung A2 zum Zeitpunkt der Ausfahrt des Zuges den Indikatorwert E, sodass hier von den beiden zuletzt aufgelisteten Ereignissen nur das Ereignis A2E: Gleisbelegung E frei zur Ausführung gelangt.  

Anwendungsbeispiel: Anlagen "Automatik-Steuerung 07a – Dynamische Gleisauswahl" und "Automatik-Steuerung 07b – Dynamische Gleisauswahl"

Die hier vorgestellte Anlage wird sowohl als "leere Anlage" (07a, noch mit Zügen zu bestücken) als auch mit bereits 8 Zügen bestückt bereitgestellt (07b). Um in die leere Anlage Züge einfahren zu lassen, besitzt diese in den Bahnhöfen A und E jeweils ein Abstellgleis, an welche nach jeweiligem Entfernen des Prellbocks ein der leeren Anlage beigefügter "Fiddle-Yard" ("Regal" mit aus separaten Abstellgleisen aufgestellten Zügen) angeschlossen werden kann.

Im Betriebsmodus steuern sich die Züge selbst, indem sie ein Gleis im nächsten Zielbahnhof anfordern und schließlich losfahren, nachdem sie ein solches zugeteilt bekommen haben und die Strecke dorthin frei ist. Die Auswahl der zuzuteilenden Bahnhofsgleise ist durch die Reihenfolge der Auswahl-Ereignisse in der Ereignisverwaltung vorgegeben (das zuletzt "angesprochene" freie Gleis kommt zum Zug), genauso wie die Priorität der Lockvergabe an die anfordernden Züge (bei gleichzeitiger Lock-Anforderung ist jener Konkurrent im Vorteil, der den als (noch) frei angetroffenen Lock als letzter überschreibt). Die restliche Steuerungs-Logik ist rein Situations-gesteuert. D.h. der Zeitpunkt der Ausfahrbereitschaft eines jeden Zuges und die zu diesem Zeitpunkt vorhandenen freien Gleise im Zielbahnhof sowie die momentanen Belegungen der Strecken zwischen den Bahnhöfen bestimmen, welcher Zug wann in welches Zielgleis ausfahren darf.

Die Ausgangssituation vor dem Anschalten der Anlage mittels des äußeren Hauptschalters in der rechten Anlagen-Ecke ist entweder eine leere Anlage, oder die bereits vorhandenen Züge stehen alle in den Bahnhöfen. Wird der Anlagenbetrieb eingeschaltet, setzen sich bei der bestückten Anlage all jene Züge in Bewegung, für die im nächsten Bahnhof ein freies Gleis vorgefunden wurde. Züge, die dasselbe Streckenstück in jeweils entgegengesetzter Richtung benutzen wollen, synchronisieren sich hierbei selbst.

Für die Einfahrt der Züge aus dem "Fiddle-Yard" wird dieser jeweils an eines der Stumpfgleise angeschlossen. Beim Bewegen der Fiddle-Yard-Bodenplatte mit der Maus muss die Animation des Modellbahn-Studios eingeschaltet sein, damit sich die Gleise und die darauf befindlichen Fahrzeuge automatisch mit bewegen. Um einen Zug einfahren zu lassen, wird diesem auf dem Fiddle-Yard-Gleis von Hand eine Einfahrgeschwindigkeit (Richtwert 300) zugeordnet. Die Einfahrt selbst und die Synchronisation mit anderen Zügen, die das vom Stumpfgleis zu erreichende Bahnhofsgleis ansteuern, erfolgt dann automatisch (ist die Anlage schon ziemlich gefüllt, kann die tatsächliche Einfahrt möglicherweise etwas dauern). Die beiden Stumpfgleise führen jeweils in entgegengesetzter Richtung auf die Anlage.

Soll der Anlagenbetrieb durch das Schließen des Hauptschalters beendet werden, fahren alle unterwegs befindlichen Züge noch in die Bahnhöfe ein. In den Bahnhöfen stehende Züge, die bereits ein Zielgleis im nächsten Bahnhof zugeordnet bekommen haben, aber wegen der Belegung der Strecke durch einen Gegenzug noch nicht ausfahren konnten, fahren ebenfalls noch los, um das zugeteilte Zielgleis zu erreichen. Erst wenn alle Züge endgültig still stehen, ist der Anlagenbetrieb definitiv beendet.

Mit dem inneren Durchfahrschalter in der rechten Anlagenecke kann festgelegt werden, ob die Züge – wenn möglich – in den Bahnhöfen durchfahren oder einen geplanten Halt einlegen sollen. Die Schalterstellung ist jeweils für alle Züge gültig und kann zu jedem Zeitpunkt umgeschaltet werden.

... Fortsetzung folgt ...