Bei meinen bisherigen Belegt­mel­dern für das 2-Leiter-System wurde ein Modul mit 4, 8 oder 16 Strom­sensoren unter der An­la­gen­­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 sol­len ü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 An­lage auto­mati­sieren wol­len. Es kommt entweder das Roco / Fleischmann Z21 Ethernet Proto­koll oder das Märklin CAN-Bus Protokoll 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 Span­nungs­­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 Bau­stein ESP12-E liefern. Der ESP12-E ist eine sehr kom­pakte 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­wen­dung 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ög­lich­keit einer nicht isolierten Verbindung zwischen Gleis­masse und PC.
Diese Strommessung erfolgt mittels Spannungsmessung über einen in Reihe mit dem Verbraucher geschalteten Widerstand. Die Spannung wird nach oben und nach unten durch zwei antiparallel ge­schaltete Dioden begrenzt. Die Messung vergleicht die Spannung mit einem vom Anwender einge­stellten Schwellwert (einem Plus- und einem Minus-Wert). Also stellte sich sofort die nächste Frage nach dem Spannungsvergleicher (Komparator).
Um aber für 2 Belegt­mel­der je die obere (belegt) und die untere (frei) Span­nung 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 (F), auch einen ana­logen Ein­gang, 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. An dem Punkt kam der Multiplexer ins Spiel.

Multiplexer

Der C-MOS Baustein CD4051 macht genau das, was wir brauchen. 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är­eingä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­wen­det, um auch die ne­ga­ti­ven Halb­wellen in die Messungen ein­zu­be­zie­hen.
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 Aus­gang 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 Mes­sung mit dem digitalen Gleissignal ist nun über­flüssig. Dass wir dann und wann auch mal eine Lücke oder RailCom Cut-Out (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 Durch­lauf wird der Multi­plex­er-Index um 1 er­höht. Spä­tes­tens nach 2 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 Ver­zö­ge­rung das analoge Signal 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 einer Zeitdauer von n Millisekunden 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 Zeitgeber neu geladen. Falls zu­letzt „belegt“ gemeldet wurde, bleibt die­se Meldung gültig. Läuft der Timer ab, 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 also um eine konfigurierbare Anzahl von n ms 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 Abfallverzögerung n 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.

Die Dauer der Abfallverzögerung von „belegt“ nach „frei“ ist konfigurierbar von 10 bis 2550 ms. Die Schwell­werte für „frei“ und „belegt“ wer­den von der ge­wünsch­­ten Em­pfind­lich­keit be­stimmt. Die Vor­ein­stel­lung reicht für eine Be­legt­meldung mit dem „feuch­ten 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 Kon­zept die Anzahl der Bauteile be­trächtlich. Es werden nur noch 19 Bau­teile be­nö­tigt!

Programmierung

Wenn Sie sich für das Konzept Roco/Fleischmann Z21 Netzwerkprotokoll entschieden haben, verwendet das RM Modul das „LAN_CAN_DETECTOR“ Tele­gramm aus der Roco Z21 Ethernet Pro­to­koll Spe­zifikation. Alternativ kann auch das LAN_LOCONET_DETECTOR Telegramm verwendet werden.

Wird die Firmware für CS2 oder Gleisbox geladen, wird die Märklin CAN Nachricht 0x23 ab­ge­setzt. Ver­wen­det werden dabei die Rückmelde-Adres­sen (1 – 2048 für das Z21 Protokoll oder 1 -3496 mit Angabe der Gerätekennung für das Märklin CAN Protokoll). Für die Ver­gabe dieser Adres­sen gibt es fol­gen­de Möglich­kei­ten:

  1. Programmierung über CV ist mit dem Programm Rocrail nur für das Roco Protokoll mög­lich. Wir verwenden die Betriebsart POM für Acces­so­ry Decoder. Als Adresse dient die NID des Sensor­moduls (NID = eindeutige Netz­werk Identifikation).
  2. Programmierung über Web-Interface ist die komfortablere Lösung und wird für das Märklin CAN Protokoll und für das Roco Protokoll eingesetzt. Die Programmierung wurde für die aktuellen Firmware-Versionen erweitert und erlaubt die Eingabe sämtlicher Parameter wie Adresse, Filterzeit und Empfindlichkeit. Auch wird der aktuelle Zustand des Rückmelders und die aktuelle Spannung für „nicht belegt“ kontinuierlich im Web-Interface.

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 Program­mierung. Er kann auch für das serielle Moni­to­ring 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 meis­tens 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 Adap­ter oder einen iso­lier­ten PC.

Auf dem Steckbrett wurde zur Probe die Schaltung 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 Ver­such ist auch belegt, dass 22 kOhm als Last für eine Be­legt­­mel­­dung im Märklin 3-Leiter C-Gleis aus­rei­chend sind. Die Schwell­werte betragen 120 für den unteren Wert für die Belegt­meldung und 80 als oberen Wert für die Frei­mel­­dung. 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. Ist aber Theorie und ich hab’s nie ausprobiert.
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 (R12 und R22 haben 0 Ohm) zum Einbau in ein (TRIX) C-Gleis. Für die Verwendung als Massesensor im Märklin C-Gleis werden 22 kOhm Belastungswiderstände eingesetzt.

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 muss­ten.


Betrieb der Rückmelder

Z21 Emulation der nächsten Generation (NextGen)

Für den Betrieb der NextGen Rückmeldemodule mit dem Z21 Ethernet Protokoll wird zusätzlich einen „Mediator“ gebraucht. Dieser sammelt die Rückmeldesignale aller Module ein und emuliert dabei 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 kommuni­ziert und nicht mit einem Verbund aus mehreren Netzwerkknoten mit unter­schiedlichen IP-Adressen. Umgekehrt erlaubt NextGen auch den Betrieb von Aktoren, indem z.B. Weichen­komman­dos aus dem PC vom Mediator per Broadcast an alle Sensor- und Aktor-Baugruppen geschickt werden. Weiter unten mehr zu NextGen.

Direktbetrieb an Märklin CS2, CS3 oder CAN2WLAN Bridge in der Trackbox

Diese Variante kommt ohne Gateway aus und verwendet das Mär­klin CAN-Bus Protokoll über Ethernet. Strikt ge­nommen bilden die CS oder die Bridge den Mediator, bzw. das Gateway, indem sie sich um die Verteilung der Nachrichten im Netz­werk kümmern. Im Gleisbild-Display der CS 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 CS bereits von Märklin rea­lisiert und wurde mit den Pro­gram­men Rocrail, iTrain und Win-Digipet ge­prüft. Die Software für das RMEM2xI WLAN Rück­mel­de­modul für die CS steht weiter unten zum Download bereit.

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

Roco/Fleischmann Z21 Protokoll – NextGen
Märklin CAN Protokoll
Binärcode für den ESP12-E des RMEM2xI Strom- und Masse-Sensormoduls für Märklin (Version 1.11 vom 26.09.2024)
Binärcode für den ESP12-E des RMEM2xM Masse-Sensormoduls für Märklin (Version 1.12 vom 25.09.2024)
Platinen RMEM2xI und RMEM2xM
Weitere Links
Kurzanleitung zum Konfigurieren und Debuggen des Mediators

Hinweise zum Aufbau und Inbetriebnahme der RMEM2xI und RMEM2xM Bausteine:

Prüfe alle Bauteile und Lötstellen, bevor die digitale Gleisspannung angelegt wird. Die erste Prüfung muss nicht unbedingt im Gleis gemacht werden, sondern kann auch auf dem Arbeitstisch vor dem PC erfolgen. Beim Anlegen der Gleisspannung blitzt die blaue LED auf dem ESP-12E(F) kurz auf. Das ist ein gutes Zeichen, die 3,3 Volt Versorgungsspannung ist da. Jetzt kann die gewünschte Software eingespielt werden, Märklin oder Roco Emulation. (Roco Z21 Protokoll nur für RMEM2xI)

Der RMEM2xI (M) Baustein muss nach dem Zusammenbau erst noch programmiert werden. Das allererste mal geschieht das noch seriell mit einem FTDI232 Adapter. Später können dann andere oder aktualisierte Firmware-Pakete über WLAN (OTA = Over The Air) drüber geladen werden. Der FTDI Adapter wird mit Drahtverbindungen (Steckbrett-Kabel) mit den Kupferinseln auf der Unterseite des RMEM2xI (M) Moduls (provisorisch) verbunden. Auf der anderen Seite geht ein USB-B Kabel zum PC. Der FTDI Adapter liefert zwar 3,3 V aber in den meisten Fällen ist das nicht ausreichend um den ESP12E zum Einschalten zu bewegen. Die zusätzliche Versorgung aus der Gleisspannung oder einem Gleichspannungsnetzteil ist meistens erforderlich. Verwenden Sie dafür die Lötpunkte J und K und nicht den 3,3 V Anschluss.

FTDI232RMEM2xI
GNDGROUND
RXDTXD
VCC3,3 V
RTSRST
DTRGPIO0
TXDRXD
Verbindungen zwischen FTDI232 und RMEM2xI

Auf dem PC starten Sie die Software ESP8266Flasher.exe und laden das gewählte .bin File aus der Tabelle. Die Software findet meistens den richtigen COM Port und startet die Kommunikation über den FTDI Adapter mit dem ESP12E Chip. Es werden die MAC-IDs des Chips ausgelesen. Mit „Flash(F)“ starten Sie den Prgrammiervorgang. Nach ca 2 Minuten ist der Vorgang fertig und ein grüner Haken zeigt an, dass die Software erfolgreich geladen wurde. Die USB Verbindung kann abgenommen werden und der RMEM2 Buastein wird vom FTDI Adapter getrennt. Das macht man natürlich am Besten ohne Spannungsversorung.

Nachdem die Spannung wieder angelegt wurde, taucht im Netzwerkfenster des PC bei den WLANs ein neues WLAN auf. Bei mir ist das das obere „AP0809“.

War das Modul vielleicht schon mal programmiert oder sind bereits mehrere Module in Betrieb genommen worden, kann es in Windows (bei mir Windows 10) zu Problemen kommen. Zum Beispiel will sich der PC partout nicht mit dem WLAN verbinden. Das kann darauf zu­rück­zu­führen sein, dass Windows für das/ein Netzwerk mit dem Namen „AP0809“ nicht passende Daten gespeichert hat.

Manchmal akzeptiert Windows auch das Kennwort „NWKONFIG“ nicht. In anderen Fällen wird nur eine IP6 Adresse vergeben und keine IP4, die wir ja benötigen. Auch meint Windows ver­ein­zelt, dass es sich bei „AP0809“ um ein „öffentlches“ Netzwerk handelt und verbindet sich zwar, lässt aber nicht zu, dass wir mit dem Browser die Konfigurationsseite 192.168.4.1 oder auch „http://AP0809“ anzeigen.

Die allererste Maßnahme ist es dann, das eventuell noch vorhandene Netzwerk (AP0809 in unserem Fall) aus der Netzwerkverwaltung von Windows zu löschen. Gehe dazu mit der rechten Maustaste auf das Windows-Symbol unten links und wähle dort „Netz­werk­ver­bin­dun­gen“. Da klicken wir auf ‚WLAN‘ und anschließend auf ‚Bekannte Netzwerke verwalten‘. Manchmal ist die Liste sehr lang und mit der Suchfunktion kann das WLAN AP0809 schnell gefunden werden: Siehe Screenshot unten.

Hier sollte man AP0809 anklicken und den Button ‚Nicht speichern‘ drücken, um das Netzwerk AP0809 zu löschen. Nur in den hardnäckigsten Fällen, macht man das zusätzlich RMEM2xI Modul spannungsfrei, schaltet das WLAN des PCs aus und bootet ihn neu. Beim Wiedereinschalten von PC, Rückmeldemodul und WLAN wird dann meistens normal eingelogt und danach auch die Webseite angezeigt.

Die NextGen Variante, die das Z21 Ethernet Protokoll nutzt, ist autark und kann in Verbindung mit anderen Zentralen betrieben werden, um Belegtmeldungen in das Modellbahnsteuerprogramm zu bringen.


© 2020 – 2024 Gerard Clemens – letzte Aktualisierung: 29.09.2024