jloos Geschrieben 17. Juli Teilen Geschrieben 17. Juli Hallo, gibt es eine Möglichkeit, den Status einer Fahrstraße festzustellen? Wenn ein Fahrstraße aktiviert wird, aber blockiert ist möchte ich nach einer bestimmten vergangenen Zeit darauf reagieren. Gruß Jürgen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 17. Juli Teilen Geschrieben 17. Juli Ja Jürgen, die gibt es. Der Status einer Fahrstraße ist eine Eigenschaft. mögliche Werte und ihre Bedeutung findest du, wenn du zu Lua wechselst: 0 - Fahrstraße ist inaktiv 1 - Fahrstraße wurde angefordert, ist aber blockiert 2 - wird aktiviert und wartet darauf, dass Weichen etc. ihre Stellung einnehmen 3 - ist aktiv und verriegelt Viele Grüße Götz Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jloos Geschrieben 17. Juli Autor Teilen Geschrieben 17. Juli Oh Super, das ist ja einfacher als ich befürchtet habe. Danke @Goetz Gruß Jürgen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jloos Geschrieben 18. Juli Autor Teilen Geschrieben 18. Juli Hallo, ich bin im Moment mit meinem Latein am Ende. Ich möchte ja überwachen, ob eine Fahrstraße zu lange blockiert ist und habe dieses Script geschrieben. Allerdings habe ich nicht bedacht, dass der Zustand "Blockiert" ja das Ereignis nicht auslöst. Der anhängende Code wird also ausgelöst und gleich wieder beendet. Das auslösende Ereignis sind 4 aktivierte Fahrstraßen. --[[ steht eine FS längere Zeit auf "Blockiert", wird eine Ersatz-FS eingetragen --]] if not deferredCall then if route.state == 1 then defer(60, "Verzögerung") end elseif deferredCall == "Verzögerung" then if route.state == 1 then local Signal = route.waypoints[1] local LokOBJ = Signal.variables["Zug"] LokOBJ.variables["nächste FS"].autoActivate = true LokOBJ.variables["nächste FS"].active = false LokOBJ.variables["alte FS"] = LokOBJ.variables["nächste FS"] LokOBJ.variables["nächste FS"] = route.variables["ErsatzFS"] LokOBJ.variables["nächste FS"].autoActivate = true LokOBJ.variables["nächste FS"].active = true end end Hat jemand eine Idee? Gruß Jürgen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 18. Juli Teilen Geschrieben 18. Juli Hallo @jloos, Versuch es doch mal mit einem Timer, der bei „blockiert“ aktiviert wird und nach Ablauf der eingestellten Zeit diese Überprüfung wiederholt. VG, Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jloos Geschrieben 18. Juli Autor Teilen Geschrieben 18. Juli Was ist denn dann das auslösende Ereignis? Dann muss ich dieses Script in alle Fahrstraßen auslösende Ereignisse einfügen. Ja, vielleicht das Script als BDE aufrufen wenn eine dieser FS aufgerufen wird. Ich probiere es mal. So stoßen Vorschläge eigene Denkanstöße an, Danke Gruß Jürgen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Atrus Geschrieben 18. Juli Teilen Geschrieben 18. Juli Hallo Jürgen, soweit ich das überblicke wäre das dann Timer endet bzw. läuft ab. LG Atrus Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Atrus Geschrieben 19. Juli Teilen Geschrieben 19. Juli Am 18.7.2024 um 13:54 schrieb jloos: Was ist denn dann das auslösende Ereignis? Dann muss ich dieses Script in alle Fahrstraßen auslösende Ereignisse einfügen. Ja, vielleicht das Script als BDE aufrufen wenn eine dieser FS aufgerufen wird. Hallo Jürgen, hast du dein Problem schon gelöst? Irgendwie interessiert mich das schon. Die Fahrstraßen sollten sich eigentlich ganz automatisch regeln. Wenn eine Fahrstraße "zu lange" blockiert ist, würde das für mein Verständnis heißen, dass wiederum eine andere (kreuzende) das im Moment verhindert, bzw. das betroffene Gleis(e) noch nicht frei ist (sind). Oder eine betroffene Fahrstraße noch nicht korrekt aufgelöst wurde. Das jetzt auch noch mit (Timern und so) zu überwachen wäre ziemlich rechenintensiv. Angenommen ein Timer endet und die Bedingungen sind noch immer nicht erfüllt, so müsste der ja wieder von vorne starten usw. Aber vielleicht hast du ja schon eine andere Lösung dazu gefunden. LG Atrus Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 19. Juli Teilen Geschrieben 19. Juli (bearbeitet) vor 8 Minuten schrieb Atrus: Angenommen ein Timer endet und die Bedingungen sind noch immer nicht erfüllt, so müsste der ja wieder von vorne starten usw. Hallo Atrus, nein, so wie ich das verstanden habe, soll der Zug nach Ablauf der Frist eine alternative Route nehmen. Als Beispiel: Zug soll im Bahnhof auf Gleis X einfahren. Die Einfahrt auf Gleis X ist blockiert. Nach Ablauf der eingestellten Zeit des Timers wird geprüft, ob die FS immer noch blockiert ist. Wenn das so ist, dann soll der Zug auf ein anderes Gleis einfahren. VG, Hawkeye Bearbeitet 19. Juli von Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Atrus Geschrieben 19. Juli Teilen Geschrieben 19. Juli Hallo zusammen @Hawkeye OK, dann habe ich das etwas falsch verstanden. Aber das macht das Ganze auch nicht einfacher. Wenn die alternative Route jetzt auch besetzt wäre was dann... Wird das Monitoring von Fahrstraßen, die eigentlich in Signalen hinterlegt sind und sich sowieso gegenseitig regeln sollten dann mit weiteren Timern wiederholt oder habe ich wieder einmal alles komplett verstanden, wenn ja, dann sorry dafür. LG Atrus Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 19. Juli Teilen Geschrieben 19. Juli vor 11 Minuten schrieb Atrus: Wenn die alternative Route jetzt auch besetzt wäre was dann... Um das beurteilen zu können, müssten wir die Anlage und Situation kennen, warum die FS anscheinend zu lange blockiert bleibt. Bleibt also nur die Frage so zu beantworten, wie sie verstanden wurde. Egal ob die Lösung zielführende ist oder nicht.😉 VG, Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Atrus Geschrieben 19. Juli Teilen Geschrieben 19. Juli vor 36 Minuten schrieb Hawkeye: Um das beurteilen zu können, müssten wir die Anlage und Situation kennen, warum die FS anscheinend zu lange blockiert bleibt. Bleibt also nur die Frage so zu beantworten, wie sie verstanden wurde. Egal ob die Lösung zielführende ist oder nicht.😉 Hello, das sehe ich auch so. Aber vielleicht könnte das helfen. Bei mir sind alle Fahrstraßen in den betroffenen Signalen hinterlegt. Das können auch mehrere sein... in diesem Fall sechs aber es könnten auch zwölf sein. Das hängt ganz von den Bedingungen ab, wann die Straßen aktiviert werden sollen. Ich habe das früher im Forum schon einmal versucht als mögliche Option zu bedenken. Das hat mit lua natürlich schon etwas zu tun aber nicht direkt für den Benutzer, der die graphische Ebene im Moment noch bevorzugt, so wie ich. Mit lua kenne ich mich leider noch nicht aus. Aber das Ergebnis sollte doch am Ende wohl dasselbe sein. lua hin oder her... Zitat: Hallo zusammen und Gruß anEggu sorry wenn ich mich da jetzt auch noch dazu melde aber das ist ein perfektes Beispiel für meinen Zugang zur Vermeidung von solchen Konflikten. Also ich nenne das für mich ab jetzt "Dual-Security". Also eine Zwei Faktor Abfrage. Klingt am Anfang vielleicht etwas übertrieben, steigert aber das Benutzen von Variablen enorm finde ich. Also z.B. beim Betreten eines Kontaktes frage ich ab, ob die Variable, die in der Lok hinterlegt ist, einen gewissen Wert besitzt. Um aber möglichen Konflikten aus dem Weg zu gehen, gibt es immer noch eine zweite Abfrage über den Zustand einer anderen Variable. Also z.B. den Lade Status eines bestimmten Wagons, der im Zusammenhang mit dem jeweiligen Ereignis relevant ist. In diesem Fall "Empty" Und nur wenn diese beiden Faktoren zutreffen, wird das Ereignis ausgeführt. Sie dürfen sich pro Ereignis halt nur nicht "dual" überschneiden, dann ist alles gut. Das könnte man jetzt auch auf eine mögliche Anzahl von Zügen anwenden oder einfach was soll passieren, wann welcher Zug ein Signal betritt. Irgendwie muss es ja weitergehen (fahren) Ich habe da im Laufe der Jahre und natürlich mit Hilfe des Forums so ziemlich alles mögliche ausprobiert aber das ist für mich am Einfachsten. Die enorme Anzahl an möglichen Bedingungen haben mich am Anfang sehr verwirrt. Aber bei der Einschränkung auf zwei Faktoren finde ich das voll simple. Ist gerade für den Rangierbereich oder einfach für Weichen oder Signale die vom selben Zug oder Lok mehrmals befahren werden ideal. @jloos Auch beim Auslösen unterschiedlicher Fahrstraßen, die aber im gleichen Signal hinterlegt sind oder mit anderen kollidieren. Die mögliche Anzahl an Fahrstraßen ist hier beinahe unendlich, sie müssen nur durch die richtigen Parameter definiert sein. Das Abfragen vom Zustand einer Fahrstraße in diesem Zusammenhang, sollte dann eigentlich irrelevant werden. Es soll immer der Reihe nach gehen. Wer zu erst kommt, mahlt zu erst. So nach dem Motto. Wenn die Fahrstraßen ( zeitlich) nicht richtig gestellt werden, dann gibt es vielleicht noch andere Hintergründe, die daran schuld sind. Vielleicht kann dir das etwas helfen. LG Atrus Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Roter Brummer Geschrieben 20. Juli Teilen Geschrieben 20. Juli Hallo zusammen, es gibt die Bedingung "Fahrstraße ist frei und kann aktiviert werden". Der Zug soll primär Fahrstraße A benutzen. Diese wird aber nur vergeben, wenn sie auch aktiviert werden kann, also frei ist. Wenn das nicht der Fall ist, wird automatisch Fahrstraße B freigegeben. Das Ganze lässt sich nach unten auch noch weiter verschachteln und so können beliebig viele Fahrstraßen angeboten werden, bis eine befahrbare gefunden ist. HG Brummi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jloos Geschrieben 20. Juli Autor Teilen Geschrieben 20. Juli Hallo @Atrus und @Hawkeye, ich verfolge ein anderes Prinzip der Fahrstraßensteuerung. Jeder Zug fragt im Bahnhof und an Stellen, wo es mehrere Fahrmöglichkeiten gibt, eine zentrale Tabelle ab, "Ich bin ZugTyp 03, bin an Abfragestelle 42, wo muss ich hin". Es wird nicht geprüft, ob die Fahrstraße frei ist, das macht das Studio. Das funktioniert auch in 95% aller FS-Zuteilungen. Doch es kommt bei den letzten 5% vor, dass zwei Züge sich gegenseitig blockieren. In diesem Fall bekommt der im Bahnhof stehende Zug nach einer Wartezeit eine neue FS zurück in den Schattenbahnhof zugeteilt. Damit ist das Gleis frei für den anderen Zug. Dass der Zug zurück in den Schattenbahnhof fährt fällt nicht auf, hätte ja auch so sein können. @Roter Brummer, ich habe nicht immer alternative Fahrstraßen, vor allem bei der Einfahrt in den Bahnhof. Wie gesagt, das sich Fahrstraßen gegenseitig blockieren kommt relativ selten vor, in diesem Fall muss ich dann eine alternative FS einstellen. Ich lade die Anlage hoch, wenn ich das richtig läuft. Gruß Jürgen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 20. Juli Teilen Geschrieben 20. Juli vor 28 Minuten schrieb jloos: dass zwei Züge sich gegenseitig blockieren. kann nicht passieren, Jürgen. Blockiert ist eine Fahrstraße dann, wenn eine andere, kreuzende Fahrstraße aktiv ist. sich Rollmaterial in der Fahrstraße befindet. Du musst also bitte die wahre Ursache für die Blockade identifizieren und sie beheben. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Roter Brummer Geschrieben 20. Juli Teilen Geschrieben 20. Juli vor 35 Minuten schrieb jloos: ich habe nicht immer alternative Fahrstraßen, vor allem bei der Einfahrt in den Bahnhof. In diesem Fall kann man diese einzig mögliche Fahrstraße vormerken lassen. vor 36 Minuten schrieb jloos: Wie gesagt, das sich Fahrstraßen gegenseitig blockieren kommt relativ selten vor, in diesem Fall muss ich dann eine alternative FS einstellen. Und genau das macht mein Vorschlag. Schau dir bitte mal die Anlage "Primex 1988" (A2EC1C19-94A4-4EF9-8054-1F059B9F569C) an. Bei der Einfahrt von rechts wird genau eine solche Abfrage gestartet und der nächste Zug in ein freies Gleis geleitet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jloos Geschrieben 20. Juli Autor Teilen Geschrieben 20. Juli Ja @Goetz, den Fehler kenne ich schon. Ich benutze die Fahrstraßen als Steuerung. Richtig wäre es, die Fahrstraße erst zu aktivieren, wenn sie frei ist. Aber auch dann kann es ja vorkommen, dass die Aktivierung der Fahrstraßen nicht erfolgt, weil sie durch einen anderen Zug belegt ist. Dieser Zug wartet vielleicht auf die Freigabe einer FS, die wiederum durch einen weiteren Zug belegt ist. Und der wartet auf den ersten Zug. Jetzt kommt die Alternative Fahrstraße zum Einsatz. Ich kann den Aufwand nicht abschätzen, wenn die Fahrstraßen erst aktiviert werden, wenn sie frei sind. Denn wenn sie besetzt sind, muss die FS später erneut auf mögliche Freigabe geprüfte werden. Um das alles zu vermeiden, sehe ich die Vormerkfunktion bei der Aktivierung. Gruß Jürgen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 20. Juli Teilen Geschrieben 20. Juli Hallo Jürgen, vor 6 Minuten schrieb jloos: die Vormerkfunktion bei der Aktivierung hat eine andere Aufgabe und sollte bitte nur in besonderen Fällen eingesetzt werden: Wenn eine Fahrstraße angefordert wird, die aktuell schon aktiv ist, dann würde diese erneute Anforderung ohne den Zusatz "vormerken" als erledigt gelten und verloren gehen. Dieser Fall tritt nur ein, wenn Blockabschnitte (das sind keine Bahnhofsein- oder -ausfahrten!) im Selbstblockverfahren verwaltet werden sollen. Auch ohne diesen Zusatz wird ansonsten jede Anforderung einer Fahrstraße vorgemerkt, wenn die angeforderte Fahrstraße zu diesem Zeitpunkt blockiert ist. Leider ist "Anforderung vormerken" in der Ausgangsstellung bei der FS-Aktivierung aktiv. Schalte das bitte aus. Viele Grüße Götz Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Atrus Geschrieben 20. Juli Teilen Geschrieben 20. Juli vor 5 Stunden schrieb Roter Brummer: In diesem Fall kann man diese einzig mögliche Fahrstraße vormerken lassen. Und genau das macht mein Vorschlag. Schau dir bitte mal die Anlage "Primex 1988" (A2EC1C19-94A4-4EF9-8054-1F059B9F569C) an. Bei der Einfahrt von rechts wird genau eine solche Abfrage gestartet und der nächste Zug in ein freies Gleis geleitet. Hallo zusammen @Roter Brummer, habe mir deine Anlage so eben einmal angeschaut. Auch die EV. Wieder einmal echt Brummi kann ich nur sagen auch mit der ausziehbaren Konsole. Ich glaube die Idee werde ich mir abkupfern müssen. Super. Meine Anlage ist zwar riesig und trotzdem wusste ich nie wohin mit den Pulten. Jetzt schon, danke Brummi! 👌 LG Atrus Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jloos Geschrieben 22. Juli Autor Teilen Geschrieben 22. Juli Am 20.7.2024 um 14:15 schrieb Goetz: Auch ohne diesen Zusatz wird ansonsten jede Anforderung einer Fahrstraße vorgemerkt, wenn die angeforderte Fahrstraße zu diesem Zeitpunkt blockiert ist Hallo @Goetz, also ohne Haken funktioniert bei mir die Freigabe einer blockierten FS wenn sie deaktiviert wird, nicht. Ich habe ein kleines Beispiel angehängt. Mit Haken in Anforderung vormerken geht es, so wie die Anlage jetzt abgespeichert ist onhe Haken, gehts nicht. Was läuft falsch? Gruß Jürgen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 22. Juli Teilen Geschrieben 22. Juli vor 30 Minuten schrieb jloos: ... wenn sie deaktiviert ... Warum deaktivierst du sie? vor 32 Minuten schrieb jloos: Was läuft falsch? ich finde keine angehängte Datei Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jloos Geschrieben 22. Juli Autor Teilen Geschrieben 22. Juli @Goetz, das Alter... 240721_Aktivierung speichern.mbp Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 22. Juli Teilen Geschrieben 22. Juli (bearbeitet) Tut mir leid, Jürgen, aber die Fahrstraßen in deinem Beispiel sind völlig unsinnig. Das kann so nicht sauber funktionieren. Für zwei Züge benötigst du drei Blockabschnitte. Und eine Fahrstraße muss am nächsten Signal enden und nicht kurz davor. zwei Züge drei Blöcke.mbp Viele Grüße Götz Bearbeitet 22. Juli von Goetz Bild ausgetauscht Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jloos Geschrieben 22. Juli Autor Teilen Geschrieben 22. Juli Hallo @Goetz ich dachte, dieses Beispiel würde etwas vereinfacht ausreichen, was auf der Anlage passiert. Ich habe nun ein Foto gemacht, das das scenario beschreibt. Als 2. habe ich die Anlage in der Position gestoppt, bevor der Fahler auftritt. Die Fahrstraße Strcke055 ist durch den Zug im Gleis 4 blockiert. Fährt der rechte Zug auf dem Berg los, überfährt er einen Gleiskontakt, der ihm die nächste FS gebt, die FS Strecke 055. Die Fahrstraße wird aktiviert, ohne den Haken in der Aktivierung. Der Zug wartet am Signal. Allerdings bekommt die FS Strecke 055 nicht die || Blockierzeichen. Die Strecke fängt an einem Signal an und endet an einem Signal. Vielleicht findest Du ja den Fehler, danke. Gruß Jürgen 240721_Aktivierung-2.mbp Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 22. Juli Teilen Geschrieben 22. Juli vor 12 Minuten schrieb jloos: Vielleicht findest Du ja den Fehler In den nächsten drei Wochen sicher nicht, Jürgen. Da habe ich nicht die Zeit, mich mit der kompletten Anlage auseinanderzusetzen. Tut mir leid. 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