Jump to content

Konkurrenz von Zügen bei Bahnhofsausfahrt


Derrick

Empfohlene Beiträge

Hallo liebe Community,

Die nachstehende Anfrage habe ich bereits am vergangenen Sonnabend ins Forum gestellt. Bei meinen früheren Hilferufen erhielt ich i.d.R. nahezu postwendend Antworten, Hinweise etc.. Diesmal habe ich noch keinen Kommentar erhalten, was mir darauf hinzudeuten scheint, daß mein Beitrag niemandem besonders aufgefallen ist, weil er als Wiederaufnahme einer - erledigten - Thematik erschienen ist. Daher erlaube ich mir, die Anfrage unter einem neuen Thema zu wiederholen. Also, bitte nicht als "Mahnung" verstehen!

"Ich möchte hiermit wieder einmal das Wissen der EV-Experten anzapfen.

Vor einigen Wochen habe ich eine EV-Schaltung entwickelt, die das selektive Anhalten und Abfahren
unterschiedlicher Zugtypen aus dem mehrgleisigen Bahnhof regeln. Ich will hier nicht verschweigen, daß ich dazu dankenswerter Weise auch einige Hinweise von Goetz erhielt.

Diese Regelung läuft seither auch recht zuverlässig. Allerdings hat sie einen Schönheitsfehler. Wenn zwei auf parallelen Gleisen wartende Züge mehr oder weniger gleichzeitig das Abfahrtssignal erhalten, wird zwar nur eine Fahrspur freigeschaltet und der Zug in Gang gesetzt. Aber auch der Nachbarzug wird gestartet und erst vom Ausfahrtsignal gestoppt. Wenn die Fahrstraße des ersten Zuges wieder geschlossen und das dortige Ausfahrsignal geschlossen wird, startet auch der zweite Zug endgültig. Das ist zwar nicht tragisch, sieht aber irgendwie nicht gut aus.

Um dies zu ändern, habe ich eine lange Reihe von Versuchen gemacht, um den gleichzeitigen Start zu verhindern. In meinem beigefügten Aufbau "Ausfahrautomatik 1a" sind die bisher besten Ergebnisse verarbeitet. Läuft meistens auch eine ganze Weile gut, bis die Abfahrtzeiten wieder gleich oder nahezu gleich sind. Dann bleibt in der Regel der zuletzt gestartete Zug liegen und reagiert weder auf Freischaltung des Ausfahrsignals noch der entsprechenden Fahrstraße.

Wer hat die Idee, wie ich das am besten regeln kann? Möglichst nicht zu kompliziert und ohne Lua. Es würde mir vielleicht schon helfen, wenn ich den Zug über Freigabe der Fahrstraße wieder starten könnte. Da liegt die Schwierigkeit, daß dies offenbar nicht läuft, wenn ich den Befehl auf den Gleiskontakt oder das Kontaktgleis beschränke. Wähle ich aber "alle Gleise und Gleiskontakte", bewegen sich alle Züge auf der Anlage.

Noch ein Problem ist bei dieser Testanlage aufgetaucht. Es fällt sicherlich auf, daß die beiden ICE-Züge nur mit je einem Triebkopf fahren. Das hat den Grund, daß ich es nicht geschafft habe, den Antrieb in dem jeweils hinteren Kopf dauerhaft auszuschalten. Nach längstens einer Runde war er wieder an und beeinflußte in unzulässiger Weise Brems- und Startverhalten des Zuges."

Vielen Dank im voraus für Eure Vorschläge.

Viele Grüße Derrick

Ausfahrautomatik1a.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Derrick,

dein Hilfegesucht hatte ich zwar gelesen. Aber dann war ich mit anderen Dingen zu beschäftigt und es geriet leider in Vergessenheit.
Und mir fehlt auch aktuell die Energie, ein Konzept für dich zu erarbeiten.

Ich schreibe das nur, damit du nicht denkst dass es persönliche Gründe gäbe warum ich auf dein Posting nicht geantwortet habe.

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Derrick,

Das Problem bei gleichzeitigem Start zweier Fahrstraßen kannst Du lösen, indem du bei den Ereignissen zu den "Gleiskontakt mittig 4/5" dem Fahrzeug keine Geschwindigkeit zuweist. Dies geschieht ja schon, wenn die Fahrstraße aktiviert wird (Fahrstraße Ost 4/5 Aus wird aktiviert), also die Fahrstraße erfolgreich auf aktiv geschaltet wurde. So wird dann vermieden, dass ein Zug vom mittigem Halt bis zum Signal vorzieht, falls die Fahrstraße nicht erfolgreich aktiviert werden konnte.

Es gibt wahrscheinlich noch mehr Lösungen hierzu (z.B. Zug nur starten, wenn Signal schaltet, etc.). Es hängt halt immer davon ab, was man erreichen möchte und wieviel Aufwand an EV man sich dazu zumutet.

Viele Grüße,
  Wolfgang

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello @Derrick
I looked a while at your layout. 
"Gleiskontakt wird ausgelöst Gleis 4"  last action.
Hallo Derrick, 
Ich habe mir Ihr Layout eine Weile angesehen. 
"Gleiskontakt wird ausgelöst Gleis 4" letzte Aktion.

Derrick1.thumb.jpg.71f2536cbc7ac53f83ecf183c82a4130.jpg
This one is unconditional. I saw that this one activates this route when it should not. Make it conditional. 
"Gleiskontakt wird ausgelöst Gleis 5"  last action. The same, should be conditional.
Diese ist ohne Bedingung. Ich habe gesehen, dass diese Route aktiviert wird, obwohl sie es nicht sollte. Machen Sie sie zur Bedingung. 
"Gleiskontakt wird ausgelöst Gleis 5" letzte Aktion. Das Gleiche, sollte bedingt sein.

If not, this happens : ---- Wenn nicht, passiert Folgendes:

Derrick2.thumb.jpg.8f47326ef47cda49a37c6574f69c96fa.jpg
 The trains do not touch each other, ICE 3 Triebkopf continues, the other ICE is blocked before the track switch.
Die Züge berühren sich nicht, ICE 3 Triebkopf fährt weiter, der andere ICE ist vor der Weiche blockiert.

Does it help you ? Hilft es Ihnen?  Kind regards, Grüße, Herman

Bearbeitet von Herman
translation
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello @Derrick,  it is always necessary to activate a route under condition if there are concurrent routes like here. But since in my example both trains have the keyword IC, there must be another devil to look after. I'm still searching. 
Hallo @Derrick, es ist immer notwendig, eine Strecke unter Bedingung zu aktivieren, wenn es wie hier konkurrierende Strecken gibt. Da aber in meinem Beispiel beide Züge das Schlüsselwort IC haben, muss es einen anderen Teufel geben, den man beachten muss. Ich bin noch auf der Suche.

Grüße, Herman

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello @Derrick , think I found it.
You have to carefully look at the nesting conditions. ( a condition followed by a condition and so on )
Even if the keyword is IC, the route is first set to blocked, waiting for release. ( OK fine ) But then the event handler , wich unconditional releases the route again, and the error occurs.  The event handler slips to the action with the red arrow. I am sure now, because in the analyser I put a print before this action.

Hallo @Derrick , ich glaube, ich habe es gefunden.
Du musst dir die Verschachtelungsbedingungen genau ansehen. ( eine Bedingung gefolgt von einer Bedingung und so weiter )
Auch wenn das Schlüsselwort IC ist, wird die Route zuerst auf blockiert gesetzt und wartet auf die Freigabe. ( OK gut ) Aber dann gibt der Eventhandler, der bedingungslos die Route wieder frei, und der Fehler tritt auf. Der Eventhandler rutscht zu der Aktion mit dem roten Pfeil. Ich bin mir jetzt sicher, weil ich im Analyser einen Druck vor diese Aktion gesetzt habe.

 

Derrick1.thumb.jpg.2b12b3bfd131c9a49ed39f1eb1a0c396.jpg
So the place  of this action is also wrong, you should not come here, if it is an IC or other keyword you handled before.
Der Ort dieser Aktion ist also auch falsch, Sie sollten nicht hierher kommen, wenn es sich um ein IC oder ein anderes Schlüsselwort handelt, das Sie zuvor bearbeitet haben.

Does it help ? Sorry my language is Dutch, I hope I did explain it well ? Regards, Herman (BE)

Ist das hilfreich? Sorry, meine Sprache ist Niederländisch, ich hoffe, ich habe es gut erklärt? Mit freundlichen Grüßen, Herman (BE)

Bearbeitet von Herman
translation
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 3.8.2022 um 11:10 schrieb prinz:

Hallo Derrick,

Das Problem bei gleichzeitigem Start zweier Fahrstraßen kannst Du lösen, indem du bei den Ereignissen zu den "Gleiskontakt mittig 4/5" dem Fahrzeug keine Geschwindigkeit zuweist. Dies geschieht ja schon, wenn die Fahrstraße aktiviert wird (Fahrstraße Ost 4/5 Aus wird aktiviert), also die Fahrstraße erfolgreich auf aktiv geschaltet wurde. So wird dann vermieden, dass ein Zug vom mittigem Halt bis zum Signal vorzieht, falls die Fahrstraße nicht erfolgreich aktiviert werden konnte.

Es gibt wahrscheinlich noch mehr Lösungen hierzu (z.B. Zug nur starten, wenn Signal schaltet, etc.). Es hängt halt immer davon ab, was man erreichen möchte und wieviel Aufwand an EV man sich dazu zumutet.

Viele Grüße,
  Wolfgang

 

Hallo Wolfgang,

danke für Deinen Beitrag. Die Erkenntnis mit der doppelten Geschwindigkeitszuweisung hatte ich in einer "Update-Version" meines Gleisplanes bereits verarbeitet. In meiner aktuellen Fassung gibt es je Fahrstraße nur einen Befehl, der alle Alternativen abdeckt.

Im übrigen scheint es, dass ich jetzt auf dem richtigen Wege bin. Vielleicht noch ein paar Schwachpunkte korrigieren. Aber als Laie der EV ist man auf das Prinzip "Try and fail" angewiesen. Und manchmal hat man dabei auch Glück.

Viele Grüße

Derrick

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Derrick,

Ich finde es gut, dass du nicht einfach vorgefertigte Lösungen "blind" übernimmst, sondern dich wirklich mit den Themen auseinandersetzt. Dauert länger - hält aber auch länger.

Mach weiter so. Du weisst, wenn du irgendwo nicht weiter kommst, gibt es hier im Forum genug Leute, die dir gerne weiterhelfen.

Viele Grüße
 Wolfgang

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello Herman,
Hello to all who followed this subject,

I think I've got it! My present edition of the EV seems to run correctly. I enclose copy of it for track 4 representative for all the 4 tracks concerned. Also enclosed command for starting the trains by activating the lane (Fahrstraße).

I had still to make some considerable corrections compared with the commands in my first edition published at this place. You advised me to adhibit conditioning also for the third kind of trains. I did so. But as a matter of fact conditioning in the selecting command leads to malfunction: It unables a train that is due to start to reserve a free lane when the concurrent train on the neighbour track is given a free lane earlier. So, it will not start at all before I release it manually. Therefore, I have cancelled conditioning at all in the selection part and just keep it in the command "a lane is activated". That was the deciding solution and I am glad and proud to find it.

If you have additional questions to this subject feel free to ask.

Also enclosed a screenshot of my layout in panorama view.
 

 

Ashampoo_Snap_2022.08.07_17h51m28s_001_.jpg

Ashampoo_Snap_2022.08.07_17h52m22s_002_.jpg

Frankenstein Panorama.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello @Derrick, Thank you for explaining. And very glad it works for you, and in your own way, that is very important. And it looks a splendid layout (y).
Hello everybody. Personally I do not find it a good idea to unconditional activate a route. ( fahrstraße ). But since I'm not an expert, just an enthousiast user of the studio, can an expert here give  his opinion ? Thanks a lot. 
Kind regards, H.

Hallo @Derrick, vielen Dank für die Erläuterung. Und sehr froh, dass es für Sie funktioniert, und auf Ihre eigene Weise, das ist sehr wichtig. Und es sieht nach einem großartigen Layout aus .(y)
Hallo zusammen. Ich persönlich finde es keine gute Idee, eine Fahrstraße bedingungslos zu aktivieren.  Da ich aber kein Experte bin, sondern nur ein begeisterter Nutzer des Studios, kann mir hier ein Experte seine Meinung sagen ? Vielen Dank schon mal. 
Mit freundlichen Grüßen, H. Übersetzt mit www.DeepL.com/Translator (kostenlose Version)

 

Bearbeitet von Herman
minor language correction
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello @Herman

I'm not an expert too. But in my layouts there is a difference between routes (fahrstrasse) behind block signals and (e.g.) station signals. If a train approaches to a block signal, the route will be activated unconditionally, because the train has to follow this route. When the train starts is part of the MBS.

In a station it is another situation. The stop time of a train is used for a timer. If the timer ends i check, if the next route is available and - if positive - the route is activated. If not the timer is restarted for a short period and then checked again.

My experience with that is very well.
Kind regards, Wolfgang

Ich bin auch kein Experte. Aber in meinen Anlagen unterscheide ich z.B. zwischen Fahrstraßen nach Blocksignalen und Bahnhofssignalen. Wenn sich ein Zug einem Blocksignal nähert, wird die dahinterliegende Fahrstraße ohne Bedingung aktiviert. Der Rest liegt dann beim MBS.

Im Bahnhof ist eine andere Situation. Die Haltezeit wird über einen Timer gesteuert. Läuft dieser ab, prüfe ich, ob die nächste Fahrstraße aktiviert werden kann und - falls positiv - wird diese aktiviert. Im anderen Fall wird der Timer erneut für eine kurze Zeit gestartet und beim Ablauf wieder diese Prüfung durchgeführt.

Meine Erfahrungen hiermit sind sehr gut.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello Herman,

I really worked long and hard on finding my present solution. My experiences with automatically opening routes say that MBS is really reliable with that.

Again and again I am confronted with situations that the command is not fulfilled. After searching I find reasons like a train having stopped at the next signal and not been released due to a wrong contact at the following signal, or a switch is blocked for unknown reason. Or simply a train arriving has blocked a route just before.

So, from my point of view further conditioning is not necessary. I absolutely agree to Prince's comment.

Kind regards, Derrick

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb prinz:

Im Bahnhof ist eine andere Situation. Die Haltezeit wird über einen Timer gesteuert. Läuft dieser ab, prüfe ich, ob die nächste Fahrstraße aktiviert werden kann und - falls positiv - wird diese aktiviert. Im anderen Fall wird der Timer erneut für eine kurze Zeit gestartet und beim Ablauf wieder diese Prüfung durchgeführt.

Hallo Wolfgang,

diese Wiederholungs-Timerschaltung würde ich mir gern einmal anschauen. Schon oft hatte ich das Problem, daß ein Zug "einschlief", weil ein Startbefehl abgelaufen war.

Viele Grüße

Derrick

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Derrick,

Du kannst Dir z.B. meine "Anlage Seetal" anschauen (ID 054C66A9-BA5C-4730-82E5-2576449F0C23 ).
Die relevanten Ereignisse findest Du in der EV unter ->Bahnverkehr -> Bahnhof (und auch ->Allgemein). Hier die relevanten Elemente für die Timerschaltung:

  • Unter Timer findest du von mir vordefinierte Timer für jedes Bahnhofssignal. Der Timername (und auch die Timerdauer) sind als Variablen beim jeweiligen Signal eingetragen.
  • Das Ereignis "Anmeldung Bahnhofssignal" wird durch einen Gleiskontakt am Anfang jedes Bahnhofsgleises ausgelöst. Diese haben alle das Schlagwort "Anmelden an Bahnhofssignal", so dass man dieses Ereignis nicht für jedes Signal neu erstellen muss. Zur Unterscheidung ist das Signal als Variable beim Gleiskontakt eingetragen.
    Zunächst wird dort das (benutzerdefinierte) Ereignis "Allg-Anmeldung Signal" aufgerufen, da dies auch für alle anderen Signaltypen (z.B. Blocksignal) relevant ist. Dort wird ggf. geprüft, ob mehrere Fahrstraßen zur Verfügung stehen und die für den aktuellen Zug passende ausgewählt. Am Ende sollte immer eine Fahrstraße beim Signal eingetragen sein.
    Danach wird der für das Signal zuständig Timer gestartet (Timer erweitert, Name = Gleiskontakt -> Variable Signal -> Variable Timername) mit der spezifischen Dauer (Gleiskontakt -> Variable Signal -> Variable Timerdauer)
  • Für jeden Timer gibt es ein Ereignis "Timer ... endet". Dort können noch nur für dieses Signal wichtige Sachen abgehandelt werden. Standard ist aber z.B. "Timer HBF Gleis1 endet". Da auch hier wieder für alle Signale dasselbe gilt, wird das benutzerdefinierte Ereignis "Timer Bahnhof endet" aufgerufen mit dem spezifischen Signal als Parameter (ich bin halt faul und schreibe nicht gerne Ereignisse doppelt, die sich nur durch einen Wert unterscheiden). In diesem Ereignis "Timer Bahnhof endet" werden zunächst Aufrufe ignoriert, wenn kein Fahrzeug beim Signal registriert ist. Dann wird geprüft, ob die Fahrstraße verfügbar ist. Falls ja, wird diese aktiviert (mit Vormerkung der Anmeldung), falls nein, wird der Timer erneut gestartet mit einer kurzen Zeit (hier 5 Sekunden). Nach Ablauf dieser Zeit tritt wieder das Ereignis "Timer ... endet" ein und die Prüfungen werden erneut vorgenommen.

Schau dir auch (vorher auf Planungsmodus umschalten und die Ebene "unsichtbar" sichtbar machen )die Variablen der Signale (z.B. S-HBF-Gleis1) und der Anmeldekontakte (z.B.  Anmeldung S-HBF Gleis1) an. Hier die Legende dazu:

Anmeldekontakt:
  Schlagwort  "Anmelden an Bahnhofssignal"  -> löst das Ereignis "Anmeldung Bahnhofssignal" aus
  Objekt "Signal" (z.B. S-HBF-Gleis1)  -> unterscheidet diesen Kontakt von anderen. Das Objekt wird im Ereignis "Anmeldung Bahnhofssignal" ausgewertet.

Signal:
  Schlagwort "Bahnhofssignal"  -> hierunter sind alle Bahnhofssignal zusammengefasst und getrennt von anderen (z.B. Blocksignal)
  Bahnsteig rechts -> Gibt an, ob der Bahnsteig auf der rechten (=true) oder linken (=false) Seite liegt (zum Türen öffnen / schließen)
  Fahrstrasse = Aktuell zu aktivierende Fahrstrasse
  Fahrstrassen = Liste möglicher Fahrstrassen. Zu jeder Fahrstraße ist hier ein Ziel eingetragen, welche mit dem des Zuges abgeglichen wird.
  Timerdauer = Anzahl Sekunden für die Timerfunktion (Fahrzeit von Registrierung bis tatsächlichem Halt mit einrechnen)
  Timername = Name des Timers im Ereignismodul Bahnverkehr -> Bahnhof
  Triebfahrzeug = Aktuell registrierter Zug oder leer.

Ich hoffe, die Angaben helfen Dir weiter. Wenn nicht: einfach fragen.

Viele Grüße,
  Wolfgang

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Wolfgang,

erst einmal herzlichen Dank, insbesondere auch für Deine ausführlichen Erläuterungen. Ich werde mir das in der nächsten Zeit mal in Ruhe anschauen. Scheint, da könnte für mich noch was dabei sein. Ich melde mich.

Herzliche Grüße

Derrick

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo Wolfgang,

schon seit ein paar Tagen habe ich vor, mich ausführlicher zu melden. Hier denn also:

Ich habe mir Deine Seeanlage gründlich angeschaut. Eine sehr schöne Anlage, detailliert und einfallsreich ausgeführt und mit unheimlich viel Action. Gefällt mir zum Zuschauen! Hat mich auch zu Verbesserungen in meiner eigenen Anlage angeregt, z.B. die Rundumhintergründe, die auf der Ansichtsseite durchsichtig sind. Diese Möglichkeit war mir tatsächlich noch gar nicht aufgegangen. Das viele Wasser hat dann bei mir auch den Bau eines Kanalhafens ausgelöst, den ich zwar schon länger im Hinterkopf , an den ich mich aber noch nicht herangetraut hatte. Das Ergebnis gefällt mir.

Natürlich habe ich auch "unter die Röcke geguckt". Dadurch ist mir auch klar geworden, wie Du das Nachfassen bei geschlossenen Signalen geregelt hast. Du hast Deine Zeitsteuerung offenbar voll auf Timer aufgebaut. Ich selbst arbeite überwiegend mit Verzögerungen. Wenn ich Deine Timer übernehmen wollte, müßte ich  mein System aufwendig umbauen. Da aber die jüngsten Experimente nach meiner obigen gelungenen Neuregelung gezeigt haben, daß das Hängenbleiben von Zügen nicht mehr das Problem ist, denke ich, daß ich es derzeit beim aktuellen Stand belasse. Immerhin weiß ich aber jetzt, wie man einer solchen Situation begegnen kann. Dafür besten Dank.

Ich könnte mir denken, daß ich mir noch öfter Anregungen für Lösungen aus Deiner Anlage hole. Sie steht mir ja weiterhin zur Verfügung.

Viele Grüße Derrick

Blick auf den Hafen.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Derrick,

Danke für Deinen Kommentar. Auch ich habe aus bestehenden Anlagen viel gelernt sowie aus Tutorials und Wiki-Einträgen. Meine erste veröffentlichte Anlage war ein Chaos an Ereignissen.
Ich freue mich, dass Du Dir die Zeit nimmst, anderen „unter die Röcke zu schauen“. Ich denke, dabei lernt man sehr viel.

Ich wünsche Dir weiterhin viel Spaß mit MBS und Erfolg beim Bau Deiner Anlagen.

Wenn Fragen aufkommen: Du weißt, wohin Du Dich wenden kannst.

Viele Grüße, Wolfgang

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