24. Dezember 2021 – Blockvorbereitungen

Der Bahnhof Grünberg soll natürlich auch in der Lage sein, am FREMO-Streckenblock teilzunehmen. Der bekannteste Weg zur Anbindung an den Streckenblock ist dabei die Blockkiste mit ihrer analogen Bahnhofs-Schnittstelle in Relaistechnik.

Da wir unseren Bahnhof vollständig mit Loconet steuern, haben wir uns aber dafür entschieden, die LN2Block-Implementierung von DKap einzusetzen. Es handelt sich dabei um eine Zusatzplatine für einen Arduino Nano, die sich um die Anbindung der elektronischen Block-Schnittstelle (9-polige Buchse) an das Loconet kümmert. Zusätzlich hat die Platine noch einen Anschluss für einen Gleiskontakt, ein Schlüsselinterface und ein kleines Display zur Zustandsüberwachung. Die Umsetzung des Kommunikationsprotokolls für die elektronische Block-Schnittstelle und die Kommunikation im Loconet erfolgt durch ein Programm auf dem Arduino.

Für den Bahnhof Grünberg haben wir für jede Richtung eine solche LN2Block-Platine vorgesehen, auch für den Abzweig nach Lollar, bei dem das im Original nicht der Fall war. Man weiß ja nie, welche Strecken im FREMO-Betrieb da angeschlossen werden.

Dreimal LN2Block für die drei Strecken in Grünberg

Die LN2Block-Platine stellt keine Bedienoberfläche zur Verfügung. Diese muss extern bereitgestellt werden, wie zum Beispiel durch die Integration in ein Spurplanstellwerk. Für unseren Bahnhof Grünberg mit seinem mechanischen Stellwerk soll Felderblock zum Einsatz kommen. In diesem Bereich gibt es aktuell gerade einige sehr interessante Implementierungsansätze von möglichst realistischen Varianten mit feinen Hebeln und durch Servos beweglichen Feldern bis zu einfacheren Varianten mit Tastern und LEDs. Um einen robusten und einfachen Aufbau realisieren zu können, der hoffentlich auch den rauen FREMO-Betrieb überlebt, haben wir uns für letztere Variante entschieden.

Im folgenden Bild ist ein primitiver Prototyp für die Bedienoberfläche zu sehen, mit dem erstmal nur die Funktion der Block-Anbindung des Bahnhofs getestet werden soll. Parallel dazu laufen Arbeiten, alle LEDs, Taster und das Loconet-Interface auf einer Platine zu integrieren. Das reduziert den Verkabelungsaufwand deutlich und sorgt dafür, dass sich alle Elemente immer gleich an der richtigen Position für den Einbau in ein Gehäuse befinden. Als Erweiterung wird es dann noch eine zweite Platine mit Fahrstraßenhebeln geben, so dass diese Platinen nicht nur für den Streckenblock, sondern auch für den als nächste Ausbaustufe zu realisierenden Bahnhofsblock verwendet werden können.

Bedienoberfläche Felderblock
Temporäre Realisierung mit IO-Dekoder

Mit diesen Komponenten kann nun schon ein erster Test des Streckenblocks vorgenommen werden. Im folgenden Bild sieht man in der linken Hälfte die Bedienoberfläche des Felderblocks und die LN2Block-Platine für den Bahnhof Grünberg. Rechts ist eine Blockkiste mit einem Bahnhofssimulator zu sehen, die das Gegenstück des Streckenblocks bildet.

Testaufbau für den Streckenblock

Für die Integration in das Stellwerk muss dieses nun als Nächstes die passenden Botschaften zur Stellung der Signale über Loconet an die LN2Block-Platine schicken und umgekehrt auf die Botschaften der Platine reagieren, um die Bedienung der Ausfahrtsignale zu sperren oder freizugeben. Dies ist nun der nächste Schritt.

01. November 2021 – Testtreffen für den Bahnhof Grünberg in Hochdorf-Assenheim

Vor dem ersten Betriebseinsatz des Bahnhofs Grünberg war es unser Ziel, den Bahnhof einmal mit angeschlossenen Schattenbahnhöfen aufzubauen, um ihn dort unter Betriebsbedingungen testen zu können. Die Hoffnung war, dabei Probleme und Kinderkrankheiten entdecken zu können, um diese vor einem „echten“ Einsatz ausmerzen zu können. Auch sollten dabei erste Erfahrungen zur Benutzung des Bahnhofs und zu den dafür benötigten Zeiten gesammelt werden. Aufgrund der Größe des Bahnhofs und der benötigten Schattenbahnhöfe schied ein privater Aufbau aus. Netterweise konnten die Freunde beim FREMO-Treffen in Hochdorf-Assenheim noch etwas Platz am Rand der Halle frei lassen, in dem wir unser Mini-Arrangement aufbauen konnten.

Überblick über das Arrangement in Hochdorf-Assenheim

So konnten wir das Treffen nutzen, um ausführlichen Testbetrieb zu machen. Während die Stellwerkssoftware einwandfrei funktioniert hat und nur noch Optimierungen am Verschlussplan vorgenommen werden müssen, macht die Elektronik etwas mehr Probleme. Es gab es immer wieder Weichen, die ohne Zutun des Stellwerkes umgestellt wurden. Hier sind wir noch auf der Fehlersuche. Trotzdem hat der Betrieb mit den provisorischen Stellpulten sehr viel Spaß gemacht. Der in der Halle vorhandene Bartresen erwies sich dabei als ideale Abstellfläche;-)

Provisorische Stellpulte in Aktion

Auch sonst wurde fleißig an Grünberg weitergearbeitet. So wurden die ersten Gleissperrsignale eingesetzt, die letzten Schienen eingebaut und natürlich kräftig Betrieb gemacht. Das Treffen war auch ein erster Test für neue Streckenmodule eines weiteren FREMO-Freundes. Die dort vorhandene Straße wurde natürlich auch ausgiebig getestet!

Neue Streckenmodule mit Straße

Alles in Allem war es ein sehr schönes, produktives und manchmal auch lustiges Treffen, das Grünberg einen großen Schritt weiter zum ersten Treffeneinsatz gebracht hat. Anbei noch ein paar Eindrücke von unseren Arbeiten:

27. Oktober 2021 – Loconet-Anbindung an den Rechner

Zur Steuerung des Bahnhofs Grünberg kommen ausschließlich Komponenten mit LocoNet-Interface zum Einsatz. Dies vereinfacht die Verkabelung und Entwicklung des Stellwerks doch deutlich, da einfach alle Teile direkt miteinander kommunizieren können.

Für die Entwicklung des Stellwerks ist es sehr hilfreich, wenn man nicht immer darauf angewiesen ist, dass alle Module des Bahnhofs zur Verfügung stehen. Schließlich können sie immer nur an einem Ort stehen, was bedeuten würde, dass auch immer nur eine Person daran arbeiten kann, wenn nicht gerade alle zu einem Basteltreffen zusammenkommen.

Wir haben uns deswegen mit Rocrail (https://wiki.rocrail.net/doku.php?id=german) ein Abbild des Bahnhofs und des Stellpults aufgebaut. Der Rechner wird dann mit einem Loconet-Interface mit den anderen Komponenten verbunden. So können für das Stellwerk eventuell nicht vorhandene Stellpulte oder ein fehlender Bahnhof simuliert werden.

Bahnhofssimulator mit Rocrail

Für die Anbindung des Loconet an den Rechner könnte eines der vielen LN-Buffer-Interfaces verwendet werden. Diese haben jedoch üblicherweise den Nachteil, dass sie nur exklusiv von einem einzigen Programm genutzt werden können. Wenn also Rocrail damit angebunden ist, ist es zum Beispiel nicht möglich, parallel dazu die Einstellungen der Decoder mit JMRI zu verändern. Hier bietet sich als Lösung ein Loc0net2Ethernet-Buffer an.

LoconetEther-Buffer

Dieser setzt die Pakete des Loconet in Ethernet-Pakete um, die in einem ganz normalen Computernetzwerk übertragen werden. Auf diese Pakete können dann mehrere Programme, die mit dem Datenformat umgehen können, zugreifen oder selbst Daten ins Loconet senden. Damit ist es möglich, mehrere Programme auf dem PC ans Loconet zu koppeln.

Die Hardware für den Buffer besteht aus drei Komponenten (im Bild unten von links nach rechts):

  • Einem Arduino, der die Umsetzung der Daten vom Loconet zum Ethernet und zurück vornimmt
  • Einem Ethernet-Shield, um den Arduino mit dem Ethernet zu verbinden
  • Einem Loconet-Shield, für die Anbindung ans Loconet
  • Ein paar zusätzlichen „stackable Headers“, um den nötigen Abstand über dem Ethernet-Shield zu bekommen
Komponenten für den LoconetEther-Buffer

Da bei diesem Aufbau die Schaltungen völlig ungeschützt sind, und auf einem üblichen Basteltisch alle möglichen metallischen Gegenstände rumliegen, die nur darauf warten, einen Kurzschluss zu machen, musste noch ein Gehäuse her.

Ein fertiges Gehäuse in passender Abmessung gab es keines, also war Selbstbau angesagt. Wenn schon ein 3D-Drucker im Haus vorhanden ist, bietet der sich natürlich dafür an, ein passendes Gehäuse aus Kunststoff damit zu drucken.

Praktischerweise gibt es da inzwischen eine überarbeitete Version des Ultimate Box Maker (https://www.thingiverse.com/thing:2938921), einem Script für die freie 3D-Modellierungssoftware OpenSCAD (https://openscad.org), mit dem durch Anpassen der Parameter maßgefertigte Gehäuse einschließlich Frontplatten erstellt werden können. Die generierten Dateien können dann mit einem 3D-Drucker ausgedruckt, ggf. koloriert und zusammengebaut werden. Das Ergebnis sieht dann so aus:

LoconetEther-Buffer im gedruckten Gehäuse

18. Oktober 2021 – Mechanisches Stellwerk mit Elektronengehirn

Im Bahnhof Grünberg sollen Nachbildungen von mechanischen Stellwerken zum Einsatz kommen. Wichtig sind hierbei die Fahrstraßen mit den entsprechenden Sperren, da diese im Betrieb den Fahrdienstleiter deutlich entlasten.
Beim Vorbild kommen hier mechanische und elektromechanische Riegel zum Einsatz. Deren originalgetreue Nachbildung wäre sehr reizvoll, allerdings gleichzeitig aber auch sehr aufwändig. Außerdem steht zu befürchten, dass eine so feine Mechanik den rauen Betrieb auf einem FREMO-Treffen nicht lange überleben würde.

Wir haben uns deswegen dazu entschlossen, die Abhängigkeiten der verschiedenen Stellelemente elektronisch abzubilden. Dazu werden die Signale aller Stellelemente nur an eine zentrale Steuerung weitergegeben. Dieses „Hirn“ entscheidet dann, ob der Stellbefehl ausgeführt werden kann und leitet ihn ggf. an die Decoder im Bahnhof weiter. Ist die Aktion im aktuellen Zustand des Stellwerkes nicht erlaubt, so wird der Stellbefehl gar nicht erst generiert und der Benutzer mit einer Fehlermeldung darauf hingewiesen.
Die Stellhebel sind dabei nicht mechanisch verriegelt. Um dem Benutzer dennoch mitteilen zu können, welche Hebel nicht bedient werden dürfen, gibt es an jedem Stellelement eine rote LED. Wenn diese aufleuchtet, darf das Stellelement nicht bedient werden.

Bisher basiert die Logik des Stellwerks auf einem PC-Programm (Rocrail). Es hat sich jedoch schnell gezeigt, dass die Wartung des Stellpults, das Korrigieren und Hinzufügen von neuen Funktionen damit extrem aufwändig wird. So würde das Hinzufügen des Strecken – später des Bahnhofsblocks – einen weitgehenden Umbau erfordern. Dabei besteht immer die Gefahr, neue Fehler einzubauen, da die Zusammenhänge der Stelllogik auf verschiedene Teile des Programms verteilt sind.
Weiterhin erfordert die bisherige Lösung den Einsatz eines Kleincomputers, wie zum Beispiel einen Raspberry Pi, mit aller Komplexität eines darauf laufenden Betriebssystems.

Wir haben deswegen dank eines weiteren FREMO-Kollegen damit begonnen, die Steuerlogik als eigenständiges Programm zu entwickeln, das auf einem Arduino läuft. Da alle Komponenten des Bahnhofs und der Stellpulte per Loconet angesteuert werden, benötigt der Arduino nur ein LN-Shield als weitere Komponente. Zusätzlich haben wir noch ein Display hinzugefügt, um im Falle einer Fehlbedienung mehr Hinweise als nur einen Summer ausgeben zu können. Das Display ist allerdings optional, einem echten Stellwerksprofi passieren sowieso auch keine Fehler:-)

Auf dem Holzbrett im Vordergrund ist die Steuerung zu sehen. Die beiden linken Platinen dienen der Stromversorgung und Terminierung des Loconet, rechts oben sitzt der Arduino mit dem LN-Shield und unten rechts ist das Display zu sehen.

Aktuell ist auf diese Weise die Funktion der beiden Stellwerke Gf und Go realisiert. Zur Zeit existiert noch keine Anbindung an den Streckenblock oder die Verbindung der beiden Stellwerke untereinander mit einem Bahnhofsblock. Diese sollen erst in späteren Stufen hinzugefügt werden.

Als nächstes steht erstmal der Test der aktuellen Software mit dem Bahnhof beim nächsten FREMO-Treffen in Hochdorf-Assenheim an. Wenn die Steuerung dort einwandfrei funktioniert soll als nächster Schritt die Anbindung an den Streckenblock erfolgen, um die Kommunikation mit benachbarten Bahnhöfen zu ermöglichen.