Bislang beruhten meine Ent­wick­lungen für Belegt­melder immer auf dasselbe alt­herge­­brachte Kon­­­zept: Stromsensor auf der Ba­sis von anti­pa­ral­lelen Silizium-Gleich­richter-Dio­den mit Bypass-Wi­der­­stand, Tran­sis­tor als Komparator (Bau­stein, der Span­nun­gen ver­gleicht) und Optokoppler zur Tren­­­­nung von Gleis­span­nung und Ver­sor­gungs­span­nung der Elektronik (RM-BUS, CAN, S88, o. ä.).
Bei den herkömmlichen Belegt­mel­dern wurde ein Modul mit 4, 8 oder 16 Strom­sensoren unter der An­lagen­platte ver­baut, mit den Gleisen ver­drah­tet und über Bus mit der Zen­trale oder dem PC ver­bun­den. Im neu­en Konzept soll der Be­legt­melder mit dem C-Gleis zu einer Ein­heit wer­den. Die Belegt­mel­dungen sollen über WLAN die Zen­trale­ oder den PC er­reichen. So wird das C-Gleis zu einem flexibel ver­wend­ba­ren Bau­ele­ment für Tisch- und Tep­pich­bah­ner, die auch ihre provisorisch auf­gebaute Anlage auto­mati­sieren wol­len. Es kommt entweder das Roco / Fleischmann Z21 Ethernet Proto­koll oder das Märklin CAN-Bus Protokoll (in zwei Aus­prä­gun­gen) zur An­wendung.
Die Umstellung auf WLAN und der Wunsch, keine weiteren Versor­gungs­lei­tun­gen durch die Anlage zu ziehen, führ­ten dazu, dass die digitale Gleis­span­nung zur Versorgung der elek­tro­nisch­en Kom­po­nenten verwendet wur­de.

Elektrische Isolation

Es gibt aber wohl kaum Spannungs­­wand­­­ler, die klein genug für den Ein­bau in die Bettung des C-Gleises sind und eine isolierte Aus­gangsspannung von 3,3 V für den verwen­deten WLAN Baustein ESP12-E liefern. Der ESP12-E ist eine sehr kompakte SMD Bauart des be­kann­ten Espressif ESP8266 Pro­zessors. Durch diese nicht-isolierte Strom­ver­sor­gung haben nun der ESP12-E und das Gleis eine elek­trische Ver­bin­dung. Die Ver­wendung eines Opto­kopplers ist da­­mit sinn­los ge­wor­den. Außerdem führt bereits das auf­gebaute WLAN von sich aus zu einer gal­va­ni­schen Trennung von Gleis­span­nung und nach­fol­gen­dem PC oder Tablet. Nur beim Pro­gram­mie­ren des Rückmeldebausteins über einen FTDI232 (USB) bestünde die Möglichkeit einer nicht isolierten Verbindung zwischen Gleismasse und PC.
Die nächste Frage, die sich zwangs­läufig stellte, war die nach dem Kom­pa­ra­tor. Um aber für 2 Belegt­mel­der je die obere (belegt) und die untere (frei) Spannung zu verglei­chen, wären schon 4 Kompa­ra­toren mit zusätz­li­chen Bau­teilen not­wen­dig gewesen. Hat nicht der ESP8266, bzw. in unser­em Fall der ESP12-E, auch einen ana­logen Eingang, mit dem man Span­nun­gen im Be­reich der Dio­den­durch­lass­spannung von 0 bis 700 mV (Silizium Dioden) oder 0 bis 500 mV (Schottky-Dioden) messen kann? Richtig, aber leider sind es nicht 8, 4 oder 2 Ein­gänge, son­dern ist es nur einer. Der müss­te aber dann gemein­sam, reihum, von allen Sen­sor­ka­nä­len ver­wen­det werden.

Multiplexer

Der C-Mos Baustein CD4051 macht genau das. Er verfügt über 8 elek­tro­nische „Schal­ter“ mit einem gemeinsamen Pol. Welcher von den 8 Schaltern das Mess­sig­nal zum ESP12-E leitet, wird über 3 Binäreingänge ent­­schie­den. Der CD4051 wird genau­so mit 3,3 V gespeist wie der ESP12-E. Er ist klein und erfordert keine Be­schal­tung mit ex­ternen Kompo­nen­ten. Dass wir mit diesem Konzept erst mal nur positive Span­nun­gen U messen, ist aber noch ein Nach­teil. Im alten Kon­zept (S88 Rück­­mel­der) wurden zwar auch nur die posi­tiven Halb­wel­len gemessen, das aber kontinuierlich. Die Mes­sung im neu­en Konzept erfolgt zyklisch in der Haupt­schleife des ESP12-E Pro­gramms. Es erfordert immer 2 Schrit­te, zuerst die Aus­wahl des Kanals über den Multi­plexer, und anschließend die eigentliche Messung und Aus­wertung.
Vom alten Konzept sind also nur die anti­parallelen Dioden mit By­pass Wi­der­stand, der ESP8266 als Kom­pa­ra­tor und das WLAN als Schnittstelle zur Zen­tra­le oder PC ge­blie­ben. Da der ESP12-E ein sehr leis­tungs­starker Mi­kro­pro­zessor ist, sind wir in der Lage, das Protokoll für diese Verbin­dung frei zu wählen.

