Jump to content

Zugroute wählen


MarkoP

Empfohlene Beiträge

Hallo Zusammen, 

ich überlege gerade wie man mit der Ereignissteuerung eine halbautomatische Zugsteuerung in Abhängigkeit eines manuell gewählten Zielpunktes realisieren kann.

Ich stelle mir vor, dass man mehrere Züge hat und für jeden dieser Züge per Schalter/Knopf/Signal etc. einen Zielort vorgibt. Der Zug sollte dann unter Berücksichtigung von Blockabschnitten, Abzweig- und Bahnhofseinfahrten abhängig vom Zielort eine fest vorgegebene Route zu diesem Ziel abfahren. 

Zug "A" steht an Bahnhof 6. Man wählt manuell einen Bahnhof 1, 2 oder 3 aus.
Bei Abfahrt fährt der Zug dann entsprechend des gewählten Bahnhofs Route 1, 2 oder 3 ab.

Zug "B" steht an Bahnhof 6. Man wählt manuell einen Bahnhof 2, 4 oder 5 aus.
Bei Abfahrt fährt der Zug dann entsprechend des gewählten Bahnhofs Route 2, 4 oder 6 ab.

Zug "C" steht an Bahnhof 1. Man wählt manuell einen Bahnhof 4 oder 6 aus.
Bei Abfahrt fährt der Zug dann entsprechend des gewählten Bahnhofs Route 4 oder 6 ab.

Zug "D" steht an Bahnhof 2. Man wählt manuell einen Bahnhof 3, 5 oder 6 aus.
Bei Abfahrt fährt der Zug dann entsprechend des gewählten Bahnhofs Route 3, 5 oder 6 ab.

etc.

Im Moment fehlt mir vom logischen Verständnis die Möglichkeit mit Else, Case oder dergleichen in der Ereignisverwaltung auf ein Ereignis mit verschiedenen Aktionen zu reagieren. Ich möchte aber auch nicht für jede Zugroute separate Ereignisse vorgeben, da ja dann von jedem möglichen Bahnhof etliche Abläufe geprüft werden müssten.

Die Steuerschnittstelle soll nicht benutzt werden, sondern nur die eingebaute Ereignisverwaltung.
Hat jemand eine Idee oder einen neuen Ansatz für mich.

 

Gruß
MarkoP

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo, Marko

