Zum Ausprobieren und Tes­ten von Rail­Com Detek­toren, RFID Lesern, S88-Scannern und Decodern aller Art habe ich mir vor einigen Jahren einen sogenann­ten Hosenträger ge­baut. Der Hosenträger beinhaltet 4 Stumpf­gleise in einer „H“ Anordnung, die mit 4 Wei­chen und einer Kreu­zung so verbunden sind, dass ein Fahrzeug von jedem Stumpf­gleis immer beide gegenüber­liegenden Gleise erreichen kann. Das Ganze ist auf einem Seiten­teil eines IVAR Regals aufgebaut 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 einen selbst­ge­bau­ten S88 Scanner auf der Basis Arduino Uno erkannt. Für jeden RFID Leser wurden 16 Bit (ein S88 Modul) eingelesen und im Rocrail Programm mittels Script wieder zu einer bi­nä­ren 14-Bit Fahrzeugadresse kombiniert. Der Scanner hat neben RFID auch die Standard Belegtmeldungen und Gleiskontakte verarbeitet und über USB unter Verwendung des HSI Protokolls 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 Verwendung des Tams RC-Talk Protokolls. Eigentlich ist das Protokoll dazu gedacht RailCom Information, also Decoderadresse und Aufgleisrichtung der Lok an den PC weiterzugeben, da aber meine RFID-S88-Light eben auch diese Informationen liefern, habe ich das Protokoll für RFID verwendet. RFID und Standard S88 mussten nun ge­trennt werden. Es gab nun also 2 s88 Scanner, einen mit HSI Ausgabe für die Standard-Rück­melder und einen mit RC-Talk Ausgabe für RFID. Beide Scanner haben über USB mit dem PC kommuniziert. Entsprechend wurden im Modellbahnsteuerprogramm 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 Format mit dem Tams RC-Link Baustein. Meine RFID Leser wurden auf der Basis eines Arduino Nanos neu gebaut und mit einer RS485 Schnittstelle versehen. Dadurch konnte ich meine RFID Leser wie Tams RCD-1 und im Verbund mit diesen RailCom-Detektoren an den RC-Link anschlie­ßen. Durch die Verwendung des gleichen Gehäuses, gleiche Klemmenbezeichnung und Adressierungsmechanismus konnte ich 4 RFID Leser und 4 RailCom Detektoren RCD1 am gleichen RS485 Bus betreiben und die Lok- und Richtungsdaten in den PC einlesen.
Mittlerweile hatte die Menge an Versorgungskabeln und USB Datenleitungen stark zuge­nom­men und machte einen Transport und die schnelle Wieder-Inbetriebnahme des Test­mo­duls immer schwieriger. Da waren ja außer den Rückmeldebausteinen auch noch die DCC Zentrale und der Notebook anzuschließ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 Modellbahnsoftware angelegt werden. Das war zumindest die Idee. Begonnen wurde mit dem Bau eines RFID Lesers auf der Basis eines Lolin NodeMCU V3, einem verbreiteten ESP8266 Entwicklungsboard mit integriertem 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 Informationen sendet, bzw. Anfragen an die nun vir­tuelle Z21 richtet. Diese Anfragen allerdings müssen vom WLAN Modul auch beant­wortet werden, damit der PC nicht aufgibt, weil da keine Z21 Zentrale reagiert. Anfangs wurde die Beantwortung der Fragen nach Geräte­zustand, Seriennummer und Firmware-Stand der „Z21“ in den Code des RFID Lesers integriert, bis dann der 2. und 3. Leser und der S88 Scanner auf WLAN umgebaut wurden. Es sollte natürlich nur ein einziges Sensormodul des Hosenträgers diese Anfragen beantworten. Auch wurde es zu aufwändig, nun 4 vir­tuelle Z21 Zentralen in der Software anzu­legen, für jedes Sensor­modul eine. Nach wenigen Tagen wurde deswegen ebenfalls auf der Basis des ESP8266 Entwicklungsboards ein „Gateway“ ent­wickelt, das alle allgemeinen Aufgaben einer virtuellen Z21 übernimmt. So meldet das Gateway neben Serien­nummer 1234567 und Firmware-Stand nun sogar eine virtuelle „Temperatur“ und eine virtuelle „Gleisspannung“.


