Startseite
Projekt-Wiki
Projekt
Next Gen.
YouTube
Java API-Doc
C++ API-Doc
Steffen A. Mork
MORKNet-Blog
Impressum
Datenschutz
Ein lang geplanter Umstand war der Einbau und Implementierung eines
Bahnübergangs. Ein komplettes Set von vier Andreaskreuzen samt
Blinkelektronik wurde daher im
Lokschuppen Berlinski
erworben.
Zuerst musste die Firmware der ATmega32 erweitert werden, da es dafür bisher kein Schaltkommando gab. Ferner musste die Ansteuerung dieses Schaltkommandos in die Steuerungssoftware integriert werden. Dazu musste eine weitere Statemaschine entwickelt werden. Entgegen anderen Bauteilen einer Fahrstraße wie Signale oder Weichen, sind diese einer Fahrstraße eindeutig zugeordnet. Hier wird aber ein zweigleisiger Bahnübergang geplant, sodass zwei Fahrstraßen dem einen Bauteil Bahnübergang zugeordnet sein können.
Nach erfolgreichem Testen konnten die Andreaskreuze in der Anlage verbaut werden.
Heute wurde das alte Dell-Notebook durch einen Raspberry Pi Compute Module 5
ersetzt mit 15-Zoll Touch-Display ersetzt. Damit entfällt die Notwendigkeit
einer Tastatur und nur eine Maus reicht. Die Software ist auf einem
NVME-Speicher installiert und somit fährt der Steuerrechner in nur 14
Sekunden in die Steuerungsapplikation hinein. Der Raspberry Pi wurde mit
Ubuntu installiert. Die Software kann bequem über Netzwerk aktualisiert
werden, da die Steuerungs-Software als Debian-Paket vorliegt.
Über eine längere Zeit hinweg gab es Probleme mit Weiche 9, die
Umschaltprobleme zeigte. Das äußerte sich dahingehend, dass die Züge von der
Zunge voraus in den falschen, nicht geplanten Abzweig fuhren.
Glücklicherweise kann man die Antriebe von den Weichen abklipsen und so hat ein Test mit einer Austauschweiche ergeben, dass es nicht am Antrieb liegt. Ursache scheint eine schwache Federung innerhalb der Weichenzunge zu sein. Da der Fehler in der Weiche liegt und nicht im Antrieb, konnte der Antrieb während des Umbaus abgeklipst und angeschlossen am Gleisbett verweilen, wodurch der Ent- und Verkabelungsaufwand vermieden werden konnte. Seit Einbau der Austauschweiche ist kein Vorfall mehr aufgetreten.
Seit geraumer Zeit wird die Steuerungs-Software der Modelleisenbahn neu
implementiert. Die Anmutung ist am originalen ESTW orientiert. Statt
Eclipse/Java wird C++/Qt verwendet. Sogar der Biermodus ist inzwischen
implementiert und funktioniert einwandfrei. Ein weiterer Vorteil ist die
direkte Ansteuerung des CAN-Bus über USB-Adapter. Dadurch entfällt die
Tunnelung durch die serielle Schnittstelle. Das Modell wird direkt geladen,
sodass kein Plugin mehr generiert und kompiliert werden muss. Ein Edit-Modus
ermöglicht die Anpassung des Gleisbild-Layouts.
Die neue Steuerung ist auf Anwendungsebene komplett neu in C++17 entwickelt worden. Die Hardware wird durch Qt abstrahiert. Software-technisch werden konsequent Statecharts unter Benutzung der Yakindu Statechart Tools benutzt. Es werden Unit Tests, SCT-Units sowie Code Coverage genutzt, um die Software-Qualität auf höchstem Niveau zu halten.
Die Software auf den ATmega32 Mikrocontrollern bleibt unangetastet.
Das Projekt ist auf github unter der MIT-Lizenz gehostet. Die Software ist fertig paketiert über ein APT-Repository für Ubuntu oder Debian verfügbar. Die unterstützte Architektur ist x86_64 und arm64. Eine Anleitung zur Einrichtung der Installation findet sich auf den github Projektseiten.
Heute wurden die provisorischen Überbrückungsklammern der denkenden
Fleischmann-Weichen durch originale Klammern ersetzt. Die kupfernen manuell
zurechgebogenen Klammern waren häufig rausgesprungen und haben für
Wackelkontakte gesorgt. Hintergrund war, dass in der ersten Anlage die Funktion
der denkenden Weichen genutzt wurde. Das ist auf Grund der CAN-Bus basierten
Steuerung nicht mehr notwendig.
Heute ist ein Standardwerk der Deutschen Bahn eingetroffen, das den Regelbetrieb
eines elektronischen Stellwerks (ESTW) erklärt. Neben der technischen
Beschreibung wie ein ESTW funktioniert, werden vor Allem Bedienung und die
Benutzeroberfläche erklärt. Das kann dazu genutzt werden, eine neue
Stellwerks-Software zu entwickeln.
Seit den ersten Entwicklungen mit dem CAN-Bus und der Eisenbahnsteuerungen hat
sich im Embedded-Markt sehr viel getan. Insofern ist es nur logisch, sich mal
günstige CAN-Busadapter anzusehen, ob sie mit der Eisenbahnsteuerung
zusammenarbeiten könnten. Nach einem kurzen Test hat sich herausgestellt, dass
der Standard-Linux-Treiber hervorragend mit dem CAN-Bus der Modelleisenbahn
kommunizieren kann. Erfreulicherweise Ist der Anschluss über USB sehr einfach.
An diesem Wochenende haben die Wittener
Eisenbahntage stattgefunden. Veranstalter waren die
Eisenbahnfreunde Witten e.V.
Neben einigen Modellbahnanlagen konnte man auch das Stellwerk des
Wittener Hauptbahnhofs besichtigen. Eine Führerstandsmitfahrt auf einer in ursprünglicher
Lackierung wieder hergerichteten V60 rundeten das Bild eines gemütlichen und
freundlichen Eisenbahnvereins ab. Interessanterweise hat der Verein die 78
510 als Wappenlok auserkoren - eine gute Wahl.
Heute wurde ein Provisorium abgeschafft: Der Tisch mit dem Stellwerksrechner
wurde durch eine stabile Schublade ersetzt. Diese ist niedrig genug, um nicht die Sicht
auf die Anlage zu verdecken. Außerdem kann so bequem die ganze Steuerung bei
Bedarf versteckt werden. Dadurch gewinnt der Raum deutlich an Platz.
Seit letztem Donnerstag entwickeln mein Kollege Marc Habiger und ich die
Stellwerkssteuerung für die Modellbahn.
Heute haben wir den
CAN-Protokollumfang in den Griff bekommen. Dazu zählt natürlich der
Austausch von CAN-Frames, sowie die vernünftige Filterung der Frames
am Controller. Dadurch können gleich die unwichtigen Pakete rausgefiltert
werden, ohne dass der Mikrocontroller mit Rechenzeit belastet wird. Auch das
Versenden von Standard Data Frames sowie Extended Data Frames funktioniert
problemlos.
Derzeit arbeiten wir an der Kopplung der Kommunikation mit dem PC. Diese soll über die schon altbackene RS232-Schnittstelle geschehen. Diese hat aber bis heute jeder PC und somit muss keine neue Steckkarte oder andere Erweiterung für den PC gekauft werden. Ein CAN-RS232-Gateway setzt die CAN-Frames vom PC über RS232-Schnittstelle auf den CAN-Bus um.
Ich werde häufig gefragt, warum das Ganze über CAN-Bus läuft. Schließlich gibt es genug ausgereifte Digitalmodule für die Modellbahn. Es ist so, dass der CAN-Bus viele gute Eigenschaften hat. Der CAN-Bus wurde von Bosch für den Automotive-Umfeld entwickelt. Ziel war es, durch Einsparung von Verkabelung Aufwand und Gewicht einzusparen. Inzwischen sind 20 Jahre vergangen und der CAN-Bus steckt in nahezu jedem Neuwagen. Die mechanische Belastung auch im Auto sind teilweise enorm, so dass mit dem CAN-Bus ein robuster 2-Draht-Bus (mit der Karosserie als Masse) geschaffen wurde. Bei der Modellbahn sind einige dieser Aspekte auch von Bedeutung. Ziel ist es, Verkabelung einzusparen. Nicht aus Gewichtsgründen, sondern aus rein ergonomischen Gründen, da die Drähte über Kopf montiert werden müssen. Auch die Robustheit spielt dabei eine Rolle. Es gibt auch auf einer Modellbahn viele Störeinflüsse gerade durch Antriebsspulen.
Zum guten Schluss zählt doch eins: Man hat etwas eigenes entwickelt um es zu verstehen. Obendrein ist es auch erheblich kostengünstiger, als die käuflich zu erwerbenden Digitalmodule. Letztlich ist es einfach nur cool, wenn man der Modellbahnanlage ein Firmware-Update spendiert ;-)