Jump to content

Schrankensteuerung


kutscher

Empfohlene Beiträge

Hallo Kutscher,

laut deinem Bild sind die Gleise nicht mittig über der Schranke.
Da es sich hier um die Funktionen der MBS-Standard-Schranke handelt, die eigentlich nur eingleisig ist,
muss mann beim dreigleisigen Betrieb die Schienen schon möglichst dicht aneinander bringen und gut zentrieren, damit die "Radar"-Effekt der Schranke funktioniert.

Gruß Seehund

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Kutscher,

ich würde für die Schranke eine "Variable" definieren, die, wenn kein Zug "in der Nähe" ist, auf "0" steht. Ist jedes Gleis am Bahnübergang "lang genug", um auf beiden Seiten eine kurze Strecke überzustehen, braucht man bei allen 3 Gleisstücken nur folgende Ereignisse auszuwerten:

(1) "Zug betritt Gleis" (Zug nähert sich dem Bahnübergang): Variable wird um 1 erhöht
(2) "Zug verlässt Gleis" (Zug entfernt sich vom Bahnübergang): Variable wird um 1 erniedrigt

Die Änderung des Variablen-Werts wird dann genutzt, um die Bahnschranke zu schließen oder zu öffnen:

(3) "Variable ändert sich auf Wert > 0: Bahnschranke schließen (wenn die Bahnschranke bereits geschlossen ist, wird die Aktion nicht ausgeführt, da bereits "erledigt")
(4) "Variable ändert sich auf Wert 0: Bahnschranke öffnen

Wenn einer oder mehrere der für diese Steuerung zu verwendenden Gleisabschnitte jeweils aus mehreren Gleisstücken bestehen sollten, müssen die Ereignisse (1) und (2) jeweils für die Gleise "beidseits" des Bahnübergangs angewendet werden. Nur darf dann die Auswertung jeweils nur in einer Richtung erfolgen: (1) nur für sich dem Bahnübergang nähernde Züge, (2) nur für sich vom Bahnübergang entfernende Züge. Man kann die Fahrtrichtung des Zuges dadurch feststellen, dass man bei den Ereignissen (1) und (2) als Zusatzbedingung überprüft, ob das jeweils äußere (dem Bahnübergang abgewandte) Nachbargleisstück vom gerade passierenden Zug belegt ist (das "innere" Nachbargleisstück muss dagegen frei sein). Es genügt hierbei, nur eine Variante ("äußeres Nachnbargleis belegt" oder "inneres Nachbargleis frei") abzufragen.

Ich hoffe, dass  Du mit dieser "Kurzbeschreibung" was anfangen kannst.

Viele Grüße
BahnLand
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Bahnland,

du meinst wohl mit deinem Beispiel die Version der animierten Schranke, die sowieso über die Ereignisverwaltung gesteuert werden muss.

Hier handelt es sich aber um die Version unter Verwendung der MBS-Standard-Schranke. Ich habe bisher noch keine Möglichkeit gefunden, diese Schranke überhaupt mittels Ereignisverwaltung zu steuern.

Gruß Seehund

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Seehund,

Kutscher fragte ja, wie er einen (eingleisigen) BÜ mit drei Gleisen zum funktionieren bringt;

-ich weiss nicht (und war zu faul zum ausprobieren ;) ) ob der "Radareffekt" über alle drei Gleise funktioniert- da die Standard Version vom BÜ nicht über die EV gesteuert werden kann, war mein Vorschlag den "Umweg" über die Dummy-Lok zu nehmen. :)

Gruß Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Kutscher,

3 Gleise mit der Option Vor- und Rückwärts der Loks ist schon ein kleines Problem, wenn du es mit der Ereignisverwaltung steuern willst.

Es ist aber grundsätzlich möglich, auch wenn Gleise der Straßen den Bahnübergang queren. Aber auch nur mit Einschränkungen. Es läuft eigentlich nur, wenn Loks und Autos sich nur vorwärts auf dem ihm zugewiesenen Gleis bewegen. Soll heissen, dass jedes Gleis nur in eine Richtung befahren wird.

Mit dem Vorschlag von Bahnland müsstest du aber eigentlich weiterkommen, auch wenn dazu sehr viele Einträge in die Ereignisverwaltung notwendig sind.

Gruß Seehund

 

 

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Seehund:

Ja, ich hatte auch überlegt die Schranken mittels Timer zu verzögern- also eine minimale Öffnungszeit zu erreichen- ; hatte aber keine zündende Idee :( und wollte die Demo nicht überladen;). Vlt. mach ich es ja noch...

Lutz

P.S. Jetzt hab' ich doch noch eine Verzögerung eingebaut- jetzt hauts mir ab und zu die Schranken um die Ohren >:(:o.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Lutz,

... nur mal so aus Neugier... warum hast Du jeweils ein "linkes" und ein "rechtes" Gleis gemacht?

Das "richtige" Zählen mit der Variablen geht doch auch, wenn Du z.B. die "linken" Gleise doppelt so lange machst (Mitte Gleis = Mitte Bahnübergang) und dafür die "rechten" Gleise wegläßt... dies halbiert auch die Einträge in der EVW...

Gruß

EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Easy,

jetzt, wo Du das schreibst :) , die Anlage war ja vom April '14, ich habe sie nur erweitert ohne groß nachzudenken :$.

Gruß Lutz

 

P.S. sonnabend:

Jetzt hab ich die EV geändert- obwohl das nur ein paar Zeilen sind, scheint das Studio ein Problem mit der Abarbeitung zu haben. :(
( Die Schranke schliesst sporadisch unmittelbar nach dem öffnen, obwohl der BÜ frei ist >:( )
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Monate später...

Hallo Gemeinde.

Ich habe eine Lösung für Bahnübergänge entwickelt, die ich exemplarisch an folgendem Beispiel zeige:

Bahnuebergang.gif

Anforderungen:

Bahnübergang (BÜ) mit beliebig vielen Gleisen. Die Schranken sollen sich schließen, wenn sich ein Zug dem BÜ nähert und unmittelbar wieder öffnen nachdem der Zug den BÜ verlassen hat. Jedes Gleis soll prinzipiell von jeder Richtung befahren werden können. Die Zuglänge darf keine Rolle spielen. Und zu guter Letzt soll sich der Aufwand in der Ereignisverwaltung im Rahmen halten.

Aufbau:

In einem gewissen Abstand vor und nach dem BÜ werden Triggergleise benötigt, die ich nachfolgend als „Triggerpunkte außen“ (TPA) bezeichne. Im Schaubild sind das die grünen Gleise. Beim Überfahren eines TPA in Richtung BÜ sollen die Schranken schließen. Am BÜ selbst werden Triggergleise benötigt, die ich nachfolgend als „Triggerpunkt mitte“ (TPM) bezeichne. Im Schaubild sind das die roten Gleise. Beim Verlassen des TPM sollen sich die Schranken unmittelbar öffnen. Diese Gleise sollten also etwas breiter als die Straße sein, ansonsten könnten die Schranken schon öffnen obwohl der Zug den BÜ noch nicht ganz verlassen hat. Ggf. muss hier mit einem Flexgleis gearbeitet werden.

Bei mir haben alle Bahnübergänge Namen, hier im Beispiel verwende ich BÜ1, für den ersten Bahnübergang. Alle Triggergleise nummeriere ich dann durch, in z.B. BÜ1TPA1 bis BÜ1TPA5 und BÜ1TPM1 und BÜ1TPM2. Das macht es in der Ereignisverwaltung einfacher.

Umsetzungslogik:

Bei einem BÜ mit zwei Gleisen ohne Weichen benötigt man also vier TPA und zwei TPM. Im Schaubild habe ich bewusst eine Weiche eingebaut und damit 5 TPA (wegen Erklärung weiter unten). Der Abstand der TPA zum BÜ spielt keine Rolle. Ich mache das abhängig von der Lage des BÜ und der geplanten Geschwindigkeit der Züge. Ist also reine Kosmetik.

Ich arbeite mit einem globalen Zähler pro Bahnübergang (Bedeutung: wie viele Züge befinden sich am BÜ). Ist dieser Zähler >0, dann sind die Schranken zu, ist der Zähler=0, dann sind die Schranken auf. Das entscheidende ist: Zusätzlich verwende ich einen Merker‘ pro Zug, also eine objektspezifische Variable. Dieser Merker merkt sich einfach, ob bisher nur der erste TPA vor dem BÜ befahren wurde (Bedeutung: Schranke soll schießen) oder auch der zweite TPA dahinter (Bedeutung: nichts soll passieren, da die Schranke über TPM geöffnet wird). Das Coole ist: so, wie ich die Ereignisse programmiert habe, legt das Programm den Zähler und die Merker bei der ersten Verwendung automatisch an.

Zwei Punkte zur Beachtung:

Zum einen muss ein Zug von einer Seite auf den BÜ zufahren und auf der anderen Seite wieder verlassen. Ein Zug nähert sich also dem BÜ, befährt einen TPA, verlässt TPM und befährt einen weiteren TPA. Je nach Zuglänge kann es auch sein, dass der Zug den ersten TPA befährt, den zweiten TPA befährt und dann erst den TPM verlässt. Auch kein Problem. Aber: das Anfahren eines TPA und Zurücksetzen des Zuges ohne Überqueren des BÜ verursacht Schiefstände im Zähler. Dürfte an sich im Normalbetrieb nicht vorkommen. Zum anderen muss durch sorgfältige Auswahl der Triggergleise für die TPA sichergestellt werden, dass ein Zug beim Überqueren des BÜ genau zwei TPA und einen TPM befährt. Bei einem BÜ ohne Weichen in der Nähe ist das kein Problem. Würde man aber hier im Schaubild den TPA BÜ1TPA2 auf die Weiche legen, würde beim Anfahren über das obere linke Gleis (BÜ1TPA1) bereits zwei Triggerpunkte vor dem BÜ befahren werden. Gar nicht gut.

Ereignisse:

Das Ereignis für den TPA.

BÜ1 ist die globale Variable und zählt die Anzahl Züge am BÜ. Mit _Trigger1 wird die auslösende Lok identifiziert. Mit _Trigger1.Merker wird damit der Merker des auslösenden Zugs angesprochen. Der Merker hat eigentlich zwei Zustände. 1: ein TPA wurde befahren, 0: auch ein zweiter TPA wurde befahren. Logik: wird der erste TPA (also vor dem BÜ) befahren, erhöht sich der globale Zähler BÜ1 um eins. Wird der zweite TPA (hinter dem BÜ) befahren, verändert sich der globale Zähler nicht. Die Negation auf den Wert 1 in der Bedingung ist wichtig, da am Anfang die objektspezifische Variable gar nicht existiert und somit nicht auf den Wert 0 geprüft werden kann.

Ereignis:Zug betritt ein GleisLok: alle LoksGleis: der TPA
Bedingung:Variable besitzt den WertName: _Trigger1.Merker

Wert: 1

Negieren ankreuzen

Aktionen:Für Bedingungen sind erfüllt  
 Variable setzenName: BÜ1Wert: +1
 Variable setzen_Trigger1.MerkerWert: 1
Aktion:Für Bedingungen sind nicht erfüllt  
 Variable setzen_Trigger1.MerkerWert: 0

Für alle weiteren TPA dieses Ereignis kopieren und nur das auslösende Gleis des TPA anpassen!!

Das Ereignis für den TPM.

Logik: verlässt ein Zug einen TPM wird von dem globalen Zähler eins abgezogen.

Ereignis:Zug verlässt ein GleisLok: alle LoksGleis: der TPM
Aktion:Für Bedingungen sind erfüllt  
 Variable setzenName: BÜ1Wert: -1

Für alle weiteren TPM dieses Ereignis kopieren und nur das Gleis des TPM anpassen!

Ereignis zum Schließen der Schranke.

Ereignis:Variable wird gesetztName: BÜ1Wert: >0
Aktion(en):Animation zum Schließen der Schranke  

Ich verwende unter: Straße, Straßen, Bundesstraßen den „Bundesstraße Bahnübergang halb“). Die Aktion wäre dann: Animation starten, Objekt: die Straße, Richtung: vorwärts. Startposition: aktuell.

Ereignis zum Öffnen der Schranke:

Ereignis:Variable wird gesetztName: BÜ1Wert: =0
Aktion:Animation zum Öffnen der Schranke  

Ich verwende unter: Straße, Straßen, Bundesstraßen den „Bundesstraße Bahnübergang halb“). Die Aktion wäre dann: Animation starten, Objekt: die Straße, Richtung: rückwärts. Startposition: aktuell.

Insgesamt hat man dann für jeden TPA und für jeden TPM jeweils ein Ereignis. Zusätzlich jeweils ein Ereignis zum Öffnen und Schließen der Schranken.

Das war's. Viel Spaß.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hi Kutscher,

die Ereignisse für die TPA sind richtig. Offensichtlich macht es keinen Unterschied ob Groß- oder Kleinschreibung von _Trigger. Das habe ich getestet.

Aber die Ereignisse zu den TPM sind falsch. Bei dir ist eine Bedingung hinterlegt, die dort nichts verloren hat: _Trigger1.Merker auf Wert 1 und Negieren. Das muss raus.

Die Ereignisse zum Öffnen und Schließen habe ich nicht getestet, sehe aber dort eine alternative Aktion. _Trigger.Merker auf den Wert 0. Wozu soll das gut sein?

 

Gruß,

Rudi

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