Jump to content

Rudi

Mitglieder
  • Gesamte Inhalte

    3
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Rudi

  1. 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
  2. Hallo, ich habe in einem anderen Thread dazu was geschrieben ... http://www.3d-modellbahn.de/comment/6017#comment-6017 Gruß, Rudi
  3. Hallo Gemeinde. Ich habe eine Lösung für Bahnübergänge entwickelt, die ich exemplarisch an folgendem Beispiel zeige: 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 TPABedingung:Variable besitzt den WertName: _Trigger1.MerkerWert: 1 Negieren ankreuzen Aktionen:Für Bedingungen sind erfüllt   Variable setzenName: BÜ1Wert: +1 Variable setzen_Trigger1.MerkerWert: 1Aktion:Für Bedingungen sind nicht erfüllt   Variable setzen_Trigger1.MerkerWert: 0Fü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 TPMAktion:Für Bedingungen sind erfüllt   Variable setzenName: BÜ1Wert: -1Fü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: >0Aktion(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: =0Aktion: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ß.
×
×
  • Neu erstellen...