Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03660.jsonl.gz/1788

Hallo Zusammen
Ich habe heute Mittag mal die verschiedenen Bahnhöfe vom Fremo Regionaltreffen in Uzwil analysiert und eine für mich sinnvolle Konfiguration definiert, die ich Euch nicht vorenthalten will…
Grundsätzlich ist es so, dass Elekdra alle XML Dateien liest, die durch das Start-Verzeichnis im Startup-Script vorgegeben werden. Das bedeutet zweierlei:
- Es können beliebig viele XML Dateien vorliegen
- oder es kann alles in einer einzigen XML Datei vorliegen
XML-Dateien
XML Dateien sind aus sogenannten “TAG’s” aufgebaut. Diese separieren die einzelnen Elemente und haben einen “Start-” und eine “End-Tag”. Diese müssen immer “richtig” geformt sein. Also jedes Start-Tag muss auch ein End-Tag haben. Tags können auch geschachtelt werden, allerdings muss dann die richtige Sequenz beachtet werden.
Hier mal ein Beispiel für eine Tag-Sequenz, die eine Weiche definiert:
<elekdra.turnout>
<name>W1</name>
<hastrafflock>true</hastrafflock>
<selflocking>false</selflocking>
<loconet>
<lnaddress>151</lnaddress>
<protocol>sw_req1</protocol>
<inverted>false</inverted>
<resend_sec>30</resend_sec>
</loconet>
</elekdra.turnout>
Das erste Start-Tag lautet:
<elekdra.turnout>
Das zugehörtige End-Tag lautet:
</ elekdra.turnout>
Dazwischen gibt es einen Loconet-Block sowie drei Tags, die den “Tournout” beschreiben.
Konfigurations-Dateien (XML)
Diese kleine Beispiel zeigt, warum es nicht sinnvoll ist, alles in eine einzige Datei hinein zuschreiben. Die XML-Datei würde sehr lang und sehr unübersichtlich werden. Daher habe ich folgende Struktur definiert (die Präfixe aus Nummern sorgen dafür, dass die Reinfolge richtig ist):
100_Bahnhofsname_Configuration.xml
Beinhaltet alle Elekdra-Konfigurationen wie Weichen, Gleise, Fahrziele, Signale, Blocksignale und Sensoren ohne eine konkrete Anordnung auf der Grafischen Ebene. Hier geht es nur um die Definition der Grundbausteine unseres Bahnhofs.
200_Bahnhofsname_Graphics.xml
Beinhaltet alle Elui-Konfigurationen, die Grundbausteine aus der 100er Datei sowie deren Anordnung und Ausrichtung in der Elui-Grafik.
300_Bahnhofsname_Baseroutes.xml
Beinhaltet alle Basis-Fahrstrassen aus den Grundbausteine aus der 100er Datei sowie deren Grundstellung und Schutzstellungen, aus denen sich die Logik (Verschlussplan) des Bahnhofs ergibt.
400_Bahnhofsname_Routes.xml
Beinhaltet alle Rangier- oder Verschub-Fahrstrassen aus den Grundbausteine aus der 300er Datei sowie deren Grundstellung und Schutzstellungen, aus denen sich die Logik (Verschlussplan) des Bahnhofs ergibt.
500_Bahnhofsname_ZNA.xml
Konfiguration des Zugnummern-Systems.
600_Bahnhofsname_TCP_TCP_Block.xml
Konfiguration des Steckenblocks von und nach anderen Bahnhöfen.
Ich gehe für diese Konfigurationsbeschreibung davon aus, dass bei Euch auf dem Rechner ein lauffähiges Elekdra und Elui gibt und Ihr irgendeinen Bahnhof als “Demo” zu laufen gebracht habt.
Grundsätzliche Informationen für Elekdra gibt es hier:
http://fremo-stw.sourceforge.net/elekdra/index_e.php
Die sogenannte User-Dokumentation gibt es hier:
http://fremo-stw.sourceforge.net/elekdra/userdocs/index.php
Die obige Struktur der Dateien mit dem Zähler-Präfix entspricht zufällig auch dem, was in der “Doku” zu lesen ist… Lediglich in abgewandelter Form. Die Doku gibt es lokal auf Eurem PC hier zu finden:
c:\Elekdra\doku\
darunter die CONFIGURATION_ELEKDRA_4_X_X.txt
und die ELEKDRA_USER_GUIDE.html
Beide Dateien helfen schon mal. Leider wird einem erst beim Stöbern in den Dateien klar, dass es ab der Version 4.0.0 eine Grundlegende Änderung zu der von mir beschriebenden Art des XML-File lesens gegeben hat. Leider hat noch niemand die Online Doku nachgezogen oder die in einer Nachvollziehbarena Art geschrieben.
Wir wollen ja einen konkreten Bahnhof in Elekdra / Elui entwickeln. Dazu werden wir nach und nach die obigen Dateien erstellen und sinnvoll Ablegen. Unter:
c:\Elekdra\stations\
erstellen wir einen Ordner, der unsere Konfigurationen enthalten wird. Bitte KEINE Leerzeichen oder sonstwelche Sonderzeichen verwenden. Da Elekdra JAVA verwendet, hat es das nicht so gerne… . Beim mir sieht es so aus:
C:\elekdra\stations\Bhf_Bennewitz-Wichern
oder
C:\elekdra\stations\Bahnhofsname
Unter c:\Elekdra\stationsscripts müssen wir zunächst mal eine Start-Batch für unseren Bahnhof erstellen.
C:\elekdra\stationscript\Elekdra_Bhf_Bennewitz-Wichern.bat
mit folgendem Inhalt
@ECHO == STARTE ELEKDRA BENNEWITZ und WICHERN ==
cd..
java -jar .\elekdra\10-0-1\Elekdra.jar -d .\stations\Bhf_Bennewitz-Wichern
pause
Der erste Start – wenn XML Dateien vorhanden sind, sieht dann so aus:
Bevor wir jetzt anfangen die Dateien für einen Bahnhof zu schreiben, wäre es gut zu Wissen, welche Komponenten denn in etwa beteiligt sind und wie diese Angeordnet und nummeriert oder benannt sind.
Komponenten in Elekdra
Hier mal ein simples Beispiel von einem Streckenblock, der alle Komponenten beinhaltet:
Es sind auf dem Bild zwei Bahnhöfe “A” und “B” zu erkennen. Je eine Weiche und Signale. Dazu kommt noch ein Gleiskontakt je Bahnhof sowie die Bahnhofsgleise 1 und 2 (von unten gezählt) sowie das Streckengleis (Block) zwischen “A” und “B”. Nicht sichtbar sind die logischen Elemente wie die Fahrstrassen. Folgende Zugfahrten sind denkbar:
- Von “A” Gleis 1 nach “B” Gleis 1
- Von “A” Gleis 1 nach “B” Gleis 2
- Von “A” Gleis 2 nach “B” Gleis 1
- Von “A” Gleis 2 nach “B” Gleis 2
- Von “B” Gleis 1 nach “A” Gleis 1
- Von “B” Gleis 1 nach “A” Gleis 2
- Von “B” Gleis 2 nach “A” Gleis 1
- Von “B” Gleis 2 nach “A” Gleis 2
Jede Weiche hat eine Grundstellung (Grade oder Abgelenkt) und je nach Zugfahrt müssen die Weichen anders gestellt werden. Ausserdem gibt es noch den Sicherheitsaspekt. Es darf nur ein Zug auf der Strecke sein. Wenn also ein Zug aus “A” nach “B” unterwegs ist, darf keines der Ausfahrt Signale in “B” auf Fahrt gehen. Der Bahnhof “A” verschliesst mit dem Block “AB” die Ausfahrt von “B”. Und natürlich umgekehrt.
Genau auf die Bereitstellung der Komponenten zur Lösung des scheinbar kleinen Bahnhofs mit Strecke zielt die Struktur von Elekdra. Neben der Hardware im Rechner und dem Zusammenspiel mit der Modelbahnhardware stellt Elekdra folgende Elemente zur Verfügung (in Klammern die Englischen Begriffe):
- Weichen (Turnout)
- Gleis (Track)
- Signale (Signal)
- Gleiskontakte (Sensor)
- Logische Ebenen = Fahrstrassen (Route)
- Logische Ebenen = Block (Block)
Ein Block kann aus einem oder mehreren Weichen, Gleisen und Signalen bestehen. Gleiches gilt für die Fahrstrasse. Block ist die freie Strecke zwischen “A” und “B” plus die “Schutzstrecke”. Eine Fahrstrasse kann z.B. auch zum Rangieren aus “A” Gleis 1 auf die freie Strecke sein. Damit ist dann auch einleuchtend, warum es wichtig ist, die Grundpositionen der Elemente zu kennen, die aktuelle Stellung zu wissen und die logischen Abhängigkeiten voneinander zu definieren.
Beispiel “Wagenübergabestelle Bennewitz & Wichern”:
Schaut man sich die Symbol-Skizee der WÜst von B&W an, habe ich mal alle Gleise durchnummeriert.
Gleis 1 ist eigentlich das Streckengleis. Von Oben nach Unten geht es dann weiter bis Gleis 7. Gleis 7 geht dann nachher in den Industrieanschluss, der aber im Moment noch nicht betrachtet wird.
Wie Weichen W1 bis W7 haben mit dem ROTEN Strich ihre Grundstellung markiert. Ob die jetzt so sinnvoll ist, werde ich in den entsprechenden Foren zur Diskussion stellen. Richtig ist sicherlich, dass W1 und W2 ihre Grundstellung so haben, dass kein Ausfahrt auf die Strecke möglich ist, ohne zwei Weichen falsch zu legen. Je nach Epoche (hier SBB III) müsste hier zwischen W1 und W2 vielleicht noch eine Gleissperre. Auf jeden Fall muss W1 und W2 (der Linke Teil) mit einem Schlüssel gesichert werden. Der Schlüssel muss um Bedienbahnhof “A” oder “B” hinterlegt sein und die korrekte Position der Weiche muss an den Bedienbahnhof zurückgemeldet werden.
Auf die Besonderheiten zwischen Block “SBB” und Block “DB” gehe ich vielleicht später ein, wenn ich es verstanden habe. Erstmal will ich das Bild von oben in Elekdra realisieren – schön Schritt für Schritt zum Mittippen…
Jetzt stellt sich die Frage, wie es weiter gehen kann. Ich habe mir verschiedene Bahnhöfe angeschaut. Und dabei folgendes festgestellt. Die Dateien lassen sich faktisch nur “zusammen” entwickeln und man muss sich vorher auf Papier (ist wohl das einfachste) einiges klar machen:
- Wie heissen die Weichen?
- Wie heissen die einzelnen Gleisabschnitte
- Wie heissen die Ziele (Targets) der einzelnen Fahrstrassen und wo liegen die?
- Wie heissen die Signale (auch wenn sie nur virtuell da sind) und wo liegen sie?
- Wie heissen die Signale an den Blockstellen oder Bahnhöfen, die mit im Segment vor oder hinter uns liegen?
- Welche Sensoren für Weichen und Gleisbesetztmeldung gibt es?
- Welche Fahrstrassen-Segmente (Base Route) gibt es von wo nach wo?
- Welche Fahrstrassen (aus Base Routes) gibt es von wo nach wo?
Also ohne eine Art Bahnhofsdatenblatt geht hier schnell mal eben nichts mehr. Machen wir uns nichts vor – wir bilden hier die Anlagenautomation eines Bahnhofs in Annäherung an das Original nach. Dazu kommen noch so Dinge wie
- Achszähler
- Weichenlagemelder (Sensoren)
- Verschluss – JA / NEIN
Um die Dinge möglichst einfach zu machen, werde ich in den nächsten Tagen planen, wie die die WÜst aus Elekdra Perspektive aussehen soll und dass dann mal zu Papier bringen und die einzelnen “Objekte” darin einmalen. Einen Scann gibt es dann zu gegebener Zeit.
LG,
Axel
STATUS: DRAFT
Grundlagen und Tool-Links: