Jump to content

Kreuzungstraße mit teils Zufallsprinzip


Empfohlene Beiträge

Hey Leute, bin am Verzweifeln Was die Ereignisse angeht.
Hab hier mal eine Kleine Zeichnung angefertigt.

Also das was keine Problem ist:

Von A nach C
Von B nach C

funktioniert einwandfrei.

Was auch noch funktioniert ist

V nach Y
W nach Y

Aber ich möchte das die Züge die von W kommen sich durchs Zufallsprinzip den Weg nach Y oder X suchen ohne das sich irgendwelche Züge in die Quere kommen bzw. das sie auch am Signal jeweils halten wenn auf abschnitt Y bzw. X ein Zug steht.

Sprich:
V nach Y
W nach Y
W nach X

Ich weiß nicht ob ich das gut beschrieben habe aber ich hoffe ihr könnt mir helfen.
 

Kreuzung.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Neumann_d87,

im Prinzip ist Dein Problem ähnlich zu jenem, das in dieser Betragsfolge beschrieben wurde. Schau Dir mal die dortigen Beiträge an. Vielleicht hilft Dir das weiter. Leider werde ich diese Woche nicht mehr dazu kommen, Dein Problem näher anzuschauen. Aber prinzipiell benötigst Du einen "Lock", um die Überkreuzung der Züge "unfallfrei" regeln zu können. Wenn Du die oben genannte Beitragsfolge "verinnerlicht" hast, sollte Dir das gelingen.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Neumann_d87,

ich habe mich nun doch entschlossen, den Serialisierungs-Mechanismus für Deine Strecken-Konfiguration schon heute hier kurz zu beschreiben:

Übersichtsbild mit markierten Kreuzungsweichen und markierter Weiche.jpg

Auf Deinem Schemabild sind mehrere Objekte zu erkennen, deren Passage durch konkurrierende Züge serialisiert werden muss:

1. Streckenabschnitt Y: Einfahrt aus den Streckenabschnitten V und W
2. Streckenabschnitt X: Einfahrt aus den Streckenabschnitten V und W
3. Streckenabschnitt C: Einfahrt aus den Streckenabschnitten A und B

4. Kreuzungsweiche KW1: Zu befahren aus den Streckenabschnitten V und W
5. Kreuzungsweiche KW2: Zu befahren aus den Streckenabschnitten V, W und A
6. Weiche W3: Zu befahren aus den Streckenabschnitten A und B

Es werden "Locks" (Lock-Variablen) für die Streckenabschnitte C, X und Y sowie für die Kreuzungsweichen KW1 und KW2 benötigt. Die Weiche W3 wird bereits durch den Lock für den Streckenabschnitt C "geschützt". Die Lock-Variablen seien wie folgt benannt (Vorschlag):

SL-C   Lock für Streckenabschnitt C
SL-X   Lock für Streckenabschnitt X
SL-Y   Lock für Streckenabschnitt Y
KL-1   Lock für Kreuzungsweiche KW1
KL-2   Lock für Kreuzungsweiche KW2

Wenn ein Zug aus V oder W nach X weiterfahren möchte, muss er die Lock-Variablen SL-X, Kl-1 und KL-2 in der hier angezeigten Reihenfolge belegen und freigeben:

Lock SL-X frei: Lock SL-X belegen
Lock SL-X erfolgreich belegt und Lock KL-1 frei: Lock KL-1 belegen
Lock KL-1 erfolgreich belegt und Lock KL-2 frei: Lock KL-2 belegen
Lock KL-2 erfolgreich belegt: Losfahren
Kreuzungsweiche KW1 passiert: Lock KL-1 freigeben
Kreuzungsweiche KW2 passiert: Lock KL-2 freigeben
Streckenabschnitt X verlassen: Lock SL-X freigeben

Ist einer den benötigten Locks nicht frei, muss die Freigabe des Locks durch den aktuell belegenden Zug abgewartet werden, um anschließend vom eigenen Zug belegt werden zu können (Warten auf "Lock-Variable wird frei"). Erst wenn die Lock-Variable erfolgreich auf den eigenen Wert gesetzt werden konnte (nach dem Setzen 1/2 Sekunde warten und nochmals überprüfen, ob der gesetzte Wert immer noch vorhanden ist - so wird ein mögliches "gleichzeitiges" Überschreiben durch einen "Konkurrenten" erkannt), kann der obige "Freischalt-Zyklus" für den Fahrweg fortgesetzt werden.

Der Mechanismus ist sowohl für die Züge aus Streckenabschnitt V als auch für jene aus Streckenabschnitt W zu implementieren.

Wenn ein Zug aus V oder W nach Y weiterfahren möchte, entfällt die Reservierung des Locks KL-2, da die Kreuzungsweiche KW2 dann nicht befahren wird, und anstelle des Strecken-Locks SL-X muss der Lock SL-Y belegt werden. Der Freischalt-Zyklus reduziert sich dann auf die Aktionen

Lock SL-Y frei: Lock SL-Y belegen
Lock SL-Y erfolgreich belegt und Lock KL-1 frei: Lock KL-1 belegen
Lock KL-1 erfolgreich belegt: Losfahren
Kreuzungsweiche KW1 passiert: Lock KL-1 freigeben
Streckenabschnitt Y verlassen: Lock SL-Y freigeben

Auch dieser Mechanismus ist sowohl für die Züge aus Streckenabschnitt V als auch für jene aus Streckenabschnitt W zu implementieren. Welcher der beiden Mechanismen (der für die Strecke X oder für die Strecke Y) tatsächlich zu durchlaufen ist, hängt jeweils davon ab, welches Ziel von dem Zug aus Strecke V oder W ausgewählt wurde.

Wenn ein Zug aus A nach C weiterfahren möchte, muss er die Lock-Variablen SL-C und KL-2 belegen. Der Freischalt-Zyklus sieht folgendermaßen aus:

Lock SL-C frei: Lock SL-C belegen
Lock SL-C erfolgreich belegt und Lock KL-2 frei: Lock KL-2 belegen
Lock KL-2 erfolgreich belegt: Losfahren
Kreuzungsweiche KW2 passiert: Lock KL-2 freigeben
Streckenabschnitt C verlassen: Lock SL-C freigeben

Bei der Fahrt von B nach C wird die Kreuzungsweiche KW2 nicht befahren, sodass auch deren Lock KL-2 nicht belegt werden muss. Der Freischalt-Zyklus für den Fahrweg reduziert sich damit auf

Lock SL-C frei: Lock SL-C belegen
Lock SL-C erfolgreich belegt: Losfahren
Streckenabschnitt C verlassen: Lock SL-C freigeben

Zum Thema "Locks" möchte ich Dich auf den Abschnitt Realisierung eines Lock-Mechanismus mittels einer Variable der Ereignisverwaltung im Wiki verweisen.i

Viele Grüße
BahnLand

 

Bearbeitet von BahnLand
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...