ich hoffe ja, das Neo demnächst den Loks ein "Variablenset" o.ä. mitgibt, das würde die Steuerung vereinfachen.
Im Moment bleibt nur die Möglichkeit, vor jedem Abzweig zu testen, wo die Lok hin soll- bei zb. 4 Loks und 4 Fahrwegen sind das 16 Einträge in de Verwaltung- und das wie gesagt vor jedem Abzweig :(; also kaum machbar.

Gruss Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Marko,

dass die Antworten auf Deine Anfrage so spärlich sind, liegt sicher daran, dass diese Aufgabe nicht so einfach, wie Du sie beschreibst, gelöst werden kann. Für die nachfolgende Beschreibung habe ich ein "fiktives Liniennetz" definiert, das 9 Knotenpunkte (Bahnhöfe, mit Ziffern durchnummeriert) und dazwischen eingezeichnete Verbindungen enthält.

Routen_2b.png

Wenn ich Dich richtig verstanden habe, möchtest Du von jedem Gleis eines jeden Bahnhofs aus jeden anderen Bahnhof erreichen können, indem Du nur durch Auswahl des Zuges im Startbahnhof und Angabe des Zielbahnhofs eine vorgegebene Route zwischen beiden Bahnhöfen schalten möchtest, entlang dieser der Zug dann sein Ziel anfahren soll. Hierbei nimmst Du an, dass es für jeden Zielbahnhof "x" eine Route "x" gibt, die von den Zügen, die den Bahnhof "x" anfahren, unabhängig von deren Startbahnhöfen benutzt werden soll.

Dies kann nur funktionieren, wenn zu einem Zeitpunkt nur ein Zug fährt, und dieser dann - egal von welchem Ausgangsbahnhof aus - den Zielbahnhof "x" ansteuern soll. Dann kann man nämlich mit der Auswahl des Zielbahnhofs ALLE Routen (aus ALLEN Bahnhöfen) dorthin schalten und dann den gewünschten Zug losfahren lassen (im obigen Bild wäre Bahnhof 4 der Zielbahnhof und die roten Linien die von allen Bahnhöfen zu diesem Bahnhof führenden Routen).

Möchte man jedoch gleichzeitig mehrere Züge fahren lassen, die normalerweise nicht alle dasselbe Ziel ansteuern wollen, genügt diese Definition nicht mehr. Denn sollen beispielsweise aus Deinem genannten Beispiel Zug B aus Bahnhof 6 und Zug C aus Bahnhof 1 den Bahnhof 4 ansteuern (rote und violette Linien im unteren Bild), während Zug D aus Bahnhof 2 den Bahnhof 6 anfahren soll (blaue Linien im unteren Bild), kann die oben geschilderte Schaltung nicht mehr angewendet werden (es führen ja nun nicht mehr ALLE Routen zum selben Bahnhof).

Routen_3.png

Es müssen also die einzelnen Routen unterschieden werden können, was insbesondere für die Routen 6-8-4 und 1-3-4 gilt (die also nicht wir oben beschrieben allein durch die "4" eindeutig bestimmt werden können. Lässt man einmal verschiedene Varianten für dieselbe Start-Ziel-Konfiguration außer Acht (z.B. Route 6-7-4 anstelle von Route 6-8-4), so entspricht die Anzahl der zu berücksichtigenden (und damit in der Ereignissteuerung zu implementierenden) Routen nicht der Anzahl vorhandener Zielbahnhöfe, sondern muss mit der Anzahl der Ausgangsbahnhöfe multipliziert werden.

Führt eine Route zwischen Startbahnhof und Zielbahnhof über weitere Zwischenbahnhöfe oder andere Verknüpfungspunkte mit anderen Routen (sie unteres Bild: die Routen 1-3-4-7 und 2-3-4-8 benutzen eine gemeinsame Teilstrecke, die Routen 5-7-6 und 8-7-9 kreuzen sich im Bahnhof 7), kommen sich die Weichenschaltungen der sich tangierenden Routen "in die Quere".

Routen_4.png

Um diese Situation zu entschärfen, empfiehlt es sich daher, die Routen in einzelne Teilabschnitte, die selbst keinen "inneren" Verknüpfungspunkt mehr besitzen, zu unterteilen. Diese können dann separat behandelt werden. Damit das "Abschnitts-übergreifende" Ziel nicht verloren geht, muss allerdings die für jeden Zug festgelegte Route über den gesamten Laufweg "festgehalten", d.h. von Abschnitt zu Abschnitt weitergegeben werden. Nur so ist es möglich, beispielsweise die Züge 1-3-4-7 und 2-3-4-8 hintereinander über denselben Teilabschnitt 3-4 zu führen und im Bahnhof 4 dann wieder richtig in Richtung Zielbahnhof 7 oder 8 "auszufädeln".

Diese Beschreibung kann nur ein ganz grober Anhaltspunkt sein, was alles für die gewünschte Automatik-Schaltung zu berücksichtigen ist. Hier fehlt noch komplett, dass ein Bahnhof ja normalerweise mehrere Bahnsteiggleise hat, aus denen ausgefahren oder in die - falls frei - eingefahren werden kann. Hierdurch wird die Realisierung (die ich mir selbst auch erst noch erarbeiten müsste) noch etwas komplexer.

Ich hoffe, dass ich mit diesen Zeilen halbwegs verdeutlichen konnte, dass ein relativ allgemein gültiges Konzept für solche Bahnhof-zu-Bahnhof-Verbindungen nicht "ganz schnell"
zu realisieren ist.

Viele Grüße
BahnLand

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Bahnland,

danke für deine komplexen Ausführungen.
Ich weiß das es sehr komplex ist und in meiner Wunschvorstellung ist es auch noch kombiniert mit einer Blocksteuerung, so dass jeder Zug (mehrere gleichzeitig) nicht unbedingt jeden Bahnhof, aber eben nach Auswahl verschiedene Bahnhöfe ansteuern kann und dabei durch die Blocksteuerung Kollisionen verhindert werden.

Das käme dann für mich einer richtigen Modellbahn am nächsten, bei der man ja auch teilweise in den Zugbetrieb eingreifen kann.

Aber weil es eben so komplex ist, hatte ich ja schon gesagt, dass ich schmerzlichst ein "else" oder "case" vermisse, das würde die Abfragen etwas vereinfachen, da man dann an jedem Abzweig für jeden Zug lediglich das Ziel per Bedingung abfragen müsste.

Gruß
MarkoP

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...

Hallo Marko,

evtl. wäre es auch möglich mit einer Art "Wegfindung" den Zug an sein Ziel zu leiten.

Ein Set statischer Variablen enthalten die binärcodierte Information aller möglichen Routen. Diesen Wert kannst du dann einer Variablen zuordnen welche der jeweilige Zug als "Zielinformation" benötigt.

Die Variable mit der Zielinformation sorgt dafür, dass eine "Weichenstrasse" geschaltet wird, aber erst dann, wenn der Zug den jeweiligen Abzweig, sprich Weiche, erreicht hat.

Angenommen, auf seinem Weg muss der Zug 5 Weichen passieren, bis er an seinem Ziel angelangt ist. Dazu setzt du pro Weiche ein Bit, mit "0", oder "1", je nach Richtung.

Weiche 1 => Bit 1, Weiche 2 => Bit 2, usw.

Das bedingt natürlich, dass du an jeder Weiche prüfen musst in welche Richtung diese geschaltet sein muss, wenn sie vom Zug erreicht wird.  Es ist eine weitere Variable nötig, welche die bereits passierten Weichen mitzählt.

Eine Blocksicherung wäre von dieser "Wegfindung" nicht betroffen, sie könnte davon losgelöst aufgebaut werden.

 

Nur mal so gedacht Grüße

-ernesto-

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...