Zum Aus­pro­bie­ren und Tes­ten von Rail­Com De­tek­toren, RFID Le­sern, S88-Scan­nern und De­co­dern aller Art habe ich mir vor ei­ni­gen Jahren einen so­genann­ten Ho­sen­trä­ger ge­baut. Der Ho­sen­trä­ger beinhaltet 4 Stumpf­glei­se in einer „H“ Anordnung, die mit 4 Wei­chen und einer Kreu­zung so ver­bun­­den sind, dass ein Fahrzeug von jedem Stumpf­gleis immer beide ge­gen­über­­lie­gen­den Gleise er­reichen kann. Das Ganze ist auf einem Sei­ten­­teil eines IVAR Regals auf­ge­baut und deswegen gut transportabel.

Gleisbild des Hosenträgers aus dem Programm Rocrail

Fahrzeug-ID über RFID und S88 einlesen

Zunächst wurden die Fahrzeuge mit 3 RFID-S88-Light Lesern über ei­nen selbst­ge­bau­ten S88 Scanner auf der Basis Ar­dui­no Uno er­kannt. Für jeden RFID Leser wurden 16 Bit (ein S88 Modul) ein­ge­le­sen und im Rocrail Programm mittels Script wie­der zu einer bi­nä­ren 14-Bit Fahr­zeug­adresse kombiniert. Der Scan­ner hat neben RFID auch die Standard Be­legtmeldungen und Gleis­kon­takte ver­ar­beitet und über USB unter Ver­wen­dung des HSI Pro­tokolls an den PC weitergegeben.


RFID über Tams RC-Link

Um auf das (langsame und dadurch störanfällige) Script verzichten zu können, war der nächste Schritt die Ver­wendung des Tams RC-Talk Protokolls. Eigentlich ist das Protokoll dazu gedacht RailCom In­for­ma­­tion, also Deco­der­adres­se und Aufgleisrichtung der Lok an den PC wei­ter­zu­ge­ben, da aber meine RFID-S88-Light eben auch diese Informationen liefern, habe ich das Protokoll für RFID ver­wendet. RFID und Standard S88 muss­­ten nun ge­trennt werden. Es gab nun also 2 s88 Scanner, einen mit HSI Ausgabe für die Stan­dard-Rück­melder und einen mit RC-Talk Ausgabe für RFID. Beide Scanner haben über USB mit dem PC kommuniziert. Ent­spre­chend wurden im Modellbahn­steuer­programm 2 „Zentralen“, eine vom Typ „RC-Link“ und eine vom Typ „HSI88“ angelegt.


RFID und RailCom über RC-Talk

Der nächste Schritt war die direkte Kommunikation im RailCom For­mat mit dem Tams RC-Link Baustein. Meine RFID Leser wur­den auf der Basis eines Arduino Nanos neu gebaut und mit einer RS485 Schnitt­stelle versehen. Dadurch konnte ich meine RFID Leser ge­nau­so wie und in Verbund mit Tams RCD-1 RailCom-Detektoren an den RC-Link anschlie­ßen. Durch die Verwendung des gleichen Ge­häu­ses, gleiche Klem­men­be­zeichnung und Adres­sie­rungs­me­cha­nis­mus konnte ich 4 RFID Leser und 4 RailCom Detek­to­ren RCD1 an einem gemeinsamen RS485 Bus betreiben und die Lok- und Rich­tungs­daten in den PC einlesen.
Mittlerweile hatte die Menge an Versorgungskabeln und USB Da­ten­­lei­tun­gen stark zuge­nom­men und machte einen Transport und die schnelle Wie­der-In­be­triebnahme des Test­mo­duls immer schwieriger. Da waren ja außer den Rückmeldebausteinen auch noch die DCC Zentrale und der No­te­book anzu­schließen. Weil der Notebook mit nur 2 USB Ports ausge­stat­tet ist, musste er mit einem USB-Hub erweitert werden.


Dann kam WLAN

Medio 2018 sollten die diversen USB Datenverbindungen zum PC durch eine WLAN Verbindung ersetzt werden. Die Offenlegung des Roco Z21 LAN Protokolls legte die Verwendung für meinen Zweck nahe. Im PC musste dann „nur“ eine (zusätzliche) Z21 Schnittstelle für die Mo­dell­bahnsoftware an­ge­legt werden. Das war zu­mindest die Idee. Begonnen wurde mit dem Bau eines RFID Le­sers auf der Basis eines Lolin NodeMCU V3, einem verbreiteten ESP8266 Entwicklungsboard mit in­te­grier­tem WLAN.


Bidirektionaler Datenverkehr

Ich stellte bald fest, dass nicht nur Informationen vom RFID Leser zum PC fließen, son­dern der PC über das Z21 Interface auch In­for­ma­tio­nen sen­det, bzw. Anfragen an die nun vir­tuelle Z21 richtet. Diese Anfragen al­ler­dings müssen vom WLAN Modul auch beant­wortet werden, damit der PC nicht auf­gibt, weil da keine Z21 Zen­trale reagiert. Anfangs wurde die Be­antwortung der Fragen nach Geräte­zustand, Seriennummer und Firm­wa­re-Stand der „Z21“ in den Code des RFID Lesers integriert, bis dann der 2. und 3. Leser und der S88 Scanner auf WLAN umgebaut wur­den. Es soll­te na­tür­lich nur ein einziges Sensormodul des Ho­sen­trägers diese An­fra­gen be­ant­wor­ten. Auch wurde es zu aufwändig, nun 4 vir­tuelle Z21 Zen­tralen in der Software anzu­legen, für jedes Sensor­modul eine. Nach we­ni­gen Tagen wurde deswegen ebenfalls auf der Basis des ESP8266 Ent­wick­lungs­boards ein „Gateway“ ent­wickelt, das alle allgemeinen Auf­ga­ben einer virtuellen Z21 über­nimmt. So meldet das Gateway neben Serien­nummer 1234567 und Firmware-Stand nun sogar eine virtuelle „Tempe­ra­tur“ und eine virtuelle „Gleisspannung“.


Gateway

Ein Gateway (auf Deutsch Tor) hat zwei Seiten. Auf der Seite der Sen­­sor­­mo­­du­le bietet es ein WLAN „SENSORNETxx“, in das sich die Sen­sorknoten einloggen. Alle hier ein­tref­fen­den Meldungen, Be­legt­mel­dun­gen, Lokomotiv-Codes, usw. werden vom Gateway mit einem Broad­cast auf die andere Seite zu den Client-PCs weiter­ge­leitet. So können mehrere Clients die Sen­sor­in­for­ma­tio­nen gleich­zei­tig verarbeiten.
Die Anfragen, die nicht einem spezifischen Sensor (oder Aktor) be­treffen, werden vom Gate­way abgefangen und die Antwort an den anfragenden Client (PC) zurückgeschickt. Meldun­gen und An­fragen an Sensorknoten werden vom Gateway in das „Sensor­netz“ weiter­ge­ge­ben und werden dort vom Sensor bearbeitet oder beantwortet.

Testaufbau auf einem Steckbrett
Aufbau eines doppelten RFID Lesers auf einem Steckbrett

Nach diesem ersten Umbau auf WLAN Sensoren (S88, 2 x RFID für Lok-Code und Aufgleis­richtung, 1 x RFID für 2 x Lok-Code) blieben nur noch die USB Kabel für die 5V Versorgung der ESP Ent­wick­lungs­boards. Der PC ist vom Kabelsalat völlig befreit und kom­mu­ni­ziert zu 100% nur noch über WLAN. Um auch die Versorgungs­kabel am Hosenträger zu eliminieren, habe ich einen Step-Down Wandler eingebaut, der die digitale Gleis­span­nung in eine 5 V Gleich­­spannung transformiert und damit alle Ent­wick­lungs­boards versorgt.

Nachbauvorschlag für Sensormodul und Gateway

Für eine Modellbahnausstellung im Lokschuppen Hochdahl (EHEH) sollte das Thema „Rückmelder auf der Modellbahn“ vertieft werden. Dabei kamen u.a. Themen wie S88, Rail­Com, RM Bus und CAN Bus auf den Tisch. Auch der Unterschied zwischen einer Punkt­meldung und einer Block-Belegtmeldung wurde gezeigt. Schwer­punkt war jedoch der auto­matische Block­betrieb auf einem sogenannten „Hundeknochen“. Hier wurde auf der einen Seite des Knochens der Einsatz von Roco / Fleisch­mann Rail­Com Rück­mel­dern 10808 im K-Gleis vorgeführt und auf der anderen Seite im TRIX C-Gleis die drahtlose Besetzt­mel­dung über Stromerfassung.
Die SMD-Stromerfassungsmodule „RMEM2xI“ für 2 Rück­mel­de­ka­näle wa­ren in der Bettung des Trix C-Gleises eingebaut und somit für das Pu­bli­kum nicht sichtbar. Ein Teil der C-Gleise wurde sogar auf einen normalen Tisch verlegt. Der halbe Hundeknochen mit den C-Gleisen wies keinerlei sichtbare Ver­drah­tung auf, weder auf noch unter den Tischen und Modul­plat­ten. Eine im Gleis versteckte Ringleitung brachte die Gleisspannung zu den Rück­mel­de­mo­du­len und Decodern.
Eine (richtige) Z21 versorgte die Gleisspannung für die Loks und die Wei­chen. Die zuge­hö­ri­gen Weichendecoder bezogen die DCC Information und die Energie aus dem Gleis und wa­ren ebenfalls in der Bettung versteckt. Es wurden 4 WLAN-Rückmeldebausteine verbaut, die mit insgesamt 8 Mel­dern 4 Blocks überwachten (4 Bremsabschnitte und 4 Halte­ab­schnit­te).

Aufbau auf einem Steckbrett eines hochohmigen Massesensors mit 2 Eingängen ähnlich S88

Abseits des Hundeknochens wurde gezeigt, wie mit einfachsten Mit­teln ein WLAN-Rück­mel­der aufgebaut wird. Der eigentliche Sen­­­sor war ein Märklin Schaltgleis. Das ist ein Schalt­he­bel, der vom Schleifer eines Fahr­zeuges nach links oder rechts ausgelenkt wird und dabei einen von zwei Mikroschaltern betätigt. Das Schaltgleis übermittelt also die Betätigung des Hebels und die Fahrtrichtung des auslösenden Fahrzeugs. Die In­for­ma­tion gelangt vom Schalt­gleis über Draht in das ESP Entwicklungsboard, von dort über WLAN zum Gateway und von dort in den PC. Der einfachste WLAN Rückmelder besteht aus einem Wemos D1 Mini WLAN Ent­wick­lungs­board und braucht an externen Komponenten lediglich 2 10 kOhm Widerstände. Er kann über einen USB Powerpack, ein USB Ladegerät oder über einen USB Port des PCs und einem Micro-USB-Kabel mit 5 V versorgt werden. Mit dem Freeware Pro­gramm ESP8266Flasher.exe wird die Firm­wa­re geladen und das Modul an­schließend über ein Web-Interface kon­fi­gu­riert. Im Normalfall wird nur die gewünschte Adresse der Rückmel­der verändert. Braucht man mehr Details über Status und Konfiguration des Rückmelders, kann man mit einem Terminal Programm online gehen (über USB und emulierten COM-Port mit 115200 Baud). Neben dem Serial Monitor der Arduino Entwicklungsumgebung nutze ich dafür auch das Free­ware Programm HTerm.exe.
Für das Gateway wurde ebenfalls ein Wemos D1 Mini Ent­wick­lungs­modul verwendet. Es braucht keine externen Komponenten und sogar die mit­ge­lie­fer­ten Stiftleisten sind eher hinderlich als nützlich. Mit dem ESP8266­Flasher lädt man das passende .BIN File auf das Modul.
Da das Sensorgateway mit dem PC kommunizieren soll, muss es sich über WLAN mit dem­selben  Router verbinden, an dem auch der Mo­dell­bahn-PC über WLAN oder LAN hängt. Um die be­tref­fende SSID, das Pass­word und die gewünschte IP-Adresse des Gate­ways einzu­ge­ben, stellt das Gateway ein Web-Interface zur Ver­fü­gung. Der Modellbahn-Router sollte nicht mit dem Internet ver­bun­den sein. Nur zur Not kann der haus­­in­ter­ne Internet-Rou­ter, z.B. die Fritz!Box, vorübergehend verwendet werden. Da aber Gateway und WLAN Sensormodule offene Netzwerke beinhalten, würde man die Datensicherheit des Heim­netzes damit aus­he­beln.
Ein dedizierter Modellbahn-Router, wie der der mitgelieferte TP­Link Router der Z21, ist immer zu empfehlen. Preisgünstig und op­ti­mal geeignet ist auch der baugleiche TPLINK TL-WR840N Rou­ter. Man kann sogar eine DR5000 oder einen Raspberry Pi als Rou­ter verwen­den. Weil nicht alle Router die Konfiguration einer fes­ten IP-Adresse zulassen, steht auch DHCP zur Verfügung.

Das Sensorgateway kann genauso wie die Sensormodule mit einem Ter­minalprogramm beobachtet werden. Es zeigt an seinem USB-Port alle konfigurierten Daten und Information zu der ver­wen­de­ten Hard- und Soft­ware. Wenn das Gateway die Verbindung mit dem Router erfolgreich auf­ge­baut hat, werden alle eintreffenden Z21 Nachrichten aus dem PC-Steu­er­­pro­gramm und aus dem Sen­sor­netzwerk protokolliert.

Der automatische Blockbetrieb wurde mit Rocrail gesteuert. Die Funktion der 2-Bit WLAN Rückmelder wurde mit Windigiped gezeigt, funktioniert aber auch mit iTrain und Rocrail.


Downloads für den einfachen 2-fach WLAN Rückmelder
Fritzing Datei Wemos Mini D1 mit Tastern (hochohmige Variante wie oben)
Fritzing Datei Wemos Mini D1 mit Tastern (vereinfachte Variante für absolut potenzialfreie Eingänge wie Reedkontakte oder Märklin Schaltgleise)
Binärcode für den 2-Bit Massesensor V4.3
Downloads für den eingebauten 2-Kanal SMD Stromsensor (RMEM2xI)
Binärcode für den ESP12-E auf dem RMEM2xI Strom­sen­sor­mo­dul
Eagle und Gerber Dateien für die Herstellung der RMEM2xI Platine
Schaltplan für das RMEM2xI Stromsensormodul
Stückliste für das RMEM2xI Stromsensormodul
Downloads für das Sensorgateway
Binärcode für das Sensorgateway V4.5
Anleitung zum Konfigurieren und Debuggen von Sensormodul und Gateway
Links auf andere Seiten zum Thema WLAN Rückmelder
Lokschuppen Hochdahl – Eisenbahn- und Heimatmuseum Erkrath-Hochdahl e.V.
Z21_LAN_Protokoll_V1.09.pdf (1,3 MB)
Entwicklungsumgebung Flash Tool und Terminalprogramm
Die Arduino Entwicklungsumgebung kam für dieses Projekt zum Einsatz. Der Serial Monitor ist Bestandteil dieser Umgebung
Das Firmware Flashtool für die NodeMCU Entwicklungsmodule (ESP8266Flasher)
Das Freeware Terminal Programm HTerm von Tobias Hammer

© 2020 Gerard Clemens Letzte Aktualisierung 16.10.2020