Jump to content

Status Fahrstraße


Empfohlene Beiträge

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

Ja Jürgen, die gibt es.

Der Status einer Fahrstraße ist eine Eigenschaft.

FahrstraeStatus.jpg.5c2384d3127189ddcbba474782a6d0e0.jpg

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

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

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

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

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 von Hawkeye
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

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

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

image.thumb.jpeg.b8e26a154f43dae678548b39e911262f.jpeg

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. 

image.thumb.jpeg.6396d07c9722944de2573f69e1e8352a.jpeg

image.thumb.jpeg.cb8eb13b43cb6df4fcf9ebefd11eea4c.jpeg

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"

image.thumb.jpeg.5969ba716b2193bcc0a37e61fb6b729d.jpeg

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

Hallo zusammen,

es gibt die Bedingung "Fahrstraße ist frei und kann aktiviert werden".

1431.thumb.jpg.45449134b5d6ba5dca7c5a626335b456.jpg

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

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

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

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

1432.thumb.jpg.030569cbb9e17bebce54c63b222256ee.jpg

wird genau eine solche Abfrage gestartet und der nächste Zug in ein freies Gleis geleitet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Fahrstraevormerken.jpg.2c7b1d5631b33a2ccf4a913c51e57aad.jpg

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

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

1432.thumb.jpg.030569cbb9e17bebce54c63b222256ee.jpg

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

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

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

 

zweiZgedreiBlckeBild.jpg.59aa9249060bdf58f0689d8005ec7274.jpg

Viele Grüße
Götz

 

Bearbeitet von Goetz
Bild ausgetauscht
Link zu diesem Kommentar
Auf anderen Seiten teilen

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_Foto 1.jpg

240721_Aktivierung-2.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

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