Messverfahren

Das Messverfahren am Beispiel des Trix C-Gleises

Die Messung des Span­nungs­ab­falls U über die Dioden ist nur rele­vant, wenn die Span­­nung über die Dioden positiv ist. Da die digi­tale Gleis­spannung eine Wechsel­span­nung ist, könnte so nur wäh­rend der po­sitiven Halbwellen, also quasi nur die halbe Zeit sinn­voll ge­mes­­sen werden. Um öfters korrekt messen zu können, müsste da­her theo­re­tisch der Multi­plexer mit den Flan­ken der digitalen Gleisspan­nung syn­chronisiert wer­­den. Um die dafür not­wen­dige Hard- und Software zu spa­ren, habe ich einen Trick ange­wendet, um auch die ne­ga­ti­ven Halbwellen in die Messungen einzubeziehen.
Mit einem Spannungsteiler wird der ana­loge Eingang des ESP12-E auf ca. 512 (mV) gelegt. Das ist der hal­be Ein­gangs­bereich (0 – 1023). Die 3,3 V Versor­gungs­­span­nung geht über einen 220 kOhm Wider­stand an den ADC-Eingang und vom ADC-Eingang geht ein 39 kOhm Wider­stand auf den Pin 3, den Ausgang des Multiplexers CD4051. Jetzt kann die Schaltung die po­si­tive und die negative Halbwelle messen. Die An­zahl der Messungen hat sich damit ver­dop­pelt und die Synchronisierung der Messung mit dem digitalen Gleissignal ist nun über­flüssig. Dass wir dann und wann auch mal eine Lücke (also nichts = „frei“) messen, ist dank des Mess­al­go­rith­mus kein Problem.

Mit dem analogen Eingang des ESP12-E wird aktuell die Span­nung U so oft wie mög­lich ge­mes­sen. Bei jedem neu­­en Durchlauf wird der Multi­plex­er-Index um 1 er­höht. Spä­tes­tens nach 2 (oder 4, oder 8) Zyklen wird wieder der Ka­nal 1 mit dem ana­lo­gen Eingang des ESP ver­bun­den. Kurz nach dem Einschalten eines Multi­plex­er Ka­nals wird mit einer kleinen Verzö­ge­rung gemessen. Ist das Er­geb­nis höher als 512 + Schwell­­wert für „belegt“ oder kleiner als 512 – Schwellwert für „belegt“, dann bedeutet das:

  1. Die Messung fand statt, als die digitale Gleisspannung keine Lücke aufwies
  2. Der überwachte Gleisabschnitt ist auf jeden Fall be­legt.

Es wird vom ESP sofort ein Tele­gramm „besetzt“ abgesetzt.
Ist das Messergebnis kleiner als ein zwei­ter Schwellwert für „frei“, dann bedeutet das:

  1. Die digitale Gleisspannung war kurz weg (Lücke oder Mikro-Kurzschluss) oder
  2. der Abschnitt ist frei oder
  3. es gibt ein Kontaktproblem zwischen Rad und Schiene oder zwischen Schleifer und PuKos

Wiederholt sich diese Messung mehr­mals mit dem gleichen Ergeb­nis, kann nach n Mes­sun­gen davon aus­ge­gangen werden, dass der Abschnitt tat­säch­lich frei ist. Dann erst wird das Te­le­gramm „frei“ abge­setzt.
Wenn vor Ablauf der n Messungen wie­der eine positive Messung ge­­macht wird, wird der Zähler gelöscht (n = 0). Falls zu­letzt „belegt“ gemeldet wurde, bleibt die­se Meldung gültig. Erreicht der Zähler den Wert n, dann wird nur ein „frei“-Tele­gramm abge­setzt, wenn vorher „belegt“ war.
So wird der Datenverkehr im WLAN auf die relevanten Meldungen redu­ziert. M. a. W. es wer­den nur die Än­de­run­gen ge­mel­det.
Die „frei“ Meldung wird um n Mes­sun­gen verzögert. Das hat fol­gen­de Vor­teile:

  1. Dreckige Gleise führen weniger schnell zum Freimelden.
  2. Fluten des Netzwerkes mit Belegt- und Freimeldungen wird vermieden.
  3. Mikro-Kurzschlüsse und Lücken in der Gleisspannung werden ignoriert.
  4. Abschalten der digitalen Gleis­span­nung führt nicht zum Frei­melden (die Versorgungs­span­nung ist vor Ablauf der 20 „frei“-Mes­sun­gen weg).
  5. Der Belegtmelder „glüht“ etwas nach, ein Feature, das man z. B. in der Z21 App und bei Mo­dell­­bahn­steu­er­­pro­gram­men einstellen muss.

