Jump to content

Fahrstrassen in LUA auflösen


Empfohlene Beiträge

In LUA kann ich eine Fahrstrasse F aktivieren mit

F.autoActivate = true

F.active=true

Macht man das mehrmals, wird die Fahrstrasse vorgemerkt (durch autoActivate) und dann jeweils wieder aktiviert, sobals sie frei wird.

Eine Fahrstrasse wird automatisch aufgelöst, wenn ein Zug ihr Ende passiert. Sie lässt lässt sich aber auch (z.B. wenn der Zug im Bahnhof  anhält und vielleicht sogar die Richtung wechselt)  in der EV auflösen durch

F.active =  false

Mir ist nicht ganz klar, was dann passiert:

a. Die Fahrstrasse wird aufgelöst, weitere Reservationen bleiben erhalten.

b. Die Fahrstrasse wird aufgelöst und alle weiteren Reservationen ebenfalls gelöscht.

Mir scheint, dass b ausgeführt wird. Gibt es eine Möglichkeit, die Fahrstrasse in LUA aufzulösen ohne dass die Reservationen gelöscht werden?

Vielen Dank für eine erhellende Antwort

Bummelzug

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Stunden schrieb Bummelzug:

Mir scheint, dass b ausgeführt wird

Mir scheint, dass weitere Reservationen erhalten bleiben (also a) und zwar unabhängig davon, ob die FS automatisch oder via EV desaktiviert wird (und sowieso egal, ob mit Lua-Code oder graphisch). Das war jetzt leider auch keine wirklich

vor 4 Stunden schrieb Bummelzug:

erhellende Antwort

aber vielleicht verrät uns @Neo ja, wie er genau vorgeht. Das würde mich nämlich auch interessieren.

Beste Grüße

Phrontistes

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Bummelzug,

meine Versuche ergeben...

vor 6 Stunden schrieb Bummelzug:

b. Die Fahrstrasse wird aufgelöst und alle weiteren Reservationen ebenfalls gelöscht.

ich habe mir beim Versuch noch FS.state ausgeben lassen...
Eine aktive FS hat als state=3 (FS ist aktiv und gesperrt)
Eine aktive FS (state=3) die reserviert ist, geht mit dem Betreten des letzten Gleiskontaktes in auf state=1 (sie wird also als nicht aktiv gesetzt, ist allerdings noch gesperrt, da sich noch ein oder mehrere Fahrzeuge auf der FS befinden (ergibt sich durch das Betreten des Gleiskontaktes), erst wenn das letzte Fahrzeug den Gleiskontakt verlassen hat, gilt die Strecke als frei und die Reservierung kann aktiv werden.

FS.active=false setzt FS.state unmittelbar auf 0 (FS ist inaktiv), somit wurde auch die Reservierung gelöscht.

Theoretisch konnte man natürlich über eine Variable die Aktivierungen / Deaktivierungen der FS gegeneinander auszählen... macht aber nicht wirklich glücklich.

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Stunden schrieb Bummelzug:

Mir scheint, dass b ausgeführt wird. Gibt es eine Möglichkeit, die Fahrstrasse in LUA aufzulösen ohne dass die Reservationen gelöscht werden?

Das ist korrekt, wird eine Fahrstraße aufgelöst, werden auch die Reservierungen gelöscht. Etwas anderes würde keinen Sinn ergeben, weil eine aufgelöste Fahrstraße ansonsten sofort wieder aktiviert wird, falls eine Reservierung noch ansteht (und alles ist frei). Dann hätte man sich das Auflösen sparen können.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich dachte genau dafür ist die Reservierung (Vormerkung) eingeführt worden, eine Fahrstraße nach deren Auflösung sofort wieder zu aktivieren (weil eben ein weiterer Zug bereits auf Einfahrt in die noch belegte Fahrstraße wartet). Ich meine sogar, auf meinen Wunsch hin wurde das eingeführt (weil sonst ein Blockstreckensystem nicht funktionierte).

Gruß Eggu

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank für alle Antworten, das klärt einiges.

Vielleicht muss ich auch noch den Grund für die Frage angeben, und wieso es Sinn machen kann, die gleiche Fahrstrasse sofort wieder zu aktivieren. Ich betrachte folgende Situation:

Eine Strecke führt über ein Einfahrtssignal SE und eine Weiche W auf zwei Bahnhofsgleise G1 und G2 mit Ausfahrtsignalen S1 und S2. Die Fahrstrassen sind F1, von SE nach S1 und F2, von SE nach S2. Die Züge reservieren die jeweils gewünschte Fahrstrasse via einen Gleiskontakt unterwegs nach SE. Ich betrachte drei Züge: Zug1 reserviert F1 und soll auf Gleis 1 halten. Zug2 reserviert nachher Fahrstrasse F2 und soll via Gleis G2 überholen. Der dritte Zug Zug 3 reserviert wieder die Fahrstrasse F1 nach Gleis G1.  Solange nun Zug1 hält, ist F1 besetzt und auch die Fahrstrasse F2 blockiert, weil die Einfahrtsweiche gesperrt ist. Also löse ich die Fahrstrasse F1 auf, wenn Zug1 auf Gleis G1 anhält. Zug2 kann nun durchfahren. Zug3 müsste eigentlich warten, bis Gleis G1 wieder frei ist. Aber weil F1 aufgelöst ist, ist eben auch die Reservation von Zug3 futsch, der bleibt also am Einfahrtssignal stehen.

Da es so ist, muss ich nun  halt meine automatische Zugsteuerung überarbeiten. Vielleicht reicht es schon, anstatt die Fahrstrasse zu löschen nur die Einfahrtsweiche zu entsperren?

nochmals vielen Dank für alle Erläuterungen, von

Bummelzug

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 6 Stunden schrieb Eggu:

Ich dachte genau dafür ist die Reservierung (Vormerkung) eingeführt worden, eine Fahrstraße nach deren Auflösung sofort wieder zu aktivieren

Im Prinzip, ja.

Und genau so geschieht es ja auch, wenn die Fahrstraße bei Erreichen des Ziels aufgelöst wird.

Wenn man aber die FS manuell oder per EV deaktiviert, liegt ein Sonderfall vor. Dann möchte man ganz offensichtlich keine aktive FS haben. Da wäre es kontraproduktiv, wenn eine alte Vormerkung einem in die Suppe spuckt und dieselbe FS gleich wieder aktiviert.

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb Bummelzug:

Ich betrachte drei Züge: Zug1 reserviert F1 und soll auf Gleis 1 halten. Zug2 reserviert nachher Fahrstrasse F2 und soll via Gleis G2 überholen.

Dann ist die FS für den ersten Zug zu früh angefordert worden. Wenn die FS für Zug 1 eingelaufen ist, kann ihn kein anderer Zug mehr überholen. Weder in der Realität, noch im 3D-Modellbahn Studio. Wenn Zug 2 als erstes einfahren soll, musst du seine FS auch zuerst aktivieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe gerade keinen PC zur Hand, aber ich meine, dass die Fahrstraßensteuerung so läuft, dass die F2 freigegeben wird, sobald der Zug auf F1 die Weiche W vollständig passiert hat. Schon mal ausprobiert?
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Bummelzug,

das funktioniert so wie Du Dir das vorstellst, wenn Du

  • nicht manuell oder via EV eingreifst, sondern das Programm machen lässt und
  • Du Dir darüber im Klaren bist, dass Du nicht Fahrstraßen für einen bestimmten Zug stellst, sondern eben Fahrstraßen und dass Du das deshalb nicht zu früh machen darfst.
Am 4.6.2024 um 13:53 schrieb Bummelzug:

Also löse ich die Fahrstrasse F1 auf

Nicht machen. Das macht das Programm selbst.

Am 4.6.2024 um 13:53 schrieb Bummelzug:

Die Züge reservieren die jeweils gewünschte Fahrstrasse via einen Gleiskontakt unterwegs nach SE.

Die Frage ist, wie früh das "unterwegs" geschieht. Wenn man die Fahrstraße erst wählt, wenn der Zug auf SE angekommen ist, ist alles ok.

Hier eine kleine Musteranlage. Der rote und der gelbe Triebwagen befahren Gleis 1 (oben), der weiße Gleis 2 unten. Die Abfahrt aus Gleis 1 musst Du natürlich manuell durch aktivieren der FS "1 out" veranlassen.

202406045 Bummelzug Fahrstraßen.mbp

Beste Grüße

Phrontistes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @prinz: Ja, so funktioniert das. Schon wieder etwas gelernt!

und Hallo @Phrontistes: Danke für das Beispiel. Also werde ich nie mehr eine Fahrstrasse "von Hand" auflösen, sondern die Fahrstrassenprogrammierung machen lassen.

Das letzte Probelm ist nun nur noch, wie ein Pendelzug zu behandeln ist, der nie am Ausfahrtssignal ankommt und  somit das Ende der Fahrstrasse nicht erreicht, weil er mittig auf dem Bahnhofgleis hält und dann in die Gegenrichtung auf einem anderen Gleis weiterfährt. Als Lösung sehe ich eine kurze Fahrstrasse nur bis nach der Einfahrtsweiche, die dann auch bei der Einfahrt aufgelöst wird. Dann bleibt aber das Problem, dass ein weiterer Zug einfahren könnte (die Einfahrt ist ja wieder frei, aber das Gleis noch besetzt). Also muss ich wohl oder übel selbst bestimmen, ob das Gleis frei ist. Bisher habe ich mich da auf die Fahrstrassenlogik verlassen. Andererseits ist das etwas, was ich sowieso vorhatte, damit die Züge jeweils auf ein freies Gleis einfahren. So schnell geht die Arbeit an der Programmierung der Anlage also nicht aus. Und es wird wohl weitere Fragen geben.

Freundliche Grüsse

Bummelzug

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Minuten schrieb Bummelzug:

Als Lösung sehe ich eine kurze Fahrstrasse nur bis

... zu dem Punkt, an dem dieser Zug anhalten soll.
Eine Fahrstraße darf auch an einem Kontakt enden.

Bearbeitet von Goetz
Schreibfehler korrigiert
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Bummelzug,

mit einem

vor 1 Stunde schrieb Bummelzug:

Pendelzug

der in ein Stumpfgleis fährt, mittig anhält und wieder zurückfährt hatte ich mir so lange einen abgebrochen, bis ich kurzerhand eine boolsche Variable eingeführt habe, aus der Folgezug ersehen kann, ob das Gleis besetzt ist oder nicht. Vielleicht kann man das mit Fahrstraßen ja hinbekommen (eher nicht bei mittigem Anhalten), aber diese Versuche habe ich abgebrochen, nachdem das mit der Variablen gut funktioniert.

Beste Grüße

Phrontistes

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb prinz:

Hallo Bummelzug ,

lass die Fahrstraße an dem Gleiskontakt zum mittigen Halt enden. Solange der Zug noch auf den Gleisen steht, wird kein anderer Zug dorthin freigegeben. 
Grüße, Wolfgang

und weil die rückwärtige Fahrstraße (Ausfahrt) zurück vermutlich erst am rückwärtigem Ausfahrt-Signal (A) beginnt, du aber (weil mittig) weit davor stehst,

überbrückst du diese Strecke indem du dich an dem Signal (A) "registrierst"

und wenn dieses von der Fahrstraße (Ausfahrt) geöffnet wird läßt du dich (durch die Registrierung) vom Signal (A) starten

Grüße vom Liftboy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Bummelzug,

vor 3 Stunden schrieb Bummelzug:

Das letzte Probelm ist nun nur noch, wie ein Pendelzug zu behandeln ist, der nie am Ausfahrtssignal ankommt und  somit das Ende der Fahrstrasse nicht erreicht, weil er mittig auf dem Bahnhofgleis hält und dann in die Gegenrichtung auf einem anderen Gleis weiterfährt.

schau Dir bitte einmal die Demo-Anlage mit der Content-ID 8DE83A85-E844-482C-AD3C-E2C18633EFCA an.

Fahrstraen-Demo-Anlage.thumb.jpg.3d13265b95cfc291548e978455791110.jpg

Dort habe  ich genau dieses Problem gelöst, ohne die Fahrstraße "unnötig" zu verkürzen.

Die Anlage besteht aus 3 miteinander verbundenen identischen Bahnhofsmodulen, welche jeweils über ein eigenes Gleisbildstellpult gesteuert werden.

Gleisbildstellpult.thumb.JPG.f07496ffb521cae032ea76d0cb302cda.JPG

Über den roten Button links oben wird der jeweilige Bahnhof "in Betrieb" gesetzt (aktiviert). Es müssen mindestens 2 Bahnhöfe "aktiv" sein, damit ein Zug den einen aktiven Bahnhof verlassen und den anderen aktiven Bahnhof ansteuern kann. Interessant wird es allerdings erst, wenn alle 3 Bahnhöfe aktiviert sind. In der blauen Button-Gruppe rechts oben kann über den linken Button festgelegt werden, ob die ankommenden Züge in diesem Bahnhof bei einem geplanten Halt vorne am Ausfahrsignal oder in der Mitte des Bahnsteigs anhalten sollen. Züge, die keinen Halt geplant haben, aber trotzdem vor dem geschlossenen Signal anhalten müssen, fahren immer bis zum Signal vor.

Einfahrstrae.thumb.jpg.475db1f8cdac9d7a2ff811c47bf85cc1.jpg

Solange der Zug (hier von links nach rechts in das mittlere Bahnhofsgleis einfahrend) das Ende der Fahrstraße am Ausfahrsignal rechts nicht erreicht hat, bleibt die Fahrstraße aktiv. Erst beim Erreichen des das Ende der Fahrstraße kennzeichnenden Gleiskontakts wird die Fahrstraße automatisch deaktiviert - bleibt aber weiterhin belegt, solange sich der Zug noch im Gleisbereich dieser Fahrstraße befindet.

Wenn der Zug nun jedoch in der Bahnsteigmitte anhalten soll und damit das Ende der Fahrstraße nicht mit dem planmäßigen Halt des Zuges erreicht wird, kann man sie beim Anhalten des Zuges über die Ereignisverwaltung explizit deaktivieren. Man führt also nur jene Aktion aus, die automatisch erfolgt wäre, wenn der Zug das Ende der Fahrstraße erreicht hätte. Deren Belegung bleibt also auch hier erhalten, bis der Zug den Fahrstraßen-Abschnitt definitiv verlassen hat. Hierbei spielt es insbesondere keine Rolle, in welche Richtung der Zug die Fahrstraße verlässt. Man kann also mit diesem Verfahren den Zug auch wenden lassen, ohne das Ende der Fahrstraße erreicht zu haben.

Ereignisdefiniton.thumb.JPG.246ca57d49290633c96e5454d6486d65.JPG

Die hier gezeigte Ereignisdefinition deckt genau den Fall des Zughalts in der Bahnsteigmitte ab. Wenn der Zug in der Bahnsteigmitte anhalten soll (obere Mehrfachbedingung erfüllt), wird nach dem Stoppen aller angetriebenen Fahrzeuge im Zugverband die Fahrstraße explizit deaktiviert, da der Zug beim Anhalten das Ende der Fahrstraße nicht erreicht.

Eine ausführliche Beschreibung des Bahnhofsmoduls und der Anlage einschließlich der verbauten Fahrstraßen befindet sich hier.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @BahnLand,

nur der Vollständigkeit halber und um auf Ausgangsproblem von @Bummelzug zurückzukommen:

vor 29 Minuten schrieb BahnLand:

wird ... die Fahrstraße explizit deaktiviert,

was dazu führt, dass auch eventuelle Reservierungen dieser Fahrstraße gelöscht werden. Wäre das manuelle Deaktivieren vielleicht auch bei Deiner Anlage überflüssig, wenn die Fahrstraße am Mittekontakt endet, wie von Wolfgang @prinz vorgeschlagen? Ich überblicke nicht, ob das unbeabsichtigte Nebeneffekte hätte.

Beste Grüße

Phrontistes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Phrontistes,

vor einer Stunde schrieb Phrontistes:

Wäre das manuelle Deaktivieren vielleicht auch bei Deiner Anlage überflüssig, wenn die Fahrstraße am Mittekontakt endet

wenn der Zug beim Halt vor dem Signal (was in dieser Anlage ja auch möglich ist), so kurz ist, dass er die in der Bahnsteigmitte endende Fahrstraße verlassen hat, kann der nächste Zug in das Gleiseinfahren, obwohl der erste Zug noch vor dem Signal steht. Das muss unbedingt verhindert werden.

Viele Grüße
BahnLand

Bearbeitet von BahnLand
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @prinz und @liftboy: Ja so geht es. Ich wusste nicht, dass man eine Fahrstrasse aufgelöst wird, wenn der Zug mittig auf dem Kontakt ankommt, weil ich der falschen Meinung war, dass sie erst aufgelöst wird, wenn der Zug sie verlässt.

@Goetz zeigt mit seiner hübschen Beispielanlage, dass dies auch funtioniert.

Und hallo @BahnLand: Das ist eine tolle Anlage mit einer raffinierten Steuerung. Durch die automatische Auswahl der Fahrstrasse auf freie Gleise wird wohl verhindert, dass durch das Löschen der reservierten Fahrstrasse ein Zug stehen bleibt, wie in meinem Problembeschrieb.

Und Hallo @Phrontistes und @BahnLand: Wenn die Fahrstrasse für durchfahrende Züge (auch solche die halten) bis zum Ausfahrtsssignal geht und für solche die wenden nur bis zur Gleismitte, könnte kein weiterer Zug auf das Gleis einfahren, solange dort noch der vordere Zug ist, auch wenn man die Fahrstrasse nicht explizit desaktiviert. Dünkt mich jedenfalls.

Viele Grüsse

Bummelzug

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Minuten schrieb Bummelzug:

Ich wusste nicht, dass man eine Fahrstrasse aufgelöst wird, wenn der Zug mittig auf dem Kontakt ankommt, weil ich der falschen Meinung war, dass sie erst aufgelöst wird, wenn der Zug sie verlässt.

Eine Fahrstraße sichert den voraus liegenden Abschnitt. Deshalb wird sie aufgelöst, wenn die Zugspitze den Endpunkt erreicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb Goetz:

Eine Fahrstraße sichert den voraus liegenden Abschnitt. Deshalb wird sie aufgelöst, wenn die Zugspitze den Endpunkt erreicht.

Macht eigentlich nur dann Sinn, wenn das Zugende den Endpunkt erreicht. Denn der Zug blockiert doch in seiner vollen Länge einen Teil der Fahrstraße, der nachfolgende Zug hat dann doch gar keine Sicherung im voraus liegenden Abschnitt, @Goetz. Oder sehe ich das falsch?

Walter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Klartexter,

vor 4 Minuten schrieb Klartexter:

der nachfolgende Zug hat dann doch gar keine Sicherung im voraus liegenden Abschnitt

Neo löst das dadurch, dass eine Fahrstraße nicht aktiviert werden kann, wenn sich im zu sichernden Abschnitt noch ein Zug befindet.

Beste Grüße

Phrontistes

Nachtrag: Wenn man ausschließlich mit Fahrstraßen arbeitet und weder von Hand herumfährt noch Signale oder Weichen von Hand stellt, arbeitet Neos FS-Steuerung zuverlässig so, dass es keine Unfälle gibt.

Bearbeitet von Phrontistes
Nachtrag
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 30 Minuten schrieb Klartexter:

Oder sehe ich das falsch?

Ich fürchte, ja.

Eine FS reserviert und sichert den ganzen Abschnitt ab einem Signal. Sie garantiert, dass sich in diesem Abschnitt kein anderes Rollmaterial befindet, dass alle Weichen korrekt gestellt sind und dass keine andere Fahrstraße, die einen Konflikt bedeutet, aktiviert werden kann. Wenn der Zug, für den diese Fahrstraße eingelaufen ist, Freie Fahrt erhält, kann er den Abschnitt bis zum Endpunkt sicher befahren. Der Endpunkt ist in aller Regel das Signal, welches den folgenden Abschnitt deckt.

Wenn die Spitze des Zuges das Ende der FS erreicht hat, hat die Fahrstraße ihren Dienst getan und wird nicht mehr benötigt. Sie kann auch nicht erneut einlaufen, weil der Zug selbst noch immer ein Hindernis darstellt. 

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...