Für meinen mechanischen Servoantrieb mit 3 Positionen hatte ich 2021 einen WLAN-Servocontroller entworfen und gebaut. Kurz zuvor gab es eine neue Ethernet Protokoll-Spezifikation von Roco / Fleischmann. Darin wurden die Telegramme für den erweiterten Zubehördecoder veröffentlicht.
Schaltplan
An der Mechanik und der Auswahl des MG90S Servo hat sich seitdem nichts geändert. Auch der Einsatz des WEMOS D1 Mini wurde beibehalten. Der Mini versorgt das Servo mit 3,3V und liefert auch den erforderlichen Servoimpuls. Die Funktionalität der Decoder-Hardware wurde um die manuelle Einstellung der Endlagen erweitert. Dazu mussten dem Schaltplan einige Tasten hinzugefügt werden. Ich verwende dafür die Handbedienung, die ich auch für die Einstellung der herkömmlichen SerDecD Decoder schon verwendet habe. Die vier Tasten der Handbedienung verbinden 4 Ports des Controllers mit Masse.
Software
Die Software für den ESP8266 wurde mit der Arduino IDE erstellt. Für die Erzeugung des Servoimpulses kommt die Bibliothek „core_esp8266_waveform“ zum Einsatz. Sonstige Bibliotheken sind ESP8266WiFi, WiFiUdp, EEPROM, ArduinoOTA, ESP8266WebServer und WebSocketsServer.
Die neueste Software in der Version 1.04 hat keine mir bekannte Macken und funktioniert mit dem Standard Weichenbefehl LAN_X_SET_TURNOUT und mit dem Befehl für erweiterte Zubehördecoder LAN_X_SET_EXT_ACCESSORY.
Die Modellbahn-Software-Pakete Rocrail und iTrain haben den Befehl LAN_X_SET_EXT_ACCESSORY implementiert und können deswegen über eine einzelne Zubehöradresse bis zu 8 Positionen ansteuern (theoretisch sogar 32 sogenannte „Aspects“ oder Signalbegriffe). Da wir hier aber von mechanischen Signalen mit nur 3 Positionen und Servos mit begrenzter Auflösung reden, lässt die Software „nur“ 8 verschiedene Positionen zu.
Erklärung mit Screenshots
Der Wemos D1 Mini loggt sich direkt in den WLAN-Router der Modellbahn ein und erhält von diesem eine zufällig gewählte IP-Adresse aus dem DHCP-Bereich. Beim Einrichten des Netzwerkes, der Sensoren und Aktoren muss man diese IP-Adresse noch kennen. Beim Betrieb der Anlage hingegen nicht mehr, weil der Decoder über die Weichenadresse bzw. über die Ausgangsadresse des Zubehörartikels (Weiche/Signal) angesprochen wird.
Ein weiterer Wemos D1 Mini übernimmt die Rolle des Vermittlers und wird deswegen „Mediator“ genannt. Dieser Mediator loggt sich, wie der Servo-Aktor, in den WLAN-Router ein und erhält passend zu seiner MAC-Id immer dieselbe, also eine feste IP-Adresse. Sie geben vor, welche Adresse Sie sich für den Mediator wünschen, so z. B. die 111 an letzter Stelle. Dazu verwendet man im Router ein Feature mit dem Namen Adress-Reservierung. Dazu aber später mehr. Der Mediator übernimmt die Rolle einer abgespeckten „Z21“ Zentrale, die nur für (bestimmte) WLAN Rückmelder oder zum Stellen von Weichen und/oder Signalen verwendet wird. Die feste IP-Adresse dieser virtuellen Z21 Zentrale wird von der Modellbahn-Software wie die Standard-Adresse 192.168.0.111 einer reellen Z21 verwendet. Bei mir hat der Mediator die Adresse 192.168.20.111. Die Modellbahn-Software „spricht“ nur mit dieser Adresse. Alle Rückmeldungen von NextGen Modulen kommen über diese Adresse in den PC und an diese Adresse schickt der PC Aufträge zum Stellen von Weichen und Signalen, zum Lesen und Schreiben von CVs und anderen Informationen.
Inbetriebnahme des NextGen Servo-Aktors
Software erstmalig laden
Zum ersten Laden der Software benötigen Sie einen PC und ein Micro-USB-Kabel. Laden Sie das Software-Tool ESPHomeFlasher.exe oder ESPFlasher.exe runter. Laden Sie die Firmware „20240221_z21_Servo_NextGen_V1.10.ino.bin“ für den Servo-Aktor. Verbinden Sie den PC und den Servo-Aktor (bzw. den nackten Wemos Mini D1) über ein USB-Kabel. Wählen Sie den seriellen Port aus und starten den Flash Vorgang.
Beim ESPHome-Flasher sieht das so aus:
Beim NodeMcuflasher (ESP8266Flasher) sieht das nicht ganz so komfortabel aus:
Konfiguration des Servo-Aktors
Als Erstes muss dem frisch geflashten Servo-Aktor gesagt werden, mit welchem WLAN er sich verbinden muss. Noch sind weder der PC (Smartphone, Tablett) noch der Servo-Aktor mit irgendeinem Netzwerk verbunden. Damit wir überhaupt Verbindung mit dem Modul aufnehmen können, spannt es ein eigenes WLAN auf, mit dem wir uns (PC/Smartphone oder Tablett) verbinden können. In der WLAN-Liste sehen wir ein neues WLAN:
Das WLAN „AP2251“ ist in der WLAN-Liste neu erschienen. Die Buchstaben „AP“ stehen für „Access Point“, die 4-stellige Zahl 2251 ist die einmalige Kennung des NextGen Aktors in diesem Beispiel. Sie werden für Ihren Aktor natürlich einen anderen dezimalen Code sehen. Notieren Sie sich den Namen direkt auf den ESP8266 Baustein für den Servo.
Verbinden Sie sich mit dem neu angezeigten WLAN. Verwenden Sie dazu das Passwort „NWKONFIG“.
Wenn die Verbindung steht, starten Sie den Browser und rufen die Adresse 192.168.4.1 auf. Haben Sie sich mit dem PC eingeloggt, können Sie wahrscheinlich statt der Adresse auch den Namen AP2251 (in diesem Beispiel) eingeben.
Im Browser erscheint folgendes Menü:
Damit wir sehen, dass sich das Modul noch mit keinem WLAN verbunden hat, wird die Überschrift „WiFi Servo NextGen“ in roter Schrift wiedergegeben. Zunächst wollen wir, dass sich das Aktor-Modul mit unserem Modellbahn-WLAN-Router verbindet und klicken deswegen auf „WiFi Configuration“.
Überschreiben Sie die Platzhalter „MyHomeWiFi“ und „Password“ mit der SSID und Passwort Ihres Routers. Wenn Sie unsicher sind, finden Sie diese Angaben meistens auf der Unterseite des Gerätes.
Klicken Sie nun auf „Save Settings“. Das NG Servo Aktor-Modul startet neu und baut eine Verbindung mit Ihrem Router auf. Wenn das erfolgreich war, wird das WLAN AP2251 (in diesem Beispiel, bei Ihnen natürlich ein anderes) abgeschaltet. Spätestens jetzt sollte Ihr PC auch über Kabel oder WLAN mit demselben Router verbunden sein.
Falls bei Ihnen der Aufruf der Konfigurationsseite über den Namen APXXXX funktioniert hat, rufen Sie die Seite durch die erneute Eingabe dieses Namens noch mal auf. Es reicht dazu, im noch bestehenden Browserfenster den Cursor hinter dem Namen zu platzieren und Enter zu drücken. Die Webseite wird neu geladen und kommt nach einigen Sekunden mit grüner Überschrift zurück.
Falls Sie den Servo-Aktor mit einem Android Smartphone oder Tablett konfigurieren (auch die müssen vorher mit dem Modellbahn-Router verbunden werden), dann funktioniert die Angabe des Namens im Browser auf keinen Fall und müssen Sie stattdessen die IP-Adresse des Servo-Aktors eingeben. Um diese IP-Adresse herauszufinden, gehen Sie auf die Adresse des Routers und schauen in der DHCP Tabelle nach:
Die Konfigurationsvariablen CV
Über das Main Menu gehen wird auf „CV Configuration“.
CV Nummer | Beschreibung | Voreinstellung |
---|---|---|
CV001 / CV009 | Ausgangsadresse bzw. Weichennummer im Bereich von 1 – 2048. Unter einer Adresse können normalerweise beide Spulen einer Weiche, rot und grün, abzweigend und gerade angesprochen werden. Beim NextGen Servo-Aktor werden mit einer Ausgangsadresse maximal zwei Signalbilder, rot und grün oder 2 Weichenstellungen rund = rot = abzweigend oder grün = gerade angesteuert. Hat ein angeschlossenes Signal mehr als 2 Begriffe, dann wird für jedes weitere angebrochene Paar Begriffe intern automatisch die nächste Ausgangsadresse verwendet. So kann der Servo-Aktor mit 4 Ausgangsadressen bis zu 8 Signalbegriffe stellen. Werden im Standard-Modus Ausgangsadressen mit nur mit einem Begriff belegt, kann der freie Adressraum von anderen Servo-Aktoren verwendet werden. Es müssen keine Ausgangsadressen „verschenkt“ werden, weil der Servo 3 oder 5 Begriffe anfahren soll. Im „erweiterten Modus“ für Zubehördecoder braucht es immer nur eine Ausgangsadresse um fast beliebig viele Begriffe (256) anzusteuern. Der NextGen Servoaktor unterstützt von den 256 möglichen Begriffen allerdings nur die ersten 8. Ausgangsadressen gehen intern (Raw Adressen) von 0 – 2047. Für den Anwender und seine Modellbahnsoftware gibt es nur die Adressen von 1 – 2048. | 1 |
CV002 | Bitmaske für den Handbetrieb. Werte von 0 (kein Handbetrieb) über 1, 2 bis 3 (beide Positionen für den Handbetrieb freigeschaltet). | 0 |
CV003 | Zunahme der Impulszeit in μs pro 16 ms. Das entspricht der Geschwindigkeit. Werte liegen zwischen 1 und 20. | 10 |
CV008 | Der Hersteller Code (Mobatron = 24). Schreiben Sie einen anderen Wert als 24 in CV008, um ein Rücksetzen auf Werkseinstellungen aller CVs und anderen Einstellungen zu bewirken. Danach muss der Servo-Aktor komplett neu konfiguriert werden. | 24 |
CV029 | Die Eingabe der Zahl 32 (entspricht Bit 5) schaltet den Servo-Steller von Standard auf erweitert. Im Standard Modus (CV29=0) braucht er jeweils eine Ausgangsadresse für jedes angebrochene Paar Positionen. Im erweiterten Modus wird grundsätzlich nur eine Ausgangsadresse für bis zu 256 Positionen benötigt. Der NextGen WLAN Servo-Steller kann allerdings nur die ersten 8 Positionen ansteuern | 0 |
CV031 | Die letzte Stelle der IP-Adresse des Mediators. Die hier definierte IP-Adresse sollte die feste IP-Adresse sein, die Ihr WLAN Router für den Mediator vergibt. Diese Adresse verwenden Sie auch in Ihrer Modellbahnsoftware für den Zugriff auf die virtuelle Z21. | 111 |
CV032 | Die letzte Stelle der IP-Adresse eines PCs im Modellbahnnetzwerk, auf dem eine Terminalsoftware läuft. Auf diesem PC können die serielle Ausgaben des Servo-Aktors während des Betriebes über TCP/IP beobachtet werden. | 202 |
CV033 | Betriebsart des seriellen Monitors. 0 = keine Ausgabe, 1 = serielle Ausgabe auf USB-Port, 2 = Ausgabe über TCP/IP Protokoll auf einen PC mit Terminalsoftware wie z.B. „YAT“. Nach erfolgter Inbetriebnahme sollte hier wieder 0 eingetragen werden. | 1 |
CV034 | CV034 enthält die Anzahl Positionen/Begriffe, die von diesem Servo-Aktor verwendet werden. Formsignale und Weichenantriebe verwenden 2 oder 3 von 8 möglichen Positionen. | 7 |
CV035 und CV036 | Bei welcher Impulslänge in μs wird die rechte Endlage entsprechend 0° erreicht? (Blick auf die Abtriebswelle, Endlage in Uhrzeigersinn). Es muss nicht die mechanische Endlage sein. | 500 |
CV037 und CV038 | Bei welcher Impulslänge in μs wird die linke Endlage entsprechend 180° erreicht? (Blick auf die Abtriebswelle, Endlage gegen Uhrzeigersinn). Es muss nicht die mechanische Endlage sein. | 2500 |
CV042 bis CV049 | Positionen 1 – 8 in Grad. Der Servo-Aktor fährt nur die Anzahl Positionen an, die auch in CV034 definiert wurde. | 0, 90, 180, 0, 90, 180, 0, 90 |
Konfigurationsbeispiel:
Servo-Aktor | Anzahl Positionen | Positionen | Weichen Taste | CV |
---|---|---|---|---|
Servo-Aktor 1 Ausgangsadresse 17 | CV034 = 3 | 1 2 3 | 17 rot 17 grün 18 rot | CV042 CV043 CV044 |
Servo-Aktor 2 Ausgangsadresse 18 Ausgangsadresse 19 | CV034 = 3 | 4 5 6 | 18 grün 19 rot 19 grün | CV045 CV046 CV047 |
Servo-Aktor 3 Ausgangsadresse 20 | CV034 = 2 | 7 8 | 20 rot 20 grün | CV048 CV049 |
Die Info Übersicht
Zurück über „Main Menu“ können wir uns noch die Webseite „Information“ ansehen.
Im obigen Beispiel für NextGen Servo AP2251 sieht man zunächst die verwendete Hardware, die installierte Firmware und Tag und Uhrzeit der Kompilation. Unter Router SSID finden Sie den Namen des WLAN-Routers wieder, mit dem sich das Servo-Modul verbunden hat. Nach der Router-SSID wird seine IP-Adresse und die verwendete Subnet Maske angezeigt. Die von Ihnen definierte feste IP-Adresse des Mediators wird gefolgt von der über DHCP vergebene IP-Adresse 192.168.20.123 des Servo-Aktors AP2251. Die Mac-Adresse des Aktors AP2251 sollten Sie auch im Router wiederfinden. In der Modellbahnsoftware wird das 3-begriffige Signal über die Adressen 1 und 2 angesprochen. Da die Betriebsart „Standard Decoder“ aktiv ist, werden mit der Weichenadresse 1 die Positionen 1 und 2 angefahren. Mit der Adresse 2 (rot) wird die 3. Position erreicht. Dieser Servo-Aktor verwendet dabei die ersten 3 Positionen 1, 2 und 3 der Tabelle. Die zuletzt erreichte Position liegt bei einer Impulsbreite von 499 μs.
Mehr zum Thema NextGen Servo-Aktoren, Sensoren und Mediator finden Sie hier.
Signal in Rocrail konfigurieren.
Die interessanteste Anwendung des NG Servostellers ist bei mir das 3-begriffige Viessmann Form-Hauptsignal. Mit einem Servo und zwei Exzentern können die Stelldrähte so bewegt werden, dass bei einer 180° Drehung des Servos die Signalbilder HP0, HP1 und HP2 durchlaufen werden. Für den NG Servosteller werden deswegen die Positionen 1 = 0°, 2 = 90° und 3 = 180° definiert. Im einfachsten Fall, d. h. bei der Einstellung Standard Servo braucht es dafür 1,5 Weichenadressen, also wie im Beispiel die Adresse Weiche 1 rot, Weiche 1 grün und Weiche 2 rot.
Damit das Signal auch 3 Begriffe zeigt, muss zunächst unter Eigenschaften, Einzelheiten die Anzahl Begriffe auf 3 festgelegt werden.
Unter Eigenschaften, Schnittstelle wird die eigentliche Funktion definiert.
Es werden die Adressen 1 ROT für rot Hp0, 1GRÜN für grün Hp1 und 2 ROT für rot Hp2 eingegeben, bzw. angeklickt. Bei der Schnittstellenkennung habe ich „MEDIA“ eingetragen, das ist die Z21 Zentrale, die vom Mediator dargestellt wird und die die Befehle an de NG Servo Steller weitergibt.
Downloads
©2023 – 2024 Gerard Clemens – Letzte Aktualisierung 09.03.2024
Z21 is a registered trademark of Modelleisenbahn GmbH, Plainbachstraße 4, A-5101 Bergheim, Austria.
iTrain is a registered trademark of Berros, 9204 LH Drachten, Netherlands.
Rocrail is a registered trademark of Robert Jan Versluis, 67373 Dudenhofen, Germany.
Win-Digipet is a trademark of Digipet, Dr. Peter Peterlin, 50354 Hürth, Germany
Schreibe einen Kommentar