Je nach Anzahl der RM-Kanäle muss der Parameter n für die auf­ein­ander­folgende Anzahl von Messungen mit negativem Ergebnis angepasst wer­den. Die Schwell­werte für „frei“ und „belegt“ werden von der gewünsch­ten Empfindlichkeit be­stimmt. Die Vor­ein­stel­lung reicht für eine Be­legt­meldung mit dem „feuchten Finger“. Der hier verwendete ESP12-E hat einen Analogeingang mit einem Ein­gangsbereich von 0 bis 1 V.

Für die Variante 2-Kanal embedded Rück­meldemodul zum Einbau in das C-Gleis „RMEM2xI“ reduziert dieses Konzept die Anzahl der Bauteile be­trächtlich. Es werden nur noch 19 Bau­teile be­nö­tigt!

Loop() braucht im aktuellen Sketch et­was mehr als 1 ms. Alle De­bug Aus­ga­ben sind dabei eingeschaltet. Das er­laubt das Umschalten des Mul­ti­plex­ers alle 2,048 ms und das Messen über den ADC in einem Zeitrahmen von 1 bis 768 µs nach der Umschaltung.
Für die Geschwindigkeit des 2-fach-Rück­mel­de­mo­duls bedeutet das:

  1. „Belegt“-Meldung im schlechtesten Fall nach 5 ms +- Streuung durch fehlende Syn­chro­ni­sie­rung mit dem digitalen Gleissignal. Op­ti­scher Eindruck „sofort“.
  2. „Frei“-Meldung nach spätestens 80 ms. (n = 20).

Programmierung

Das RM Modul meldet sich mit dem „LAN_CAN_DETECTOR“ Tele­gramm aus der Roco Z21 Ethernet Pro­to­koll Spezifikation. Wird die Firmware für CS2 oder Gleisbox geladen, wird die Märklin CAN Nachricht 0x23 abgesetzt. Ver­wendet werden dabei die Rückmelde-Adressen (1 – 2048 für das Z21 Protokoll oder 1-1023 mit Angabe der Gerätekennung für das Märklin CAN Protokoll). Für die Ver­gabe dieser Adres­sen gibt es folgende Möglich­kei­ten:

  1. Angabe der gewünschten Adresse im Quellcode (nur für In­si­der im Besitz des Quellcode).
  2. Definition der Adresse über das Rocrail Z21 Menü im Programm Rocrail unter Roc­rail Eigen­schaf­ten. Setzt voraus, dass bei der Program­mierung nur ein Modul online ist.
  3. Programmierung über CV ist mit dem Programm Rocrail für beide Protokolle mög­lich und ge­tes­tet. Betriebsart POM für Acces­so­ry Decoder. Als Adresse dient die NID des Sensormoduls (NID = eindeutige Netz­werk Identifikation). Stand April 2020.
  4. Programmierung über Web-Interface. Wurde noch im Oktober 2019 reali­siert, erlaubt aktuell die Eingabe sämtlicher Parameter wie Adresse und Filterzeit.

Varianten

Steckbrettvariante des RMEM2xI mit 2 × 22k als Lastwiderstand. Variante noch ohne Vorspannung auf den analogen Eingang. Der FTDI232 USB nach seriell Umsetzer dient nicht nur der Programmierung. Er kann auch für das Monitoring verwendet werden.

Achtung: Bei der Verwendung des USB-Ports eines ESP-Boards oder wie hier des USB-Ports des FTDI232 Wand­lers, wird die Masse vom PC mit der Gleis­spannung verbunden. Da der PC geerdet ist und die Gleis­span­nung meistens auch Bezug auf Masse hat, führt das un­wei­gerlich zu Problemen oder zu Beschädi­gung der Hardware! Verwenden Sie einen isolierten USB Adapter oder einen iso­lier­ten PC.

Die Varianten für die 2, 4 und 8 Kanäle verwenden im Prinzip den­selben Quell­code. Die An­zahl der Kanäle wird über „#define FB_PER_MODULE 2“ (uiNrCh) definiert und der Sketch danach neu kompiliert. Dass für jede Variante eine andere Zahl für Parameter n (Anzahl der auf­ein­an­der­fol­gen­den „frei“-Messungen) verwendet wer­den muss, ist klar. Da es keine Platine für die 4-fach oder 8-fach Variante gibt, ist zurzeit nur der Code für die 2-Fach Variante de­finiert. Hier hat sich für die Wiederholzahl n ein Wert von 20 bewährt.
Auf dem Steckbrett wurden zur Probe die Variante mit dem Wemos D1 Mini und eine Vari­an­te mit ESP12-E und FTDI-FT232 zum Pro­gram­mieren und De­bug­gen aufgebaut. Damit man das noch mal nach­bauen kann, habe ich sie mit fritzing © dokumentiert. Mit dem Versuch ist auch belegt, dass 22 kOhm als Last für eine Belegt­mel­dung ausreichend sind. Die Schwell­werte für beide Varianten un­ter­­schei­den sich. Beim ESP12-E wurde die 120 als unteren Wert für die Belegt­meldung und 80 als oberen Wert für die Frei­mel­­dung verwendet. Der zur Verfü­gung gestellte binäre Programmcode enthält die Werte für den ESP12-E.

Auch für Gleichspannung?

Theoretisch kann das Modul RMEM2xI auch für kon­ven­tio­nel­le, also Gleich- oder Wech­sel­­strom­­­bahn­en benutzt wer­den. Das Pro­blem da­bei ist, dass im Stand oder bei sehr langsamer Fahrt der ana­logen Fahr­zeuge keine Gleisspannung mehr da ist und die Rück­meldebausteine nicht ver­sorgt werden. Das könnte man durch Überlagerung der Gleis­span­nung mit einem niederfrequenten Sig­nal, wie z. B. aus einem (ausge­dien­ten) EMS Fahrpult verhin­dern. Damit stünde am Gleis im­mer Spannung an und die Rückmelder wären zu jeder Zeit betriebsbereit und würden auch stehende Triebfahrzeuge und „feuchte Finger“ jederzeit melden.
Nun liegen die Bereiche, in denen „be­legt“ gemessen wird, zwi­schen 0 und 380 und zwischen 620 und 1024. Liegt der analoge Mess­wert zwischen 420 und 580, dann meldet sich der Sensor (nach n Leermessungen) als nicht belegt. Diese Parameter sind im Web-Interface einstellbar.

Ein bestückter Baustein RMEM2xI als Stromsensor zum Einbau in ein C-Gleis

Die erste Bewährungsprobe be­stan­den die RMEM2xI Rück­mel­de­mo­du­le auf der Mo­dell­bahn­­aus­stellung im November 2019 im Lok­schup­pen Hochdahl, wo sie gegen Roc­o 10808 Rückmelder antreten mussten.


Betrieb der Rückmelder

Z21 Emulation der 1. Generation

Die im C-Gleis eingebauten Rück­mel­der der ersten Generation brauchen für den Betrieb mit einer Mo­dell­bahn­­soft­­ware noch ein „Z21 Gate­way“. Das Gateway ist ein Wemos D1 Mini oder ein NodeMCU WLAN Ent­wick­lungs­mo­dul. Es wird über USB-Port mit Spannung versorgt und die Firm­ware für das Z21 Gate­way (siehe unten) wird aufge­spielt. Das Gate­way stellt ein ei­genes lokales WLAN zur Ver­fü­gung, an das sich bis zu 8 WLAN-Rückmelder anmel­den. Es leitet die Meldungen der Sensoren wie RMEM2xI über einen WLAN-Router an den PC weiter und emu­liert dabei eine Z21 Zen­trale, indem es die Anfragen der Mo­dell­bahnsoftware nach Seriennummer, Versionsstände, Strom, Spannung, usw. (alles fiktive Werte) be­ant­wor­tet. Die Konfiguration des Z21 Gateways ist hier beschrieben.

Z21 Emulation der nächsten Generation (NextGen)

Anstelle des Z21 Gateways wird ein sogenannter Mediator mit identischer Hardware, aber an­derer Firm­ware eingesetzt. Der Mediator emuliert ebenfalls eine Z21 Zentrale. Alle Teil­neh­mer, Mediator, Rück­mel­der und Aktoren melden sich im WLAN des Routers an. Die Rück­mel­de­bau­grup­pen melden alles dem Mediator, der die verschiedenen IP-Adressen dieser Mo­dule durch seine eigene IP ersetzt und die Infor­mation dem PC weiterreicht. Aus der Sicht des PC wird mit einer IP-Adresse kommuniziert und nicht mit einem Verbund aus mehreren Netzwerkknoten mit unterschiedlichen IP-Adressen. Umgekehrt erlaubt NextGen auch den Betrieb von Aktoren, indem z.B. Weichenkommandos aus dem PC vom Mediator per Broadcast an alle Sensor- und Aktor-Baugruppen geschickt werden.

Direktbetrieb an CS2

Diese Variante kommt ohne Gateway aus und verwendet das Mär­klin CAN-Bus Protokoll über Ethernet. Strikt genommen bildet die CS2 das Gateway, indem sie sich um die Verteilung der Nachrichten im Netz­werk kümmert. Im Gleisbild-Display der CS2 werden die Rückmeldungen direkt angezeigt. Die Wei­ter­gabe der Rück­mel­de­infor­mation an ein Mo­dell­bahn­steuer­pro­gramm ist über die Funk­tion „Broad­cast“ in der CS2 bereits von Märklin rea­lisiert und wurde mit den Pro­gram­men Rocrail, iTrain und Wdp ge­prüft. Die Software für das RMEM2xI WLAN Rück­mel­de­modul für die CS2 steht hier zum Download bereit.

Betrieb an Gleisbox/MS2

Hat man keine CS2/3 und verwendet stattdessen die kleinere Schwester MS2 mit einer Gleis­box, braucht man für die Automatisierung mit einem PC wieder ein externes Gerät, das die Verbindung zwischen PC und dem in­ter­nen CAN Netzwerk der Märklin Komponenten brückt. Diese CAN-WLAN-Brücke habe in einem anderen Beitrag beschrieben. Die Software für die RMEM2xI Baugruppe und den Stan­dard WLAN-Rückmelder musste angepasst werden. Wichtigste Anpassung ist die Rückkehr zum UDP Protokoll, weil das die Verteilung der Nachrichten stark vereinfacht. Die nachfolgende Tabelle enthält die pas­sende Firmware für den RMEM2xI Baustein im Gleiskörper.

Nachbau des WLAN Rückmelders in der C-Gleis-Bettung

1 Roco/Fleischmann Z21 Protokoll 1. Generation
Binärcode für den ESP12-E auf dem RMEM2xI Stromsensormodul
Binärcode für das Z21 Sensorgateway V4.5
2 Roco/Fleischmann Z21 Protokoll – NextGen
Binärcode für den ESP12-E auf dem Nextgen RMEM2xI Stromsensormodul
Z21 Mediator Firmware
3 Märklin cs2CAN Protokoll für die CS2
Binärcode für den ESP12-E des RMEM2xI Strom- und Masse-Sensormoduls für die CS2
4 Märklin cs2CAN Protokoll für Verwendung mit der Gleisbox, MS2 und der CAN-WLAN
Binärcode für den ESP12-E des RMEM2xI Stromsensormoduls für die MS2 (CAN-CS2 Protokoll).
Binärcode für die CAN2WLAN Bridge
Platine RMEM2xI
Schaltplan für das RMEM2xI Stromsensormodul
Eagle und Gerber Dateien für die Herstellung der RMEM2xI Platine
Platinen bestellen
Stückliste für das RMEM2xI Stromsensormodul
Reichelt Warenkorb für RMEM2xI
Weitere Links
Anleitung zum Konfigurieren und Debuggen von Sensormodul und Gateway
Dimo 2020/03 Artikel „Versteckter Detektor“ 3-seitiger Aufsatz mit Link auf weitere 4 Seiten und Link­liste

Nachtrag:

Für das Z21 EtherNet Protokoll gibt es mittlerweile eine „NextGen“ Ausführung der Firmware. Die Hardware wird unverändert weiter verwendet. Die Besonderheiten dieser Variante sind:

  • Wegfall der 8-er-Limitierung des Gateways
  • Einfachere Konfiguration des Netzwerkes
  • Sehr ausführliche Konfiguration von Parametern über Web-Interface
  • Gleiches Aussehen der Web-Oberfläche auf Handy und Desktop-PC
  • Wegfall der APXXXX WLAN Netze der Sensormodule und des Gateways („Mediators“)
  • Mehr Information, auch ohne „Serial Monitor“
  • OTA Firmware Transfer für eventuelle Updates

Die NextGen Varianten der Sensor- (und Aktor-) Module sind in diesem Blog beschrieben.

© 2001 – 2022 Gerard Clemens – letzte Aktualisierung ; 17.03.2022