15.3.2020 Z21-WLAN- Gateway und WLAN- Sensorknoten Inbetriebnahme und Diagnose Gerard Clemens BAHN-IN-HAAN.DE
15.3.2020
Z21-WLAN-Gateway und WLAN-Sensorknoten Inbetriebnahme und Diagnose
Gerard Clemens BAHN-IN-HAAN.DE
[1]
Inhalt
Inbetriebnahme des Gateways ............................................................................................................... 2
Web-basierte Konfiguration des Gateways ......................................................................................... 2
Diagnose des z21-Gateways .................................................................................................................... 6
Konfiguration der Sensorknoten ............................................................................................................. 9
Web-basierte Konfiguration der Sensorknoten .................................................................................. 9
Diagnose der Sensorknoten .................................................................................................................. 11
Die Digikeijs DR5000 als WLAN Router ................................................................................................. 13
CV Programmierung der Sensorknoten ................................................................................................ 14
Welche Sensorknoten sind aktiv? ......................................................................................................... 17
Alternativen, die Sensoradresse zu ändern........................................................................................... 18
Mit dem Programmiertaster ............................................................................................................. 18
Mit dem Roco Mechanismus zur Erteilung der Moduladressen ....................................................... 18
[2]
Inbetriebnahme des Gateways
Das Gateway verbindet das Sensor-Aktor-Netzwerk der Modellbahn mit dem PC-Netzwerk. Weil die
Hardware für das Gateway ein ESP8266 Entwicklungsmodul ohne LAN-Anschluss ist, wird für beide
Verbindungen WLAN verwendet. Das PC-Netzwerk besteht aus einem Standard WLAN-Router mit
LAN Anschlüssen.
Das WLAN Netzwerk des ESP8266 auf der Sensor-Aktor-Seite verhält sich wie ein WLAN Accesspoint
mit SSID „SENSORNETXX“ und Passwort „SENSORNET“. Das „XX“ des Sensornetzwerkes ist der einzige
Parameter dieses Netzwerks. „XX“ liegt im Bereich von 0 bis einschließlich 15 und erlaubt den Betrieb
von bis zu 16 autarken Sensornetzwerken (Gruppen 0 - 15). So können mehrere Gateways für eine
oder mehrere Modellbahnen parallel in einem Raum aktiv sein, ohne sich gegenseitig zu stören. Die
Grundeinstellung nach Laden der Gateway Firmware ist SENSORNET04. D.h. die voreingestellte
Gruppe ist 4.
Die IP-Adresse des Sensornetzwerkes ist entsprechend der Gruppe „XX“ 192.168.XX.1, also in der
Grundeinstellung 192.168.4.1. Wird das Gateway eingeschaltet, startet automatisch ein Webserver
mit der Adresse 192.168.XX.1.
Web-basierte Konfiguration des Gateways Um die Web-Seite zur Konfiguration aufzurufen, muss man sich zunächst in das WLAN SENSORNETXX
mit dem Passwort „SENSORNET“ einloggen. Mit der IP-Adresse 192.168.XX.1 in der Adresszeile des
Browsers wird nun die Seite aktiviert. Sie können das mit einem PC mit WLAN Adapter, einem
Smartphone oder einem Tablet PC bewerkstelligen. Hauptsache, sie erreichen das SENSORNETXX
über WLAN.
Auf dieser Web-Seite müssen nun auf der Sensorseite die Sensorgruppe (0 – 15) und auf der Seite
des PC Netzwerks die Parameter für Ihren Router festgelegt werden.
Abbildung 1 – Webseite zur Konfiguration des z21-Gateways - Hier die Angabe der Sensorgruppe
[3]
Hiermit haben wir festgelegt, dass alle Sensorknoten, die ebenfalls der Gruppe 4 angehören (4 ist
auch bei den Sensorknoten die Vorgabe), sich automatisch mit dem SENSORNET04 verbinden. Damit
ist die Sensorseite des Gateways auch schon definiert.
Jetzt bereiten wir das Gateway für die Verwendung im PC Netzwerk vor. Als Erstes müssen wir dem
Gateway sagen, mit welchem WLAN und mit welchem Passwort es sich in das PC-Netzwerk einloggen
kann.
Wir tragen nun die SSID und das Passwort des PC Netzwerks ein. Eine optische Kontrolle des
Passwortes während der Eingabe ist leider nicht möglich. Ein falsch eingetragenes Passwort wird
gespeichert und vom Gateway beim Versuch sich mit der SSID zu verbinden, angewendet. Natürlich
scheitert dann die Verbindung. Schlimmer ist noch, dass sich die meisten Browser das Passwort
merken und aufgrund der verwendeten SSID immer automatisch (falsch) ergänzen. Also: Sorgfalt bei
der ersten Eingabe des Passwortes!
Abbildung 2 – Webseite zur Konfiguration des z21-Gateways - Eingabe von SSID und Passwort des verwendeten Routers.
Jetzt kommt der schwierigere Part. Wir müssen definieren, unter welcher IP-Adresse unser z21-
Gateway im PC-Netzwerk sichtbar sein wird. Modellbahnprogramm und Apps brauchen diese
Adresse um die Sensordaten einzulesen.
Normalerweise weist der WLAN Router die IP-Adressen automatisch per DHCP zu. Immer wenn sich
ein Gerät wie unser Gateway in das PC-Netzwerk anmeldet, erhält es vom Router automatisch eine
IP-Adresse. Der Router nimmt die Adresse aus einem Pool von dafür reservierten DHCP IP-Adressen.
Bei der ersten Anmeldung wird die nächstfreie Adresse vergeben. Meldet sich ein Gerät erneut an,
dann versucht der Router die schon mal für das Gerät vergebene Adresse wieder zu vergeben. Das
klappt aber nur, wenn diese gerade wieder frei ist. Das bedeutet für unser Gateway und für das
Modellbahnprogramm, dass die IP-Adresse auch mal eine andere sein kann. In einem Solchen Fall
kann man IT Werkzeugen verwenden um die aktuelle Adresse zu ermitteln oder im Router
nachschauen, welches Gerät mit welcher MAC-ID welche Adresse erhalten hat.
Da das alles zu aufwändig ist, verwenden wir lieber eine feste IP-Adresse für das Gateway und lassen
die voreingestellte Option „Static IP“ aktiv. Allerdings müssen wir jetzt eine freie Adresse außerhalb
[4]
des DHCP Bereiches wählen. Das bedeutet, dass wir wohl oder übel im Router nachschauen müssen,
wo der DHCP Bereich liegt.
Haben wir eine Adresse festgelegt, wird sie in das Webformular eingetragen („IP-Address for Z21
Gateway“). Der nächste Eintrag ist die eigene Adresse des Routers („IP-Address of your router“). Das
ist zwar meistens die 192.168.nnn.1 aber prinzipiell kann dafür jede Adresse im Bereich von 1 bis 254
verwendet werden. Abschließend klicken wir auf „Submit“ und speichern damit die Eingaben fest im
Speicher des Gateways.
Die nächste Abbildung zeigt das komplett ausgefüllte Formular für den Betrieb des Gateways an
einem preisgünstigen TP-Link Router. Es handelt sich um einen TPLINK TL-WR841N Router aus
meinem IT-Geräte-Fundus. SSID und Passwort sind die im Router voreingestellten Werte (Label auf
der Unterseite). Die Adresse des Routers (das nnn an 3. Stelle in den IP-Adressen) wurde von mir auf
192.168.20.1 umgestellt um eine Adress-Kollision mit anderen Routern und Sensornetzen von z21-
Gateways hier im Hause zu vermeiden. Die Adresse, die das z21-Gateway erhalten soll, ist die
192.168.20.110, die letzte Adresse vor dem DHCP-Bereich, den ich von 111 bis 199 eingestellt habe.
Abbildung 3 – Webseite zur Konfiguration des z21-Gateways. Eingabe der z21-Gateway- und der Routeradresse.
Ohne etwas an den Einstellungen des Routers TL-WR841N zu ändern, würde er auch funktionieren.
Die Adresse des Routers ist auf 192.168.0.1 voreingestellt und der DHCP-Bereich geht von
192.168.0.100 bis 200. Der Adressbereich 0 kollidiert nicht mit der voreingestellten Gruppe 4, nur die
feste Adresse des Gateways müsste auf 192.168.0.99 eingestellt werden.
Die Eingabefelder der Web-Maske enthalten beim allerersten Aufruf bereits graue Texte. Diese
müssen mit den richtigen Angaben überschrieben werden, auch wenn die grauen Vorgaben
zufälligerweise richtig sind. Ist ein Gateway einmal konfiguriert worden, werden in der Eingabe-
Maske die zuvor gespeicherten Werte angezeigt. Diese können bei Bedarf jederzeit überschrieben
werden.
[5]
Damit ist das z21-Gateway für seine Aufgaben bereit. Sensorbausteine können sich mit dem
Sensornetz verbinden und die Sensordaten der Modellbahn erreichen auf der anderen Seite des
Gateways den PC, das Tablet oder das Smartphone, das Sie an ihren Router eingesteckt oder
angemeldet haben. Damit die Sensorinformation auch im Modellbahnprogramm ausgewertet und
angezeigt wird, müssen Sie lediglich eine (weitere) Z21 Zentrale anlegen und dabei die gerade
eingetragene Adresse des Gateways verwenden. In meinem Fall also die 192.168.20.110.
Wenn Sie „Submit“ drücken, werden die geänderten Parameter übernommen. Das Gateway startet
neu und alle angemeldeten Sensorbausteine sowie Ihr PC mit dem Browser verlieren die Verbindung
zu ihrem SENSORNETXX. Warten Sie einige Augenblicke bis das WLAN SENSORNETXX wieder sichtbar
ist, und verbinden Sie ihren PC erneut mit SENSORNETXX, um die gemachten Änderungen im
Browser zu prüfen.
Es können sich bis zu 8 Sensorknoten mit einem SENSORNETXX verbinden. Auch der PC zur
Konfiguration ist in diesem Sinne ein Knoten. Verbinden Sie bei bestehenden 8 Knoten den PC mit
dem SENSORNETXX, schmeißt das Gateway einen der bisherigen 8 Sensorknoten aus dem Netz. Nach
dem Abmelden des PCs erfordert es einen Power Cycle um alle 8 Sensorknoten wieder mit dem
Gateway zu verbinden.
[6]
Diagnose des z21-Gateways
Das Webformular, das man auf der Sensorseite des Gateways aufrufen kann, bietet schon eine
gewisse Diagnosemöglichkeit, indem die zuvor geänderten Werte beim erneuten Aufruf der
Webseite angezeigt werden.
Dennoch kann es zu Problemen kommen, auch während des aktiven Betriebs. Fragen wie: „Haben
sich alle Sensorknoten mit dem Gateway verbunden?“, „Kommen auf der Sensorseite überhaupt
Meldungen rein?“ oder „Sieht das Gateway die Befehle, die vom PC kommen?“ können mit Hilfe der
Konfigurationsmaske nicht beantwortet werden.
Die Firmware im Gateway protokolliert den Boot-Vorgang und nahezu den gesamten Datenverkehr.
Das Protokoll wird in Klartext auf dem USB Port des ESP Entwicklungsmoduls ausgegeben. Um das
Protokoll sichtbar zu machen, benötigen Sie also nur ein Terminal-Programm wie z.B. HTerm.
Verbinden Sie den USB-Port des ESP Entwicklungsmoduls mit einem USB-Port auf dem PC.
Schauen Sie im Geräte-Manager nach, welcher COM Port über USB emuliert wird.
Stellen Sie das Terminalprogramm auf 115200 Baud ein (8N1) und gehen auf der gefundenen COM
Schnittstelle online.
Drücken Sie die Rückstelltaste des Entwicklungsmoduls und verfolgen Sie, wie das Modul bootet und
wie es sich (oder auch nicht) mit dem Router verbindet.
Abbildung 4 – Bootvorgang eines nicht konfigurierten Gateways
In diesem Screenshot kann man sehen, dass das Gateway noch nie konfiguriert wurde („no client
network configuration data in EEPROM”). Das Gateway verbindet sich daher nicht mit Ihrem
Netzwerk, sprich mit Ihrem WLAN-Router. Trotzdem startet es den WLAN Access-Point mit der SSID
„SENSORNET04“ für die Sensorknoten. In diesem WLAN wird mit der IP-Adresse 192.168.4.1 der
[7]
Web-Server mit der Konfigurationsseite gestartet und im Terminal werden einige Hinweise dazu
eingeblendet.
Nach erfolgter Konfiguration auf der Webseite sieht man im Monitor:
*************************************************************************************************
LoLin (WEMOS) D1 R2 & Mini is running Sketch: _20200206_Gateway_Sensornet_V4.5
Compiled on: Feb 8 2020 at 12:20:25
(c) 2020 Gerard Clemens
This software simulates a Z21. Like a regular Z21 it can be used with a PC or a tablet computer.
It transfers messages from a wireless sensor network to the client network and vice versa.
As such it acts like a gateway with a fixed IP-address in the client network
In the actual version loco-, turnout- and configuration- commands are transferred from the client-
to the sensor-network. Sensor messages are transferred from the sensor- to the client-network
The gateway also answers all other requests from MRR Software and Z21 App (Version, Current, etc.)
The gateway applies the Roco Z21 Ethernet protocol both on the sensor and on the client network.
To configure the client network use a web browser on 192.168.XX.1 (SENSORNETXX/SENSORNET)
where XX is the number of the sensor group you configured.
*************************************************************************************************
Actual Client network configuration :
Client Network SSID : TP-Link_4174
Client Network Password : ********
Client Network Router IP : 192.168.20.1
Client Network Broadcast IP : 192.168.20.255
Client Network Z21 GW IP : 192.168.20.110
*************************************************************************************************
Actual Sensor network configuration :
Sensor Network configuring WiFi Access Point . . . Ready
Sensor Network starting Soft AP . . . Ready
Sensor Network SSID : SENSORNET04
Sensor Network Password : SENSORNET
Sensor Network Gateway IP : 192.168.004.001
*************************************************************************************************
Connecting to the Client Network TP-Link_4174 using Password ********.
....... took 3.50 s
TP-Link_4174 Network WiFi connected
Station Name (Gateway Name) : ESP-A9B3DA
Station IP Address and Port : 192.168.020.110:21105
Gateway MAC Address : 84:0D:8E:A9:B3:DA
Std. Gateway Address : 192.168.020.001
*************************************************************************************************
Sensor Group : 04
HTTP server started on SSID SENSORNET04 and IP 192.168.004.001 Abbildung 5 – Protokollierung des Bootvorgangs des z21-Gateways
Das Gateway hat sich nun im PC-Netzwerk mit dem Router verbunden. Auf der Sensor-Seite hat es
einen Access-Point mit der SSID SENSORNET04 aufgemacht. Auf der PC-Seite (Client Network) hat das
z21-Gateway die angeforderte Adresse 192.168.20.110 erhalten und bei der Anmeldung die Mac ID
84:0D:8E:A9:B3:DA verwendet. Das Gateway hat sich auch einen Hostnamen zugelegt, der im Router
mit „ESP-A9B3DA“ angezeigt wird. Falls Ihr Router das beherrscht, wird dieser Name in der Client-
Liste angezeigt. Der von mir verwendete TL-WR841N zeigt nur die MAC-ID des z21-Gateways an.
Ab jetzt werden Meldungen, die auf der Sensor-Seite des Gateways eingehen, in das PC-Netzwerk
weitergereicht. Nachrichten die von Clients im PC-Netzwerk stammen und an das z21-Gateway
gerichtet sind, werden vom Gateway beantwortet bzw. in das Sensornetz weitergeleitet. In diesem
Sinne emuliert das Gateway eine Z21 und wird auch entsprechend im Modellbahnprogramm
eingerichtet. Im nachfolgenden Screenshot sehen wir, dass ein Modellbahnprogramm einige
Anfragen an das Gateway richtet.
Als erstes fragt es nach der Hardware der „Z21“ und erhält mit LAN_RET_HWINFO hierauf eine
detaillierte Antwort. Zur Überwachung der Verbindung fragt das Modellbahnprogramm regelmäßig
nach der Seriennummer unserer „Z21“. Das Gateway antwortet mangels physikalischer
Seriennummer mit „1234567“. Danach werden Broadcast Flags gesetzt und der RM-Bus abgefragt.
Dann folgt die Abfrage der diversen „LocoNet“ Rückmelder und schließlich fragt der PC nach dem
aktuellen Zustand unseres Rückmeldemoduls. Da das Gateway die aktuellen Werte nicht kennt, wird
das Telegramm LAN_CAN_DETECTOR in das Sensornetz weitergeleitet. Das Sensormodul fühlt sich
angesprochen und schreibt für die beiden Sensoren mit den Adressen 5 und 6 die aktuellen Zustände
zurück. Diese Nachrichten kommen vom Sensormodul 192.168.4.100 und werden vom Gateway
[8]
sofort an den PC mit der IP-Adresse 192.168.20.110 weitergeleitet. Im Sensornetz wird der Port 9999
und im PC-Netzwerk der Port 21105 verwendet. Die NID (die eindeutige Kennung) des Sensormoduls
ist 3786, die Rückmelde-Telegramme haben eine Länge von 14 Bytes. Ist der Anfangszustand
übermittelt, berichtet das Sensormodul unaufgefordert („Broadcast“) weitere Ereignisse, bis wieder
mal die Überwachungsfrage nach der Seriennummer kommt.
Abbildung 6 – Protokollierung der diversen Telegramme in der Monitorausgabe des z21-Gateways
Insbesondere für die Rückmelder wird angezeigt:
Die Länge des Telegramms in Byte
Die Richtung des Telegramms vom Sensormodul an das Gateway oder vom Gateway an
den PC
Die IP-Adresse und der Port des Absenders
Name des Telegramms LAN_CAN_DETECTOR (gemäß Roco Spezifikation, auch gekürzt)
Die Modul-NID des Sensormoduls
Die Adresse des geänderten Rückmelders aus Sicht des Modellbahnsteuerprogramms
Der aktuelle Zustand des Rückmelders
Das komplette Telegramm in hexadezimaler Darstellung
[9]
Konfiguration der Sensorknoten
Analog zum Gateway verwendet auch der Sensorknoten ein ESP8266 Entwicklungsmodul. Auch der
Sensorknoten hat zwei Seiten. Auf der einen Seite einen bietet es einen WLAN Access Point für die
Konfiguration per Web-Formular. Auf der anderen Seite verbindet es sich automatisch mit dem
WLAN SENSORNETXX des zugehörigen Z21 Gateways.
Auf dem WLAN Access Point des Sensormoduls werden maximal zwei Clients (PC, Handy oder Tablet)
zugelassen. Auch hier läuft ein Webserver, der eine HTML-Seite für die Konfiguration bereitstellt. Da
nur zwei Parameter konfiguriert werden, fällt die Eingabemaske wesentlich kleiner aus als die des
Gateways.
Web-basierte Konfiguration der Sensorknoten Das bereitgestellte WLAN hat die SSID „APXYZU“ wobei AP für Access Point steht und XYZU die
Modul NID, die „Network IDentification“ darstellt. Das ist eine einmalige Kennung, die aus der MAC-
ID des ESP Moduls abgeleitet wird und die auch in der Kommunikation mit dem Gateway verwendet
wird.
Das Passwort für den Zugang zu diesem WLAN lautet einheitlich „NWKONFIG“ und die IP-Adresse,
die man in den Webbrowser eingibt, ist immer 192.168.16.1.
Abbildung 7 – Webseite zur Konfiguration eines Sensormoduls
Es gibt nur 2 Parameter, die verändert werden können:
Die „Sensor Network Group Number“ gibt an, in welches SENSORNETXX sich der Sensorknoten
einloggen muss, also mit welchem Gateway es sich verbindet. Die Voreinstellung ist hier, wie beim
Gateway auch, die Gruppe 04. Hat man also nur ein Gateway, braucht hier nichts verändert werden.
Der 2. Parameter ist die Sensoradresse. Im Roco LAN Protokoll sind 2048 Sensoren möglich
(abgesehen von zusätzlichen 160 Rückmeldern am RM-Bus). Die eingestellte Adresse wird im
Modellbahnprogramm verwendet. Die voreingestellte Adresse ist 1 und nur wenn man mehr als
einen Sensorknoten hat, oder andere Rückmeldeadressen als 1 und 2 bevorzugt, muss man hier eine
[10]
andere Adresse einstellen. Im Beispiel wurde das Modul für die Rückmeldeadressen 5 und 6
konfiguriert.
Nach Drücken des „Send“ Buttons, startet der ESP neu, wobei das aufgespannte WLAN kurz
zusammenbricht und der Browser in den meisten Fällen entsprechend protestiert.
Beschriften Sie nach dem Konfigurieren das Entwicklungsmodul mit der NID. Wenn Sie mehrere
Sensormodule betreiben, ist das der beste Weg, sie auseinander zu halten.
[11]
Diagnose der Sensorknoten Genauso wie beim Gateway werden auch die Ereignisse im Sensorknoten protokolliert und seriell
über den USB-Port des Entwicklungsmoduls ausgegeben. Verbinden Sie den USB-Port des
Sensormoduls und einen PC mit einem Micro-USB Kabel. Sehen Sie im Gerätemanager nach, welcher
COM-Port für diese Verbindung angelegt wird.
Schalten Sie Ihr Terminalprogramm ein, aktivieren 115200 Baud (8 Bits, kein Paritätsbit, 1 Stoppbit)
und verbinden es mit dem gerade gefundenen COM-Port.
Starten Sie das Sensormodul (Reset-Taste) und beobachten Sie den Boot-Vorgang:
***************************************************************************************
WEMOS D1 Mini is running Sketch: _20200124_Embedded_Feedback_Module_2_Bit_Masse-Sensor
Compiled on: Jan 29 2020 at 09:01:21
20191012 Dual Channel Contact Feedback Module V4.3
(c) 2019, 2020 Gerard Clemens
Mimics a Roco 10787 or LocoNet occupancy detector over WiFi.
Connecting to SENSORNET04
. took 0.50 s
IP Address : 192.168.004.101:9999
MAC Address : 3C:71:BF:2C:AD:97
Module NID : 0xECA (dec. 3786)
Sensor Group : 04
FB-Channels : 4 - 5 (Roco Z21 protocol internal).
CAN-Bus occupancy reporting
Enter Bus 3 and Addresses 0005 - 0006 in Rocrail configuration.
Equivalent with Roco 8-bit module 1 / Port 5 through module 1 / port 6 in Z21 app.
Configure group on SSID 'AP3786' with PW 'NWKONFIG' and IP-address 192.168.016.001
***************************************************************************************
Abbildung 8 – Protokoll des Bootvorgangs eines Sensormoduls
Wir sehen, dass sich das Modul im SENSORNET04 angemeldet hat und vom z21-Gateway die Adresse
192.168.4.101 erhielt. Im Sensornetz wird für die UDP Kommunikation über WLAN der Port 09999
verwendet. Um sich mit dem Gateway zu verbinden, hat das Sensormodul ca. 0,5 s gebraucht.
Danach werden die MAC ID, die daraus abgeleitete Modul NID und die Sensorgruppe (04) angezeigt.
Die NID 3786 ist natürlich dieselbe, die wir auch schon auf der Webseite zur Konfiguration gesehen
haben.
Das Modul wurde für die (Roco internen) Rückmeldeadressen 4 und 5 konfiguriert. Anstelle der 1 –
2048 in den Modellbahnprogrammen verwendet die Roco Z21 intern im LAN Protokoll die
Nummerierung 0 – 2047. In der nächsten Zeile sehen wir, dass das Sensormodul auf die Verwendung
des LAN_CAN_DETECTOR Telegramms für die Rückmeldungen voreingestellt ist. Alternativ kann auch
das Telegramm LAN_LOCONET_DETECTOR verwendet werden. Dazu an anderer Stelle mehr.
Besonders für die Verwendung mit dem Modellbahnsteuerprogramm „Rocrail“ wird in der nächsten
Zeile erklärt, wie das Programm für die Verarbeitung dieser „LAN_CAN_DETECTOR“ Rückmeldungen
konfiguriert werden muss.
Sollte man die Rückmeldungen in der Z21 App ebenfalls sehen wollen, wird hier erklärt, was dort
einzustellen ist.
Schließlich kommt der Hinweis auf die Verwendung der Web Seite zur Konfiguration der
Sensorgruppe (und der Rückmeldeadressen).
Nun ist das Modul betriebsbereit und sendet sofort unaufgefordert den Status der beiden
Rückmelder an das Gateway:
[12]
14 B -> 192.168.004.001:09999 : LAN_CAN_DETECTOR#3786 - 0005=1 - 0E 00 C4 00 CA 0E 00 00 04 01 00 11 00 00
14 B -> 192.168.004.001:09999 : LAN_CAN_DETECTOR#3786 - 0006=1 - 0E 00 C4 00 CA 0E 00 00 05 01 00 11 00 00
Abbildung 9 – Meldungen, die vom Sensorknoten abgesetzt werden
Wir sehen, dass es sich um ein 14 Byte langes Telegramm an das Gateway 192.168.4.1 handelt, das
über Port 09999 gesendet wird. Die Syntax des Telegramms ist LAN_CAN_DETECTOR. Der Ursprung
der Nachricht ist das Modul mit der NID 3786. Für beide Rückmelder 5 und 6 wird separat eine
aktuelle Statusmeldung erzeugt. Schließlich werden die 14 Bytes der Telegramme im hexadezimalen
Format angezeigt. In Byte 4 und Byte 5 steht die NID in Hex (CA 0E -> 0x0ECA hex = 3786 dezimal).
Soweit funktioniert schon alles, auch ohne Modellbahnprogramm oder App. Das Sensormodul
produziert Information, die an das Gateway geschickt wird. Das Gateway reicht diese Information in
das PC-Netzwerk weiter, auch wenn dort (noch) keiner zuhört.
Beim Aktivieren der Modellbahnsoftware oder der App, senden diese nun auch Anfragen an das
Gateway und fangen an, die Informationen, die vom Gateway kommen, zu verarbeiten. Anfragen, die
direkt das Sensormodul betreffen, werden vom Gateway dorthin durchgereicht. Beispiel:
08 B <- 192.168.004.001:09999 : LAN_SET_BC_FLAGS - 0x070D0107 - 08 00 50 00 07 01 0D 07
07 B <- 192.168.004.001:09999 : LAN_CAN_DETECTOR - report 0xD000 - 07 00 C4 00 00 00 D0 Abbildung 10 – Meldungen der Modellbahnsoftware, die über das Gateway den Sensor erreichen
Die erste Nachricht definiert, welche Informationen auch ohne explizite Aufforderung dazu zu
„liefern“ sind. Das wird mit „Broadcast“ (BC) bezeichnet. Das ‚Broadcasten‘ trifft sowohl auf
Informationen aus dem Gateway als auch aus den Sensormodulen zu. Deswegen wurde dieses 8-Byte
Telegramm vom Gateway 192.168.4.1 in das Sensornetz durchgereicht.
Die zweite Nachricht ist 7 Byte lang und fordert alle Sensormodule dazu auf, den aktuellen Status der
Rückmeldungen zu berichten. Die UID 0xD000 bedeutet so viel wie „ALLE“. Stünde anstelle der
0xD000 die NID unseres Rückmelders, 0x0ECA, würde auch nur das Modul mit der NID 3786 den
aktuellen Status seiner beiden Eingänge berichten.
Wer mehr zu dem Roco LAN Protokoll erfahren möchte, sei die Lektüre des PDF Dokuments von der
Roco Webseite empfohlen.
[13]
Die Digikeijs DR5000 als WLAN Router
Auch wenn nun einige oder alle Rückmeldungen über WLAN unseren Modellbahn-PC erreichen,
brauchen wir nach wie vor eine Zentrale um die Loks und Weichen zu steuern.
Die Zentrale DR5000 bietet einige Eigenschaften, die sie für den Betreib mit den WLAN Rückmeldern
besonders interessant machen:
WLAN und LAN
Z21 Protokoll
Eingebauter WLAN/LAN Router
Die Konfiguration ist nicht ganz trivial und wird an dieser Stelle nachgereicht.
Abbildung 11 – Digikeijs DR5000 als Zentrale / WLAN Router
[14]
CV Programmierung der Sensorknoten
In Verbindung mit dem Modellbahnsteuerprogramm Rocrail ist eine Konfiguration der Sensorknoten
über CVs möglich. CVs können im Betrieb gelesen und geschrieben werden. Das Verfahren heißt
„POM“ (Programming On the Main track) und ist dank der direkten Verwendung des LAN Protokolls
über WLAN um Einiges schneller und komfortabler als POM über das Gleissignal und Rückmeldung
über RailCom. Das Verfahren verwendet als Adresse für die Sensorknoten die schon erwähnte 4-
stellige NID.
In Rocrail müssen im Menü „Programmieren“ nur relativ wenige Angaben gemacht werden:
Für das z21-Gateway wurde die
Schnittstelle „Z21“ definiert.
Es muss POM für Zubehördecoder aktiviert
werden (Accessory Decoder).
In den Kasten L.Addr. wird die NID
Nummer des Sensormoduls eingetragen
(hier 3786).
Alle anderen Eingaben bleiben auf 0.
Durch Klicken der ‚Get‘ Buttons wurden die
CV5 (Vhigh) = 4, CV7 (Version) = 4.3 und die
CV8 (Herstellerkennung) = 24 gelesen und
angezeigt.
Die Beschriftungen der vertikal
angeordneten ‚Get‘ und ‚Set‘ Buttons
spiegeln die standardisierten Funktionen
von Fahrzeugdecodern wider. Sie treffen
bis auf wenigen Ausnahmen überhaupt
nicht auf die CV Funktionen der WLAN-
Sensorbausteine zu.
Im Kasten CV-Box kann man links
deswegen jede CV eintragen und mit ‚Get‘
lesen, bzw. mit ‚Set‘ schreiben. Der Wert
der Variablen wird gleich links vom ‚Get‘
Button angezeigt, bzw. vor dem Schreiben dort von Hand eingetragen.
Wird ein CV Wert verändert, d.h. neu geschrieben, macht das Sensormodul automatisch einen
Neustart. Nur so können die Änderungen sofort übernommen werden. Damit ist der Sensor für
wenige Sekunden nach dem Schreiben nicht erreichbar und ‚blind‘. Ereignisse, die in der Phase
stattfinden, gehen verloren.
Achten Sie darauf, dass die Drop-Down Box oben im Fenster links der Buttons ‚Import‘ und ‚Export‘
beim Lesen und Schreiben von WLAN Sensor Variablen leer bleibt.
Je nach Art des WLAN-Sensors gibt es unterschiedliche CVs. Folgende Aufstellung zeigt nur die
grundlegenden CVs, die für die meisten Sensoren gültig sind.
Abbildung 12 – CV Programmierschnittstelle in Rocrail
[15]
CV Nummer Bedeutung, Funktion Wert und Bereich
1 Adresse des ersten Sensors (MSB) 0 (0 – 7)
5 Adresse des ersten Sensors (LSB) 0 (0 – 255)
7 Firmware Version des WLAN-Sensors 43 = 4.3
8 Hersteller-Kennzahl / Rücksetzen aller CV 24 / 0
27 Broadcast CAN = 1, LN = 2 1 (1 oder 2)
30 Betriebsart CAN = 1, LN = 2 1 (1 oder 2)
31 Sensorgruppe 4 (0 - 15)
126 Tag
127 Monat
128 Jahr (der letzten Kompilation)
CV1 und CV5 bestimmen die Adresse des ersten Sensors. Der Adress-Bereich geht von 0 – 2047
intern und entsprechend von 1 – 2048 für die realen Adressen im Modellbahnsteuerprogramm.
Die Adresse verwendet 2 Bytes. Für die ersten 256 Rückmelder reicht das Byte in CV5 und bleibt CV1
= 0. Werden Adressen verwendet, die höher sind als 256, wird auch CV1 verwendet.
Beispiel:
Sie brauchen die Meldung des ersten Rückmelders auf der realen Adresse 801 (im
Modellbahnprogramm). Das entspricht nach der Festlegung im Roco LAN Protokoll eine Interne
Adresse 801 – 1 = 800. Die 800 muss jetzt in ein Most Significant Byte MSB und ein Least Significant
Byte LSB zerlegt werden.
CV1 = 800/256 = 3
CV5 = 800 – 3 * 256 = 32
CV8 enthält die Herstellerkennung 24. Diese CV kann auch zum Rücksetzen des Sensors auf die
Grundeinstellung verwendet werden. Schreibt man eine 0 in CV8 werden alle CVs mit den Original
Vorgaben überschrieben und das Sensormodul bootet neu. Die Original Vorgaben bedeuten:
Reale Rückmeldeadresse des ersten Rückmelders = 1,
Rückmeldungen werden unter Verwendung des LAN_CAN_DETECTOR Telegramms zum
Gateway geschickt
Jede Statusänderung wird unaufgefordert gemeldet
Die Sensorgruppe ist 4
CV27 legt fest, dass Statusänderungen der Rückmelder immer unaufgefordert gemeldet werden
(Broadcast). Es gibt 2 Bits, eines für das Format LAN_CAN_DETECTOR und eines für
LAN_LOCONET_DETECTOR. Wenn kein Bit gesetzt ist, muss sich das Modellbahnprogramm darum
kümmern, dass das Sensormodul in Broadcast-Modus funktioniert. Auf diesem Mechanismus ist aber
nicht zu allen Zeiten Verlass. Deswegen ist es ratsam CV27 auf 1 zu belassen.
CV30 legt fest, wie Rückmelde-Ereignisse berichtet werden. Der voreingestellte Standard CV30 = 1
sieht die Verwendung des LAN_CAN_DETECTOR Telegramms vor. Mit CV30 = 2 wird auf
LAN_LOCONET_DETECTOR umgeschaltet. Beim vorliegenden 2-Kanal-Kontakt- oder Massesensor
macht die Verwendung von LAN_LOCONET_DETECTOR weniger Sinn. Die getesteten
Modellbahnprogramme kommen mit LAN_CAN_DETECTOR bestens zurecht.
CV31 schließlich definiert die Sensorgruppe XX. Es sind 16 Gruppen im Bereich von 0 bis 15 möglich.
Die Zahl legt fest, mit welchem z21-Gateway also mit welchem SENSORNETXX sich das Sensormodul
über WLAN verbindet.
[16]
Achtung: XX muss sich von der 3. Stelle der IP-Adresse des Routers unterscheiden. Beispielsweise
würde sich das SENSORNET00, nicht mit einem WLAN-Router mit der Adresse 192.168.0.1 im PC-
Netzwerk vertragen.
CV126 – 128 enthalten das Datum, an dem die Firmware kompiliert wurde und dienen nur zur
Information.
[17]
Welche Sensorknoten sind aktiv?
Das Gateway beantwortet diese Frage, wenn man Weiche #2048 bedient. Als Schnittstelle für die
Weiche muss das Gateway angegeben werden, also seine IP-Adresse oder sonstige ID, die Sie für das
z21-Gateway in Ihrer Modellbahnsteuersoftware angegeben haben. Wir wissen natürlich alle, dass
das z21-Gateway (noch) keine Weichen unterstützt, aber die Weichenbefehle werden dennoch in das
Sensornetz weitergereicht. Dieser spezielle Weichenbefehl für die Weiche 2048 wird jedoch vom
Gateway zusätzlich abgefangen und dazu verwendet, auf den seriellen Monitor eine Liste seiner
Clients im Sensornetz anzuzeigen.
Actual Sensor network configuration :
Sensor Network configuring WiFi Access Point . . . Ready
Sensor Network starting Soft AP . . . Ready
Sensor Network SSID : SENSORNET04
Sensor Network Password : SENSORNET
Sensor Network Gateway IP : 192.168.004.001
*************************************************************************************************
Connecting to the Client Network TP-Link_4174 using Password ********.
....... Took 3.50 s
TP-Link_4174 Network WiFi connected
Station Name (Gateway Name) : ESP-A9B3DA
Station IP Address and Port : 192.168.020.110:21105
Gateway MAC Address : 84:0D:8E:A9:B3:DA
Std. Gateway Address : 192.168.020.001
*************************************************************************************************
Sensor Group : 04
HTTP server started on SSID SENSORNET04 and IP 192.168.004.001
Stations connected to SENSORNET04 = 0
14 B <- 192.168.004.100:09999: CAN_DETECTOR#2349/0501= occ - 0E 00 C4 00 2D 09 3E 00 04 01 00 11 00 00
14 B -> 192.168.020.100:21105 : CAN_DETECTOR#2349/0501= occ - 0E 00 C4 00 2D 09 3E 00 04 01 00 11 00 00
14 B <- 192.168.004.100:09999 : CAN_DETECTOR#2349/0500= occ - 0E 00 C4 00 2D 09 3E 00 03 01 00 11 00 00
14 B -> 192.168.020.100:21105 : CAN_DETECTOR#2349/0500= occ - 0E 00 C4 00 2D 09 3E 00 03 01 00 11 00 00
Stations connected to SENSORNET04 = 2
NID = 2349 IP = 192.168.004.100
NID = 0530 IP = 192.168.004.101
Abbildung 13 – Anzeige der am SENSORNET04 angemeldeten WLAN Knoten
Die Ausgabe der Knoten ist in den letzten 3 Zeilen des obigen Screenshots dokumentiert:
Die erste Zeile zeigt, wie viele Knoten angemeldet sind.
Dann folgt für jeden Knoten eine Zeile mit der NID und der zugewiesenen IP-Adresse.
[18]
Alternativen, die Sensoradresse zu ändern Mit dem Programmiertaster
U. a. beim 2-Bit Massesensor ist auf dem Steckbrett ein Programmiertaster vorgesehen (vom Wemos
D1 Mini PIN D6 nach Masse). Drückt man diese Taste, leuchtet eine LED, die anzeigt, dass sich das
Modul nun im Programmiermodus befindet. Wird jetzt ein Weichenkommando auf die Schnittstelle
des zugehörigen z21-Gateways ausgegeben, so übernimmt das Sensormodul die Weichennummer n
im Bereich von 1 – 2048 als erste Sensoradresse. Die Adresse für den zweiten Sensor ist automatisch
n + 1.
Die LED erlischt und das Sensormodul bootet mit den neuen Adressen.
Der Vorteil dieser Methode ist, dass man die NID des Moduls nicht kennen muss und dass man ganz
bewusst nur dieses eine Modul mit einem Weichenbefehl umprogrammieren kann.
Mit dem Roco Mechanismus zur Erteilung der Moduladressen
Das Roco LAN Protokoll bietet mit dem Befehl „LAN_RMBUS_PROGRAMMODULE“ die Möglichkeit,
ein einzelnes 8-Bit Rückmeldemodul zu adressieren, also eine Nummer im Bereich von 1 bis 256
zuzuweisen. Lässt man bei der Verwendung dieses Kommandos mehrere Module gleichzeitig am
Kabel, so würden alle dieselbe Modulnummer übernehmen.
Derselbe Mechanismus kann nun auch bei unseren WLAN Rückmeldern angewendet werden.
Allerdings haben die 2-Kanal WLAN Rückmeldebausteine keine Modulnummer, sondern nur eine
Kanalnummer, sprich Adresse, im Bereich von 1 – 2048. Trägt man daher im LAN Befehl
LAN_RMBUS_PROGRAMMODULE eine Nummer ein, wird die von den WLAN Rückmeldern als
Adresse und nicht als Modulnummer interpretiert. Aber auch bei den WLAN Rückmeldern gilt, dass
alle Module, die online sind, die Nachricht interpretieren und die Nummer als Kanalnummer
akzeptieren. Wenn Sie also diese Möglichkeit verwenden, achten Sie darauf, dass nur ein
Sensormodul am betreffenden z21-Gateway aktiv ist.
Im Modellbahnsteuerprogramm Rocrail ist der Mechanismus LAN_RMBUS_PROGRAMMODULE im
Z21 Konfigurationsmenü versteckt:
Abbildung 14 – Die Programmierschnittstelle im Programm Rocrail
[19]
Mit dem Button „Program FB“ wird die 4 als Adresse auf alle aktiven WLAN Rückmeldebausteine
übertragen. Nach dem Programmieren bootet das WLAN Sensormodul neu.
Im Modellbahnsteuerprogramm Win-Digipet ist dieser Mechanismus auch implementiert.
Abbildung 15 – Die Programmierschnittstelle im Programm Win-Digipet
In der Drop-Down-Box mit der Rückmelderadresse 6, stehen die Adressen 1 – 20 zur Auswahl.
Hiermit ist ausdrücklich nicht das Modul gemeint, sondern wirklich die Adresse des Kanals, so wie sie
im Programm verwendet wird. Durch Klicken des Buttons „Rückmelderadresse programmieren“ und
Bestätigung der Rückfragen gelangt die Adresse auf das WLAN Sensormodul, das daraufhin neu
bootet und sich mit der neuen Adresse wieder beim z21-Gateway am Sensornetz anmeldet.
[20]
Abbildung 1 – Webseite zur Konfiguration des z21-Gateways - Hier die Angabe der Sensorgruppe .. 2
Abbildung 2 – Webseite zur Konfiguration des z21-Gateways - Eingabe von SSID und Passwort des
verwendeten Routers. ................................................................................................... 3
Abbildung 3 – Webseite zur Konfiguration des z21-Gateways. Eingabe der z21-Gateway- und der
Routeradresse. ............................................................................................................... 4
Abbildung 4 – Bootvorgang eines nicht konfigurierten Gateways ....................................................... 6
Abbildung 5 – Protokollierung des Bootvorgangs des z21-Gateways .................................................. 7
Abbildung 6 – Protokollierung der diversen Telegramme in der Monitorausgabe des z21-Gateways 8
Abbildung 7 – Webseite zur Konfiguration eines Sensormoduls.......................................................... 9
Abbildung 8 – Protokoll des Bootvorgangs eines Sensormoduls ....................................................... 11
Abbildung 9 – Meldungen, die vom Sensorknoten abgesetzt werden ............................................... 12
Abbildung 10 – Meldungen der Modellbahnsoftware, die über das Gateway den Sensor erreichen . 12
Abbildung 11 – Digikeijs DR5000 als Zentrale / WLAN Router ............................................................. 13
Abbildung 12 – CV Programmierschnittstelle in Rocrail ....................................................................... 14
Abbildung 13 – Anzeige der am SENSORNET04 angemeldeten WLAN Knoten .................................... 17
Abbildung 14 – Die Programmierschnittstelle im Programm Rocrail ................................................... 18
Abbildung 15 – Die Programmierschnittstelle im Programm Win-Digipet ........................................... 19