Bahnübergangsschaltung

Eben ins Unreine gesponnen: wie man mit zwei Momentkontakten (Schaltgleisen, Lichtschranken, was auch immer) ein Bahnübergangs-Blinksignal schalten können müßte. Formuliert in Pseudocode, aber das sollte sich doch heutzutage recht einfach in Hardware frickeln lassen …

Wir brauchen: die beiden Momentkontakte (im Code Funktionen Links() und Rechts() mit den Rückgabewerten TRUE oder FALSE) sowie die Spannung zur Blinkschaltung hin (im Code eine Variable Blink mit den möglichen Werten ON und OFF). Edit: Außerdem gibts noch eine Timeout-Funktion, die nach einer gewissen Zeit ohne Auslösung irgendeines Kontaktes TRUE wird. Der Rest incl. der sleep-Funktion sollte selbsterklärend sein.

while TRUE {
  if Links() then {
    Blink := ON;
    while not Rechts() do {
      if Timeout() then break;
    }
    while Rechts() do sleep(5);
  } elseif Rechts() then {
    Blink := ON;
    while not Links() do {
      if Timeout() then break;
    }
    while Links() do sleep(5);
  }
  Blink := OFF;
}

Ergebnis: Egal aus welcher Richtung der Zug kommt, schaltet der Kontakt vor dem Bahnübergang das Blinklicht ein — und ausgeschaltet wird es vom anderen Kontakt, 5 Sekunden nachdem der Zug ihn das letzte Mal ausgelöst hat. Und das ist auch der Trick an der Sache: dadurch klappt’s unabhängig von der Länge des Zuges.

Wenn man den Ausschaltkontakt näher am Bahnübergang haben will als den Einschalter, genügt es, die Aufrufe von Rechts() und Links() in den inneren While-Schleifen durch die für die entsprechenden Ausschalter zu ersetzen.

Überseh ich was, oder ist das wirklich so einfach? Wenn ersteres, dann korrigiert mich bitte.

Edit: Schon passiert: der Timeout ist nachgerüstet. Grund: ein auf dem Bahnübergang stehenbleibender Zug wird beim Weiterfahren das Blinksignal in die andere Richtung einschalten, wenn der Ausschaltkontakt wieder feuert und als Einschaltsignal erkannt wird. Das passiert zwar jetzt auch noch und ist ohne fahrtrichtungsabhängige Kontakte auch nicht zu vermeiden, aber nach dem Timeout fällt die Schaltung von selber wieder auf den Grundzustand zurück. Daß bei auf dem Bahnübergang stehenbleibendem Zug das Blinklicht ausgeht, wenn der Ausschaltkontakt dabei offen bleibt (was einige Bauarten eher machen als andere), ist ebenfalls nicht zu vermeiden, wenn man nicht Achsen zählen will. Ein Trost bleibt: beim Vorbild passiert das beides auch!

Und falls das ne Standardlösung ist und ich Euch jetzt alle tödlich gelangweilt habe, bitte ich diesen Beitrag wohlwollend zu ignorieren.  ;-)

Ein Kommentar zu “Bahnübergangsschaltung
  1. Michael Müller sagt:

    Moin Ermel

    mit nem Gleisbesetzmelder wärs noch einfacher.

    wenn besetzt blinke
    wenn wieder unbesetzt noch 5 sec.
    sonst aus

    Blinkt auch dann, wenn der Zug auf dem Bahnübergang stehen bleibt.

    Man nehme:
    Stromfühler für die Gleisbesetztmeldung und dann klassisch den Feld, Wald und Wiesentimer NE 555.
    1 x fürs blinken und
    1 x für die 5 s, der auf die fallende Flanke beim Ausschalten loslegt
    und den Erstgenanten wieder freigibt.

    Nur so, falls es noch aktuell ist und viel Spaß beim Löten

    Viele Grüße
    Michael

    PS: An den LED-Treiber kannst Du noch ein kleines C braten, um das Verlöschen der realen Lampen zu simulieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*