neumann_d87 Geschrieben 12. August 2016 Teilen Geschrieben 12. August 2016 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. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BahnLand Geschrieben 12. August 2016 Teilen Geschrieben 12. August 2016 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 More sharing options...
BahnLand Geschrieben 12. August 2016 Teilen Geschrieben 12. August 2016 (bearbeitet) Hallo Neumann_d87, ich habe mich nun doch entschlossen, den Serialisierungs-Mechanismus für Deine Strecken-Konfiguration schon heute hier kurz zu beschreiben: 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 12. August 2016 von BahnLand Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden