Jump to content

Mehrgleisiger Bahnübergang


 Share

Recommended Posts

Hallo Easy,

vielen Dank für deine Antwort - ja, das hab ich verstanden und kenn mich nun aus...

...aber ein weiteres Problem (wenn ich dich nochmals belästigen darf):

Habe einen mehrfachen Bahnübergang (A) mit Schranken, funktioniert einwandfrei mit den Variablen (dank der Youtube Anleitung)

Hab auch einen zweiten Bahnübergang (B) mit Schranken, funktioniert auch bestens

...ABER:

die Bahnübergänge sind nicht so weit entfernt so dass sich Aktionsgleise "überlappen", möchte aber gerne dass die Schranken der 2 Bahnübergänge versetzt öffnen und schließen damit nicht ein Schranken unnötig lange zu ist - das funktioniert nicht...

Jeder für sich (wenn ich die Ereignisgruppe des Anderen inaktiv setze) funktioniert.

Welchen Variablennamen kann ich wie ändern dass es kein Chaos gibt (hab schon versucht bei einer Gruppe "$_trigger1.BüAusfahrt" in"$_trigger2.BüAusfahrt" umzubenennen - geht nicht.

Beiliegend die einzelnen Zustände der Variablen (wenn ich jeweils einen inaktiv setze) - ich denke das passt.

Ebenfalls beiliegend die Übersicht der Anordnung zum besseren Verständnis.

Danke im Voraus für deine Hilfe

LG Gertschi

 

Übersicht BÜ.jpg

Zustand alle Schranken.jpg

Link to comment
Share on other sites

Hallo Gertschi,

was bezweckst Du mit der Objektvariable _Trigger1.BüAusfahrt, und warum verknüpfst Du diese Variable mit der Lok? Ist diese Variable der Belegungszähler für den Bahnübergang, um feststellen zu können, wann die Schranke wieder geöffnet werden darf? Wenn ja, bräuchtest Du zwei getrennte Belegungszähler für Bahnübergang A und Bahnübergang B, die beide den Wert 0 besitzen, solange sich kein Zug in den Bahnübergangs-Bereichen befindet (siehe die Vorgangsbeschreibung weiter unten). 

Du hast in Deinem Anlagenbild nur die Beginngleise ausgezeichnet (grün für Bahnübergang A, blau für Bahnübergnag B). Welches sind die Endegleise? Meinst Du damit die gelben Gleise für Bahnübergang A und die roten Gleise für Bahnübergang B?

Du kannst _Trigger1 nicht einfach durch _Trigger2 ersetzen. Denn bei den Ereignissen Zug betritt/verlässt Gleis (ich vermute, dass Du Dich auf diese beziehst) repräsentiert _Trigger1 immer die Lok, deren Zug das Gleis betriitt oder verlässt, und _Trigger2 das Gleis, das betreten oder verlassen wird. Bei anderen Ereignissen der EV können _Trigger1 und _Trigger2 dagegen ganz andere Typen von Objekten repräsentieren.

Ich habe mr mal Deine Anlage 2 - fertig Test Steuerung.mbp aus diesem Beitrag, auf die Du Dich beziehst, angeschaut. Da habe ich aber noch keine Objektvariable _Trigger1.BüAusfahrt gefunden. Kann es sein, dass dieser Stand Deiner Anlage nicht aktuell ist?

Zum theoretischen Ablauf:
Nähert sich ein Zug Bahnübergang A und betritt dabei in Fahrtrichtung zum Bahnübergang A hin ein diesem Bahnübergang zugeordnetes Beginngleis, muss der Belegungszähler für diesen Bahnübergang A um 1 hochgezählt werden. Sind die Schranken dieses Bahnübergangs zu diesem Zeitpunkt geöffnet (das ist der Fall, wenn der Belegungszäheler vor dem Erhöhen den Wert 0 besaß), müssen sie geschlossen werden. Entfernt sich der Zug vom Bahnübergang und verlässt dabei ein Endegleis in Fahrtrichtung vom Bahnübergang weg, wird der Belegungszähler für diesen Bahnüberang um 1 erniedrigt. Geht der Zähler hierbei auf 0, befindet sich kein Zug mehr im Bereich dieses Bahnübergangs, sodass dessen Schanken geöffnet werden können.

Soll dieser Ablauf außer für den Bahnübergang A auch für einen weiteren Bahnübergang B realisiert werden, müssen alle verwendeten "Betriebsmittel" (das sind die Beginngleise, die Endegleise und auch der Belegungszähler!) neu eingerichtet werden. Wird für den zweiten Bahnübergang dann (vom ersten Bahnübergang völlig unabhängig) die gleiche Ablaufsteuerung realisiert, spielt es überhaupt keine Rolle, ob sich die "Belegungsabschnitte" um die einzelnen Bahnübergänge herum (also die Abschnitte zwischen Beginngleis und Endegleis für jedes Gleis am Bahnübergang und jede Fahrtrichtung) überscneiden oder nicht. Jedes "Zug-betritt/verlässt Gleis"-Ereignis bezieht sich immer genau auf einen der betrachteten Bahnüberänge und steuert somit auch nur diesen, ohne etwas von möglichen anderen Bahnüberängen "zu wissen". Trotzdem wird jeder Bahnübergang - für sich betrachtet - ordentlich geschlossen, wenn sich ein Zug nähert, und auch wieder ordentlicxh geöffnet, wenn sich "der letzte" Zug entfernt. Es gibt hierbei keinerlei Synchronität zwischen mehreren existierenden Bahnübergängen.

Schau Dir bitte zwecks der hier beschriebenen Bahnübergangs-Schaltung einmal diese Beschreibung und das zugehörige Anlagenbeispiel an. Das sollte Dir eingentlich weiterhelfen. Eine fertige Anlage mit Bahnübergangssteuerung findest Du übrigens im Online-Katalog in der Rubrik "Experimentelle Anlagen": Bahnübergangs-Steuerung. Allerdings ist dort die Schrankensteuerung für jedes Gleis nur in einer Fahrtrichtung realisiert

Viele Grüße
BahnLand

 

Edited by BahnLand
Link to comment
Share on other sites

vor 4 Stunden schrieb BahnLand:

Wird für den zweiten Bahnübergang dann (vom ersten Bahnübergang völlig unabhängig) die gleiche Ablaufsteuerung realisiert, spielt es überhaupt keine Rolle, ob sich die "Belegungsabschnitte" um die einzelnen Bahnübergänge herum (also die Abschnitte zwischen Beginngleis und Endegleis für jedes Gleis am Bahnübergang und jede Fahrtrichtung) überscneiden oder nicht. Jedes "Zug-betritt/verlässt Gleis"-Ereignis bezieht sich immer genau auf einen der betrachteten Bahnüberänge und steuert somit auch nur diesen, ohne etwas von möglichen anderen Bahnüberängen "zu wissen". Trotzdem wird jeder Bahnübergang - für sich betrachtet - ordentlich geschlossen, wenn sich ein Zug nähert, und auch wieder ordentlicxh geöffnet, wenn sich "der letzte" Zug entfernt. Es gibt hierbei keinerlei Synchronität zwischen mehreren existierenden Bahnübergängen.

Hallo Bahnland, will nicht nerven aber ich habs genau so gemacht - für jeden Bahnübergang getrennt, gibt aber einen Durcheinand bei den Variablen...

beiliegend meine aktualisierte Anlage, geht mir momentan nur um die Gleise 2 und 3, hab alles beschriftet, vielleicht machst bei Gelegenheit einen Blick in die EV.

DANKE dafür

LG gertschi

 

Anlage 2 - fertig Test Steuerung+Schranken.mbp

Link to comment
Share on other sites

Hallo Gertschi,

wenn deine Lok den Bahnübergang A betritt wird ihr eine Objektvariable zugeordnet. Beim betreten des Bahnübergangs B ordnest du der Lok wieder die gleiche Objektvariable zu. Damit alles richtig funktioniert sollten die Objektvariablen jeweils auf die Bahnübergänge zugeordnet sein. Nur so kann beim jeweiligen Bahnübergang richtig gezählt werden.

Ich denke das könnte der Grund sein. Die Objektvariablen kommen sich ins Gehege und zählen dann falsch. Beobachte in gewissen Abständen den Zustand der Objektvariablen Lok. Probier mal für den Bahnübergang A eine Objektvariable mit Kennung A und für den Bahnübergang B eine weitere mit Kennung B.

Gruß
Wolfgang

Hallo Bahnland,

in meinem Video für Bahnübergang mit mehreren Gleisspuren habe ich die Methode mit den Objektvariablen beschrieben. Diese Objekvariable existiert nur solange sich ein Zug zwischen den Beginn- und Endegleisen befindet. Die Objekvariable ist daher quasi dynamisch. Der Grund dafür ist, das nicht jeder auf der Anlage befindlichen Lok vorab eine Objektvariable zugewiesen werden muss. Ist die Lok wieder aus dem Bahnübergangsbereich, wird die Objehtwariable wieder gelöscht. Die Variable macht deutlich ob die Lok in der Anfahrt vor dem Bahnübergang oder in der Ausfahrt nach dem Bahnübergang ist. Vielleicht ist das Video verständlicher als diese kurze Erklärung.

Gruß
Wolfgang

Link to comment
Share on other sites

Hallo Wolfgang,

nachdem ich jetzt Dein Video zweimal angesehen habe, ist mir klar, wofür Du die Objektvariable "<Lok>.BüAusfahrt" benötigst. Du identifizierst hierdurch die Fahrtrichtung des Zuges und verhinderst dadurch, dass die Schranken geschlossen werden, wenn der Zug ein Beginn-Gleis in der "falschen" Richtung "betritt". Das mache ich bei meinem Algorithmus über die Abfrage, ob ein Fahrzeug des Zuges auf dem unmittelbaren Nachbargleisstück steht. Auch damit kann ich erreichen, dass die Schranke nur dann geschlossen wird, wenn sich der das Beginn-Gleis betretende Zug in Richtung zum Bahnübergnag hin und nicht in entgegengesetzter Richtung bewegt. Damit benötige ich die Zug-bezogene Objekt-Variable nicht, und konnte daher mit ihr in der EV von Gertschi auch nichts anfangen.

Auf die Indikator-Variable "Schranke_geschlossen" hatte ich bei meiner Demo-Anlage ebenfalls verzichtet, da der Anstoß zu Schließen einer bereits geschlossenen Schranke eigentlich "Ins Leere" läuft und damit zumindest bei meiner Demo keine Auswirkung hat. Sobald aber mit dem Schließen der Schranke Zusatz-Aktionen verbunden sind, wie bei Deinem Beispiel das Aktivieren des Läutewerks, benötigt man diesen Indikator, um ein erneutes Läuten bei bereits geschlossener Schranke zu verhindern. Insofern habe ich beim Betrachten Deines Videos jetzt doch wieder etwas dazugelernt.

Zu dem Problem von Gertschi hast Du ja die Lösung schon formuliert.

Nur eine Frage häbe ich noch?

Warum unterscheidest Du bei der Objektvarable "<Lok>.BüAusfahrt" die Werte 0 und 1 für den Ein- und Ausfahrbereich des Bahnübergangs-Abschnitts? Es wird doch nur überprüft, ob die Variable leer oder nicht leer ist, um beim "Betreten" eines Beginn-Gleises "richtig" reagieren zu können (oder habe ich etwas übersehen?).

Viele Grüße
BahnLand

 

Edited by BahnLand
Link to comment
Share on other sites

Hallo Wolfgang und alle sonst interessierten Liebhaber,

VIELEN DANK - ES FUNKTIONIERT EINWANDFREI!

Mir war nämlich nicht klar das die Befehle: "&_trigger1." sowie "_trigger1." fixe Progammbefehle sind und nicht verändert werden dürfen (ich habs nämlich mit _trigger2. versucht). Nach dem Punkt ist egal was steht, dadurch sind natürlich beliebig viele Variablennamen möglich.

LG ein zufriedener Gertschi

Link to comment
Share on other sites

Hallo Bahnland,

wenn ein Zug z. B. von links kommend das Beginn_li-Gleis betritt wird der Zähler nur ausgelöst wenn kein Wert in der Lokvariablen ist (Lok fährt in Bereich ein). Die Lokvariable wird auf 0 gesetzt. Durch diese Variable 0 könnte ich noch auswerten, dass der Zug vor dem Bahnübergang ist (eine Zusätzliche Auswertung mache ich in diesem Beispiel aber nicht).
Wenn der Zug das Ende-Gleis am Bahnübergang betritt, setze ich die Lokvariable auf 1 (hier könnte ich wieder eine Auswertung vornehmen, Zug ist schon über dem Bahnübergang, mache aber auch hier keine Auswertung).
Betritt der Zug das Beginn_re-Gleis beim Verlassen des Bahnübergangs und wäre der Wert der Lokvariablen "Leer" würde ein weiterer Zählvorgang ausgelöst (die EV erkennt ja nicht aus welcher Richtung das Gleis betreten wird). Ist die Variable gesetzt (0 oder 1 oder was auch immer) tritt aus der Aktion die mit der NICHT erfüllten Bedingung in Kraft: die Lokvariable wird auf leer gesetzt und somit wieder gelöscht.
Statt 0 oder 1 könnte in der Lokvariablen auch mit A oder B gearbeitet werden. Sie ist quasi nur eine Flag mit auswertbarem Inhalt.

Ich hoffe es ist verständlich, wenn nicht nochmal nachfragen.

Gruß
Wolfgang

Link to comment
Share on other sites

Hallo Wolfgang,

das mit dem Flag hatte ich verstanden. Nur wegen der verschiedenen Werte 0 und 1 dachte ich, ich hätte eventuell etwas übersehen. Ansonsten ist Dein Algorithmus für mich jetzt klar. Vielen Dank für Deine zusätzliche Erklärung.

vor 4 Stunden schrieb wopitir:

die EV erkennt ja nicht aus welcher Richtung das Gleis betreten wird

Man kann bei den Ereignissen "Zug betritt/verlässt Gleis" die Fahrtrichtung des Zuges schon erkennen, wenn man in der Ereignisdefinition zusätzlich die Bedingung "Lok/Wagen steht auf einem Gleis" auswertet. Wichtig ist hierbei, dass das als Auslöser verwendete Gleisstück und das Gleisstück, auf welches man sich in der Bedingung bezieht, unmittelbar aneinander anschließen.

Bahnschranken.jpg

Man betrachte hierzu beispielsweise das grün-blaue Gleispaar vor der Diesellok im Bild links vorne. Ich möchte hierzu das Gleisstück, welches als Auslöser für die Ereignisse "Zug betritt Gleis" und "Zug verlässt Gleis" herangezogen wird, als "Ereignisgleis", und das Gleis, das in der Bedingung "Lok/Wagen steht auf einem Gleis" betrachtet wird, als "Prüfgleis" bezeichnen.

Sei nun das grüne Gleis das Ereignisgleis (Zug betritt/verlässt grünes Gleis) und das blaue Gleis das Prüfgleis (Lok/Wagen steht auf blauem Gleis). Ist nun bei dem Ereignis "Zug betritt grünes Gleis" die Bedingung "Lok/Wagen steht auf blauem Gleis" erfüllt, fährt der auslösende Zug von rechts nach links. Ist die Bedingung nicht erfüllt, fährt der Zug von links nach rechts. Man kann also für beide Fahrtrichtungen getrennte Aktionen ausführen lassen.

Erklärung für das Erkennen der Fahrtrichtung:
Fährt der Zug von links nach rechts, betritt er das grüne Ereignisgleis, bevor er das blaue Prüfgleis erreicht. Er kann sich also zum Zeitpunkt der Ereignis-Auslösung nicht auf dem Prüfgleis befinden. Die Bedingung ist also nicht erfüllt. Fährt der Zug dagegen von rechts nach links, muss er zuerst das blaue Prüfgleis passieren, bevor er das grüne Ereignisgleis erreicht. Zum Zeitpunkt der Ereignisauslösung befindet er sich also gezwungenermaßen noch auf dem Prüfgleis, sodass die Bedingung erfüllt ist.

Beim Ereignis "Zug verlässt Gleis" ist die Fahrtrichtung des Zuges in Abhängigkeit davon, ob die Bedingung erfüllt ist oder nicht, vertauscht: Ist bei dem Ereignis "Zug verlässt grünes Gleis" die Bedingung "Lok/Wagen steht auf blauem Gleis" erfüllt, fährt der auslösende Zug von links nach rechts. Ist die Bedingung nicht erfüllt, fährt der Zug von rechts nach links.

Auch hierfür eine Erklärung:
Fährt der Zug von links nach rechts, befährt er das blaue Prüfgleis im Anschluss an das grüne Ereignisgleis. In dem Moment, wo er das Ereignis "Zug verlässt grünes Gleis" auslöst, befindet er sich also noch auf dem blauen Prüfgleis. Die Bedingung "Lok/Wagen befindet sich auf blauem Gleis" ist also erfüllt. Fährt der Zug dagegen von rechts nach links, passiert er also das blaue Prüfgleis vor dem grünen Ereignisgleis, muss er zu dem Zeitpunkt, wo er das grüne Ereigisgleis verlässt, zwangsläufig auch das blaue Prüfgleis bereits verlassen haben. Deshalb ist hier beim Auslösen des Ereignisses "Zug verlässt grünes Gleis" die Bedinging "Lok/Wagen steht auf blauem Gleis" nicht erfüllt.

Wer Lust hat, kann jetzt einfach mal das ganze Szenario durchspielen, wenn man die Funktionalität des grünen und des blauen Gleises vertauscht, also das blaue Gleis als Ereignisgleis ("Zug betritt/verlässt blaues Gleis") und das grüne Gleis als Prüfgleis ("Lok/Wagen steht auf grünem Gleis") verwendet. Wie sehen die Schlussfolgerungen für "Bedingung erfüllt" und "Bedingung nicht erfüllt" dann aus?

Tipp: Die Begriffe "lnks" und "rechts" müssen in der obigen Beschreibung einfach vertauscht werden. Aber warum? Die Antwort auf die Frage steckt in meinen beiden "Erklärungen". ;) Viel Spaß beim Tüfteln.

Bei dem obigen Bild werden übriges die Gleispaare "grün/blau" mit dem Ereignis "Zug betritt Gleis" verwendet. Sie erfüllen damit den Zweck der in den vorangegangenen Beiträgen beschriebenen Beginn-Gleise. Die Gleispaare "gelb/orange" werden dagegen mit dem Ereignis "Zug verlässt Gleis" verwendet. Sie entsprechen damit den Ende-Gleisen der vorangegangenen Beiträge.

Dadurch, dass durch die Zusatzberdingung die Fahrtrichtung des Zuges erkannt werden kann, braucht man hierfür die Objektvariablen "<Lok>.BüAusgang" als Indikator-Variablen, ob der Zug in den Bahübergangvereich ein- oder ausfährt, nicht mehr. Man löst das Schließen der Schranken (über das Hochsetzen des Belegungszählers) einfach nur dann aus, wenn sich der Zug beim Passieren des jeweiligen Beginn-Gleises zum Bahnübergang hin bewegt. Fährt der Zug vom Bahnübergang weg, wird diese Aktion nicht ausgeführt. Umgekehrt verhält es sich beim Öffnen der Schranken an den Ende-Gleisen. Die Aktion "Belegungszähler herunterzählen" (bei "0" werden die Schranken geöffnet) darf nur angestoßen werden, wenn sich der das Ende-Gleis passierende Zug vom Bahnübergang weg bewegt. Fährt der Zug auf den Bahnübergang zu darf, der Zähler nicht heruntergesetzt werden.

Viele Grüße
BahnLand

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