Jump to content

Streckenblock


bigrala
 Share

Recommended Posts

Hallo,

Ich habe einen einfachen Streckenblock in dem jeweils das letzte Hauptsignal an das aktuelle Hauptsignal übergeben wird und beim Verlassen das letzte Hauptsignal dann frei geschaltet wird. Funktioniert auch gut.

Jetzt habe ich es aber so, dass sich zwei Strecken an einer Weiche treffen und hier komme ich ins Schwimmen, denn mir fällt nichts ein, wie ich das lösen könnte.
Klar, wenn der Abschnitt hinter der Weiche betreten wird, dann beide Signale vor der Weiche auf Halt. Aber wie steuere ich es, dass nicht beide Züge starten, wenn der Abschnitt hinter der Weiche wieder frei wird. Muss ich da irgendwo eine Art Liste erstellen wo die Züge vor der Weiche sich eintragen und dann der Reihe nach gestartet werden ? Aber wie ?

Wie steuert Ihr das ?

Link to comment
Share on other sites

Hi


Ich steuere meist nach dem Prinzip der Anfrage einer freien Fahrstraße.
In dem Fall würden bei mir 2 Züge die jeweilige Fahrstraße anfragen.
Wird eine davon nun frei, gewinnt der Zug, der gerade abgefragt wird.
Der andere fragt seine Fahrstraße weiter an.
Das könnte man aber noch so einstellen, daß immer der zuerst angekommene Zug auch zuerst fahren darf,
damit er nicht zufällig zu lange warten muß.

Gruß
Thmas
 

Link to comment
Share on other sites

vor 3 Stunden schrieb bigrala:

Muss ich da irgendwo eine Art Liste erstellen

Im Prinzip, ja.
Nur so kannst du bei zwei Zügen entscheiden, wer zuerst dran kommt.

Ob du die Züge in einer Liste festhältst oder die Signale, an denen eventuell ein Zug warten könnte, ist für das Prinzip egal. Ich würde die Signale bevorzugen, weil diese Liste sich nicht ändert.

Jetzt schaust du: "Steht am Signal 1 ein Zug?"

Wenn ja: Gib den Weg für diesen Zug frei.
Wenn nein, dann schaust du: "Steht an Signal 2 ein Zug?"

Eine Einmündung ist im Prinzip identisch mit einer Bahnhofsausfahrt.
Deshalb stehen dort auch (wie an der Ausfahrt) Hauptsperrsignale (= die mit den zwei roten Lampen)

Hauptsperrsignal.thumb.jpg.073e78b70d8345bc345107924beb20d0.jpg
Mehrere Gleise treffen zusammen und du musst entscheiden, welcher Weg wann frei gegeben wird ...

Edited by Goetz
Link to comment
Share on other sites

hmm, hab mir das mal mit meiner Situation angeschaut und versuche mal zusammenzufassen;

Zunächst kann ich nicht die Blocksteuerung benutzen, sondern muss die entsprechenden Signale einzeln steuern.

Dann müsste ich alle Strecken (zwischen den Blocksignalen) eine Variable (Gleisabschnitt Frei/Beselegt) setzen.
Die beiden Signale in eine Liste packen.
- Wenn diese Belegt zeigt, dann die beiden Signale vor der Weiche auf Halt
- Wenn ein Zug an das geschlossene Signal heranfährt, schreibt er seinen Namen in das Signal und hält
- Wenn die Variable für den Gleisabschnitt auf Frei wechselt, dann werden die beiden Signale in der Liste nacheinander auf vorhandensein eines Namens geprüft und ggf auf Fahrt geschaltet.

Screenshot 2020-11-09 192622.jpg

Link to comment
Share on other sites

vor einer Stunde schrieb bigrala:

Zunächst kann ich nicht die Blocksteuerung benutzen ....

Selbstverständlich nicht, denn 
eine Einmündung ist nicht der Beginn eines Blockabschnitts, sondern eine Ausfahrt.

 

vor einer Stunde schrieb bigrala:

Dann müsste ich alle Strecken (zwischen den Blocksignalen) eine Variable (Gleisabschnitt Frei/Beselegt) setzen.

Da verrennst du dich irgendwie.
Wenn ein Zug den letzten Blockabschnitt vor der Einmündung betritt, dann ist doch schon klar dass er diesen Abschnitt über die Einmündung wieder verlassen will.
Ab jetzt kannst du also diesen Weg vormerken.

 

Die Gleisführung in deinem Screenshot finde ich übrigens klasse. Sehr interessant.

Edited by Goetz
Link to comment
Share on other sites

vor 1 Stunde schrieb Goetz:

Die Gleisführung in deinem Screenshot finde ich übrigens klasse. Sehr interessant.

Danke für die Blumen - hier das komplette Gleisbild.
Oben habe ich mit zwei roten Linien den Übergang zu einer möglichen Anlage gekennzeichnet

Die roten/grünen Lampen sind nur für mich zum testen - Zustandsanzeige von Variabeln

Screenshot 2020-11-09 223140.jpg

Link to comment
Share on other sites

Also das wird irgendwie nix, komme da einfach nicht zurecht.
Immer wieder "mische" ich meine Züge ;-)

Die Gleisführung sieht vielleicht interesssant aus (wie Goetz meine), aber Steuerungsmäßig ein Albtraum. Jedenfalls für mich.

Grund ist, dass von oben ein Zug kommt, der nach links weiterfährt um dann in den SB einzufahren oder einfach links oben den Bereich wieder verlässt.
Das gleiche in umgekehrter Richtung - kommt links oben und kann entscheiden ob er in den Bahnhof fährt oder abbiegt um Durchzufahren.
Das Problem ist jetzt der Teil im Screenshot. Es kann ein Zug von oben kommen um in den SB einzufahren, gleichzeitig kann ein Zug von unten aus dem SB kommen - beide wollen auf ein Gleis und müssen dabei ein anderes Gleis queren, auf dem ein Zug von links kommen kann.

Also eine für mich sehr komplexe Angelegenheit.

Ich kann mir nicht vorstellen wie es funktionieren soll, da ja irgendwie Strecken reserviert werden müssen.
Natürlich können Züge die anderen Signale auf Halt oder Fahrt stellen, würde vermutlich auch funktionieren. Aber was ist, wenn zwei Züge gleichzeitig den jeweiligen Auslöser betreten.

Hat jemand eine "verständliche Lösung bzw Lösungsansatz für mich.

Screenshot 2020-11-16 215619.jpg

Edited by bigrala
Link to comment
Share on other sites

vor 45 Minuten schrieb bigrala:

Ich kann mir nicht vorstellen wie es funktionieren soll,

Du musst an jeder Einfahrt in diesen Bereich wissen, wo der Zug ausfahren soll.
Keinesfalls darfst du in solchen Gleisbildern Weichen spontan oder sogar zufällig dann schalten, wenn du sie erreichst.

Wenn du bei der Einfahrt den Weg bis zur Ausfahrt kennst, dann weißt du auch, welche Weichen du in welche Stellung bringen musst. Bei diesen Weichen setzt du eine Variable "verriegelt" auf true.

  • Eine Weiche darf nur umgeschaltet werden, wenn sie nicht verriegelt ist.
  • Du verriegelst Weichen nur dann, wenn sie in der richtigen Lage sind.
  • Eine Weiche darf nur umgeschaltet werden, wenn alle Signale, die diese Weiche decken, auf Halt stehen.
  • Weichen werden entriegelt, wenn der Konfliktpunkt (= meistens die Weiche selbst) verlassen wurde.
  • Ein Signal geht erst dann auf Fahrt, wenn alle Weichen richtig liegen und verriegelt sind. Dafür musst du im Signal für jeden Weg die Weichen mit ihren Lagen speichern.

Das wäre (aus dem Kopf) das Regelwerk, mit dem ich es versuchen würde.

Wenn die Kreuzung keine DKW, sondern eine einfache Kreuzung ist, dann musst du sie wie eine Weiche behandeln. Also "verriegeln", wenn sie zum Weg gehört und die Verriegelung aufheben, wenn du sie verlässt.

Edited by Goetz
Link to comment
Share on other sites

Bei mir ist es so, dass der Zug beim Einfahren on den Bereich des Schattenbahnhofs eine Zufallszahl 1-3 bekommt und entsprechend dieser Zahl entweder in den Bahnhof (1) , eine Durchfahrt (2) oder eine Wende (3) geleitet wird.

Insofern weiß ich bei der Einfahrt in den Bereich welchen Weg er fahren wird.

Das mit dem Weichen verriegeln klingt zwar gut, sind aber doch viele Abfragen für Weg und Signale - oder ?
Ich kann das ja nicht veralgemeinern bzw universell machen.

Ist es nicht einfacher, wenn man die Abschnitte zwischen zwei Signalen bezeichnet (z.B. GLA 001, GLA 002 usw.) und beim Betreten des Bremskontakts einfach abfragt ob dieser Gleisabschnitt (GLA) frei ist. 

