Jump to content

Empfohlene Beiträge

Geschrieben

Hallo Neo,

im Wiki steht bei den Auslösern unter "Countdown läuft ab", dass mit dem _Trigger1 der Name vom abgelaufenen Countdown übergeben wird. Ich bekomme das nicht hin. Hast du mal ein Beispiel für mich.

Gruß
Wolfgang

Geschrieben

Hallo zusammen,

die Arbeitsweise mit dem _Trigger1 bei "Countdown läuft ab" habe ich doch noch herausgefunden.

Jetzt habe ich ein neues Problem bei dem ich auf die Hilfe der EV-Profis hoffe. Folgende Aufgabe habe ich mir gestellt:

Erstellung eines Bremsmoduls das nach betreten eines Gleises das Fahrzeug nach vorgegebenen Werten abbremst bzw. stillsetzt. Die Variablen sollen als Objektvariablen am definierten Auslösegleis hängen. Wird das Modul kopiert und für eine weitere Bremsstelle an ein anderes Gleis gekoppelt, soll durch wenig Änderung eine neue Bremsstrecke vorliegen. Es werden die Trigger-Funktionen verwendet um eine saubere Zuordnung zu erreichen.

In meiner beigefügten Anlage habe ich zwei Bremsgleise (rot) angelegt. Die Bremsgleise dürfen nur mit positiven Geschwindigkeitswerten angefahren werden, sonst keine Funktion. Das rechte Bremsgleis (00_BrmsGls_Gls01) mit Bremsgruppe ist in der EV derzeit deaktiviert.

Funktion: Wird das "Bremsgleis_li" z. B. mit 100 km/h angefahren, wird die Lok bis kurz vor dem rechten Bremsgleis (00_BrmsGls_Gls01) zum Stillstand gebracht. So wäre die Funktion für alle Bremsstrecken gedacht.

Aktiviere ich in der EV die zweite Bremsgruppe und befahre die linke Bremsstrecke erneut, wird die Lok in der halben Strecke angehalten (so nicht ok). Es hat den Anschein als ob beide Timer angestoßen werden und ihre Aktionen auf die Lok Einfluß nehmen. Das wäre für meine Funktion nicht schön. Denn je mehr Bremsstrecken auf einer Anlage montert werden, desto schneller erfolgt die Abbremsung.

Gibt es für mein Bremsmodul eine Lösung? Was habe ich falsch gemacht?

Danke allen bereits im voraus für euere Hilfe sagt
der Wolfgang

Bremsen_mit_Objekvariable_Gleis.mbp

Geschrieben (bearbeitet)

hallo Wolfgang,

mich würde das anzeige des triggers interessieren - ich habe es nämlich nicht hinbekommen den wert in ein textfeld zuschreiben.

vg quackster

Bearbeitet von quackster
Geschrieben

Hallo Quackster,

Über den Ausdruck $(_Trigger1._Name).Lokgeschwindigkeit lese ich zum Beispiel den Inhalt aus einer Objekvariablen heraus, die in den Timer-Aktionen abgehandelt werden. Willst du den Trigger1-Begriff von "Countdown läuft ab" in einer Variablen speichern, so schreibe bei "Variable setzen" Variablenname= Test, Wert = $_Trigger1._Name. Hier wird dann der Name vom abgelaufenen Countdown gesetzt.

Gruß
Wolfgang

Geschrieben

hallo leute

ich bekomme das einfach nicht hin, den _Trigger1 namen des abgelaufenden countdown direkt in ein textfeld zu schreiben.

ist mir aber auch nicht so wichtig, ich hatte mich nur auf grund der ersten frage von Wolfgang dafür interessiert

vg quackster

Geschrieben

Hallo Lutz,

und wie erreiche ich dass immer nur der für diesen Gleisabschnitt zuteffende Timer aufgerufen wird? Wie muss der Ausdruck bei "Countown läuft ab" im Feld "Name" lauten, damit der richtige Timer verwendet wird?

fragt ratlos der
Wolfgang

Geschrieben (bearbeitet)

Wolfgang,

da bin ich auch ratlos, mein herumprobieren hat bisher nichts gebracht :(; ich versuche mal den Umweg über eine Variable.

Lutz

P.S. bringt auch nichts, kommt aufs gleiche raus >:(

Bearbeitet von FriLu
Geschrieben

Hallo Wolfgang,

 ich glaube, dass Du an der im nachfolgenden Bild eingekreisten Stelle etwas zuviel "getrickst" hast.

EV1.jpg.3e61985874a5d4a11ca167b757e7b0a2.jpg

Wie Lutz bereits festgestellt hat, scheinen bei dieser Definition beide Countdowns (für beide Bremsgleise) immer zusammen ausgelöst zu werden.

Ich denke, dass Du hier nicht drum g´herun kommst, die Countdowns explizit und nicht übe reine Variable zu benennen. Ich habe hierzu "(rbenfalls) Deine Demo erweitert:

EV2.jpg.89a543f60a667f0e9d5b49601e55cbaf.jpg

Gruppe "Versuch 1" enthälte Deine EV, Gruppe "Versuch 2" eine von mir modifizierte Kopie derselben. Damit funktioniert es einwandfrei. Probier's einfach mal aus.

Bremsen_mit_Objektbvariable_Gleis-1b.mbp

Viele Grüße
BahnLand

 

Geschrieben (bearbeitet)

Hallo,

jetzt hab' ich's:

Durch die Verwendung der Bezeichnung "$_Trigger1._Name" für den Namen beider Countdown-Ereignisdefinitionen "Bremsgleis_li" und "00_BrmsGls_Gls01" wird dieses Ereignis sowohl nach dem Start des einen Countdowns als auch nach dem Start des anderen Countdowns immer zweimal ausgelöst, wobei wegen des "dynamischen" Bestandteils "$_Trigger1" im Namen der auslösende Countdown entweder "Bremsgleis_li" oder "00_BrmsGls_Gls01" ist - in Abhängigkeit davon, in welches Bremsgleis die Lok eingefahren ist. Man kann also durch die Verwendung einer Variablen für den Auslöser des Ereignisses nicht verhindern, dass bei mehreren Ereignisdefinitionen mit derselben Referenz eines Auslösers (also auch bei der Verwendung der Variable) tatsächlich derselbe Auslöser adressiert wird.

Mit anderen Worten: Das Countdown-Ereignis mit "Name=$_Trigger1._Name" verhält sich genau so, wie wenn man zwei Countdown-Ereignisse mit "Name=Bremsgleis_li" und mit "Name=00_BrmsGls_Gls01" in beiden Ereignisgruppen defniert hätte. Und damit ist klar, warum der Timer jeweils doppelt ausgeführt und daher die Geschwindigkeit jeweils gleich zweimal heruntergesetzt wird - was letzendlich zur Halbierung des Bremswegs führt.

Es bleibt also nichts anderes übrig, als in den beiden Ereignisgruppen den jeweiligen Countdown jeweils explizit zu adressieren. Nur hierdurch kann erreicht werden, dass in jeder Ereihnisgruppe immer nur das Ereignis eines (des richtigen) Countowns abgefragt und dadurch der erwartete Bremsweg durchlaufen wird.

An der EV selbst liegt's also nicht. Die arbeitet bei dieser Konstruktion völlig korrekt.

Viele Grüße
BahnLand

Bearbeitet von BahnLand
Geschrieben

Hallo,

so scheint es zu funktionieren. Wie Bahnland richtigerweise gesagt hat muss wahrscheinlich beim Ereignis "Countdown läuft ab" explizit der Name des abgelaufenen Countdowns im Feld "Name" angegeben werden. Da ich hier immer den gleichen Namen vom Gleisnamen verwende setze ich hier explizit "Bremsgleis_li" bzw. "00_BrmsGls_Gls01" in dieses Feld . Dieser Name kann später mit der _Trigger1-Funktion auch ermittelt und verwendet werden.

Ich hänge die geänderte Anlage von Lutz nochmal an.

Gruß
Wolfgang

Bremsen_mit_Objekvariable_Gleis_FriLu_01.mbp

Geschrieben (bearbeitet)

Hallo,

aus gegebenen Anlass 9_9 hab ich meinen "Konstanten" Bremsweg (naja nahezu konstant) hervorgeholt und an V4 angepasst (lief merkwürdigerweise nicht rund).

Unterschiedliche Geschwindigkeiten und richtungsunabhängigkeit waren hier das Ziel.

Lutz

 

 

 

Konstanter_Bremsweg.mbp

Bearbeitet von FriLu
neue Version, mit Variablenanzeige
Geschrieben

Hallo Lutz,

das ist die "Hohe Schule" des Variableneinsatzes.
Wie du den Bremsweg an die unterschiedlichen Geschwindigkeiten anpasst werde ich morgen ergründen. Für heute ist genug gegrübelt.

Gruß
Wolfgang

Geschrieben

Hallo Lutz,

alle Achtung, in der Berechnung für die "Bremsrampe" steckt schon "KnoffHoff". Dadurch, das sich der Timer immer wieder selber aufruft, werden die Werte in den Objektvariablen immer neu berechnet und der Lok zugewiesen. Auch die Berechnung der .dec-Variable ist schon beeindruckend.(y)

Gruß
Wolfgang

Geschrieben (bearbeitet)

Hallo,

hab oben mal eine neue Version, mit Anzeige der .time- und der .dec-Variable hochgeladen.

Lutz

PS: gerade erneuert, war noch ein Fehler drin :$

Bearbeitet von FriLu

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