Gateway

Ein Gateway (auf Deutsch Tor) hat zwei Seiten. Auf der Seite der Sensormodule bietet es ein WLAN „SENSORNETxx“, in das sich die Sensorknoten einloggen. Alle hier ein­treffenden Meldungen, Belegtmeldungen, Lokomotiv-Codes, usw. werden vom Gateway mit einem Broadcast auf die andere Seite zu den Client-PCs weitergeleitet. So können mehrere Clients die Sensorinformationen gleichzeitig verarbeiten.
Die Anfragen, die nicht einem spezifischen Sensor (oder Aktor) betreffen, werden vom Gate­way abgefangen und die Antwort an den anfragenden Client (PC) zurückgeschickt. Meldun­gen und Anfragen an Sensorknoten werden vom Gateway in das „Sensornetz“ weiterge­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 Entwicklungsboards. Der PC ist vom Kabelsalat völlig befreit und kommuniziert zu 100% nur noch über WLAN. Um auch die Versorgungskabel am Hosenträger zu eliminieren, habe ich einen Step-Down Wandler eingebaut, der die digitale Gleisspannung in eine 5 V Gleichspannung transformiert und damit alle Entwicklungsboards 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, RailCom, RM Bus und CAN Bus auf den Tisch. Auch der Unterschied zwischen einer Punkt­meldung und einer Block-Belegtmeldung wurde gezeigt. Schwerpunkt war jedoch der auto­matische Blockbetrieb auf einem sogenannten „Hundeknochen“. Hier wurde auf der einen Seite des Knochens der Einsatz von Roco/Fleischmann RailCom Rückmeldern 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 für 2 Rückmeldekanäle (RMEM2xI) waren in der Bettung des Trix C-Gleises eingebaut und somit für das Publikum nicht sichtbar. Ein Teil der C-Gleise wurde sogar auf einen normalen Tisch verlegt. Der halbe Hundeknochen mit den C-Gleisen wies keinerlei sichtbare Verdrahtung auf, weder auf noch unter den Tischen und Modul­plat­ten.
Eine (richtige) Z21 versorgte die Gleisspannung für die Loks und die Weichen. 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 Meldern 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 Mitteln ein WLAN-Rück­mel­der aufgebaut wird. Der eigentliche Sensor war ein Märklin Schaltgleis. Das ist ein Schalt­he­bel, der vom Schleifer eines Fahrzeuges 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 Information gelangt vom Schaltgleis ü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 Entwicklungsboard 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 Firmware geladen und das Modul anschließend über ein Web-Interface konfiguriert. 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 Freeware Programm HTerm.exe.
Für das Gateway wurde ebenfalls ein Wemos D1 Mini Entwicklungsmodul verwendet. Es braucht keine externen Komponenten und sogar die mitgelieferten Stiftleisten sind eher hinderlich als nützlich. Mit dem ESP8266Flasher 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 Modellbahn-PC über WLAN oder LAN hängt. Um die betreffende SSID, das Password und die gewünschte IP-Adresse des Gateways einzu­ge­ben, stellt das Gateway ein Web-Interface zur Verfügung. Der Modellbahn-Router sollte nicht mit dem Internet verbunden sein. Nur zur Not kann der hausinterne Internet-Router, 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 TPLink Router der Z21, ist immer zu empfehlen. Preisgünstig und optimal geeignet ist auch der baugleiche TPLINK TL-WR840N Router. Man kann sogar eine DR5000 oder einen Raspberry Pi als Router verwen­den. Weil nicht alle Router die Konfiguration einer festen IP-Adresse zulassen, steht auch DHCP zur Verfügung.

Das Sensorgateway kann genauso wie die Sensormodule mit einem Terminalprogramm beobachtet werden. Es zeigt an seinem USB-Port alle konfigurierten Daten und Information zu der verwendeten Hard- und Software. Wenn das Gateway die Verbindung mit dem Router erfolgreich aufgebaut hat, werden alle eintreffenden Z21 Nachrichten aus dem PC-Steuer­pro­gramm und aus dem Sensornetzwerk 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 Stromsensormodul
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
Die Seite im Rocrail Wiki vom User Pirat-Kapitan zum Thema WLAN gestützte Rückmeldung für Teppichbahner
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

Aktualisiert 27.03.2020