"Betreten Signal 1 = GLA 001 True",
"Betreten Signal 2 = GLA 002 True"
"Verlassen Signal 2 = GLA 001 False, wenn GLA 001= False dann Signal 1 = Fahrt"

und es kann ja sein, dass von links eine Durchfahrt und von rechts eine Bahnhofseinfahrt kommt. Dann treffen die sich im linken Bereich.

 

@Goetz  Hast Du nicht Lust sowas mal in einem Video aufzubauen. Hast ja schon mal einen Schattenbahnhof aufgebaut.
Kannst gerne mein Layout haben  ;-)

Link to comment
Share on other sites

vor 13 Minuten schrieb bigrala:

Ich kann das ja nicht veralgemeinern bzw universell machen.

Doch, kannst du.

Mit Weichenlisten, die dem Weg 1, 2 oder 3 entsprechen.
Je eine Liste für die beteiligten Weichen und ihre zugehörigen Stellungen

Solche Listen legst du an jedem Entscheidungspunkt (also jedem Signal) an. Dann kannst du das alles mit einer einzigen Routine abfrühstücken.

Ist immer noch ein gutes Stück Fleißarbeit, aber ein interessantes.

Der Vorzug gegenüber den Abschnitten ist die direkte Relevanz. Die Weichen sind ja genau die neuralgischen Punkte.

vor 17 Minuten schrieb bigrala:

Hast Du nicht Lust sowas mal in einem Video aufzubauen.

Große

Ich habe sogar (in reduzierter Form) schon dein Gleisbild nachgebaut. Ich kann nur derzeit nicht lange genug konzentriert am PC arbeiten, um das in ein Video oder eine Twitch Sendung zu kriegen.
Dein Layout hätte ich aber auf jeden Fall gerne für Versuche.

Link to comment
Share on other sites

Bei mir hat jede Weiche eine Variable verriegelt (True / False) und ein Schlagwort Riegel.

Für jeden Bahnhof gibt es eine Liste mit allen möglichen Fahrstraßen. In denen sind alle Weichen mit der korrekten Stellung verzeichnet.

Das sieht ungefähr so aus:

Fahrstrasse.JPG.5158128d2a2d3bf221cc0decd5c50f80.JPG

Beim Schalten der Fahrstraße wird mit einer Wiederholung jede Weiche abgefragt ob das Flag verriegelt gesetzt ist. Wenn das der Fall ist, wird gewartet.

Sind alle Weiche frei, werden in einer weiteren Wiederholung alle Weichen geschaltet und das Flag verriegelt gesetzt. Danach wird die Fahrstraße freigegben und das Signal geht auf Fahrt.

Außerdem gibt es ein globales Ereignis, wenn eine Weiche mit dem Schlagwort Riegel verlassen wird, wird das Flag gelöscht.

 

Link to comment
Share on other sites

Ich hatte vergessen, die Idee kam mir beim Ansehen eines Videos (ich glaube von @Goetz ). Da wurde der aber der Fahrweg als Objektvariable im Fahrzeug hinterlegt. Ich will mich ja nicht mit fremden Federn schmücken.

 

Edit:

Mist er war schneller.

Edited by modellbahn-old-grey
Link to comment
Share on other sites

vor 18 Minuten schrieb Goetz:

Dein Layout hätte ich aber auf jeden Fall gerne für Versuche.

Bitte schön ......

Die Harfe funktioniert soweit ...... kannst ja mal laufen lassen, dann sieht man schon wo es aktuell fehlt.
In Deinem Schattenbahnhof hattest Du immer beim verlassen des Ausfahrsignals die Einfahrtweiche auf 0 geschaltet.
Das funktioniert solange nur ein Zug einfährt bzw ausfährt. Ich hab das getrennt, da es passiert ist, dass z.B. ein Zug auf das freie Gleis 8 gefahren ist und während er noch im Bereich der Einfahweichen war, ist einer aus Gleis 5 ausgefahren. Der hat dann seine Einfahrweiche auf 0 geschaltet, was dem anderen nicht gefallen hat wenn unter ihm plötzlich eine Weiche schaltet ;-)

 

Schattenbahnhof einseitig automatisch (4).mbp

Link to comment
Share on other sites

vor 2 Minuten schrieb bigrala:

In Deinem Schattenbahnhof hattest Du immer beim verlassen des Ausfahrsignals die Einfahrtweiche auf 0 geschaltet.

Gut, dass du das verbessert hast. Das war wirklich keine clevere Methode. Zu einfach gedacht. 

Danke fürs Layout :)

Link to comment
Share on other sites

Nicht wundern, ich hatte da bisher eine kleine Blocksteuerung drin. Habe jetzt erst links bei W012 angefangen umzubauen von Block auf ...... eine eurer Ideen.

 

Vor Bezeichnungen, Variablen usw hab ich überall SB_ für Schattenbahnhof davorgesetzt um eine Eindeutigkeit zu gewährleisten, wenn man den Schattenbahnhof mal als Modul an eine Anlage koppeln will.

Für alles was den Zufahrts- bzw Durchfahrtsbereich außerhalb des Harfenbereichs betrifft, steht zusätzlich ein SBB (SchattenBahnhofBereich) davor.

 

Edited by bigrala
Link to comment
Share on other sites

vor 1 Stunde schrieb Goetz:

Je eine Liste für die beteiligten Weichen und ihre zugehörigen Stellungen

In einer Liste kann ich die Weichen als Objekt zusammenfassen, aber wie kann man das Objekt mit Wert (Weichenstellung) in eine Liste aufnehmen ?

Link to comment
Share on other sites

Indem Du eine Liste mit Tabellen anlegst. Für jede Weiche eine Tabelle. Jede Tabelle hat dann einen Eintrag für die jeweilige Weiche als Objekt und einen als Zahl für die Stellung. Auf YouTube hat Goetz das ganz gut auf englisch erklärt. Leider bekomme ich den Link auf dem Tablet nicht kopiert. Suche einfach nach:

Goetz  Route setting via table
 

Link to comment
Share on other sites

vor 9 Stunden schrieb bigrala:

wie kann man das Objekt mit Wert (Weichenstellung) in eine Liste aufnehmen ?

Jeder Eintrag in einer Liste kann wiederum eine Liste sein. Oder (in diesem Fall besser) eine Tabelle.
Bei einer Tabelle haben die einzelnen Zellen Namen. Das ist für diesen Zweck ideal.

Du kannst also in die Liste eine Reihe von Paaren eintragen. Jeweils als kleine Tabelle mit Weiche und Stellung.

Leider habe ich das bisher wirklich nur auf Englisch aufgenommen.

Vielen Dank für den Tipp, @modellbahn-old-grey

 

Edited by Goetz
Link to comment
Share on other sites

English ist kein Problem.

Habe es mir auch schon angesehen und für das linke Einfahrsignal gemacht..
Habe drei Routen angelegt (Bahnhof 1, Durchfahrt 2 und Wende 3)
Bin gerade dabei auszuprobieren.

Da die Route 3 und auch die 2 sehr lang ist, werde ich probieren diese aufzuteilen. Sonst kann ja immer nur ein Zug im Bereich unterwegs sein.
 

Link to comment
Share on other sites

Hmm..... also ich habe folgendes gemacht......  Als erstes bekommt die Lock bei Einfahrt per Zufall eine Nummer (1-3) in Ihre Variable "Strecke Marker" gesetzt.
In dem Signal habe ich je eine Liste für die drei möglichen Routen (Route 1 L, Route 2 L und Route 3L) angelegt. In jeder Liste gibt es mehrere Tabellen, je eine pro Weiche auf der Route mit jeweils einem Eintrag Weiche (Objekt) für die Weichen-ID und Setting (Zahl) für die Weichenstellung.

Betritt die Lok den GK des Signals, frage ich den "Strecke Marker" in der Lok ab und schalte die Weichen entsprechend. (
Strecke Marker 1 = Route 1 L, Strecke Marker 2 = Route 2 L und Strecke Marker 3 = Route 3 L)

Soweit so gut ..... aber die Weichen schalten nicht
Egal ob der Marker 1,2 oder 3 hat, die Weiche 012 schaltet immer auf 1

Sieht jemand den Fehler ?

Screenshot 2020-11-19 100037.jpg

Screenshot 2020-11-19 100136.jpg

Edited by bigrala
Link to comment
Share on other sites

Ich kann auf den ersten Blick keinen Fehler entdecken. Aber zum Testen ob Dein Ereignis korrekt durchlaufen wird mußt Du Dir 7 Testvariablen (Boolscher Wert) anlegen und setzt die vor jedem Test auf false.

In Deinem Ereignis setzt Du jeweils über und unter die Bedingung sowie ganz am Ende eine der Variablen auf True. So kannst Du den Weg innerhalb des Ereignisses nachvollziehen. Damit wäre erst einmal geklärt, ob das Ereignis korrekt durchlaufen wird.

Den Umweg über die Variablen muß man hier gehen, da man mit der EV keine Log-Datei erstellten kann.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...