Jump to content

Empfohlene Beiträge

Geschrieben

Hallo in die Runde...

Hab' da so ein kleines Problem mit der EV-Funktion "Timer".

Das Szenario, das ich erreichen möchte, sieht so aus:

Eine Dampflok fährt in den Bahnhof ein, bremst schön langsam ab und bleibt schließlich stehe. In Natura dampft sie noch einen Augenblick nach. Das erreiche ich, indem ich sie nicht auf 0 km/h abbremse, sondern auf 0,001 km/h. Die Verzögerung habe ich ausgerechnet, und die Lok dampft noch 2 Sekunden nach. Dann stoppt der Dampfausstoß. Nun habe ich früher beobachtet, daß die Lok danach noch einen kurzen Dampfstoß ablässt. 

Und genau hier liegt mein Problem. Ich habe mal den entsprechenden Abschnitt der EV angefügt.

572011336_Wasisthierfalsch.JPG.2266936ca840bf855cbf18ef13f496e4.JPG

 

Und es funktioniert nicht, sie fängt an zu dampfen, aber hört nicht auf. Was habe ich da falsch gemacht?

 

Gruß,

Michael

Geschrieben (bearbeitet)
vor 7 Minuten schrieb Tesla:

Was habe ich da falsch gemacht?

Die Bedingung "Timer läuft nicht" wird nicht ausgewertet, weil die Bedingung "Timer läuft" erfüllt ist.
Das Ereignis wird insgesamt nur einmal ausgeführt, wenn der Kontakt betreten wird. Und bei diesem ersten Mal ist die Bedingung erfüllt.

Schmeiß den Timer raus. Der ist die falsche Wahl. Nutz stattdessen mehrere Verzögerungen.

Bearbeitet von Goetz
Geschrieben (bearbeitet)

Hallo Michael,

die Bedingung Timer läuft wird nur 1x geprüft.

Timer läuft - ja -Geschwindigkeit 0,001

nacher wird nicht mehr geprüft , also keine Geschwindigkeit 0

Gruß Martin

Bearbeitet von martin51
Götz war schneller
Geschrieben
vor 7 Minuten schrieb martin51:

nacher wird nicht mehr geprüft , also keine Geschwindigkeit 0

Hmm, das ist aber eigentlich unlogisch bis buggy (vom MBS her).

Ich kann mit einer Bedingung prüfen, ob der Timer läuft und nur die Bedingung unter "läuft" wird ausgeführt und die andere nicht. Ist ehrlich gesagt DOOF.

 

Gruß,

Michael

 

@Goetz

Danke für Deine EV!

Geschrieben (bearbeitet)
vor 6 Minuten schrieb Tesla:

das ist aber eigentlich unlogisch

Nein, das ist nicht unlogisch. Jede Bedingung wird nur einmal geprüft.

Bedingungen sind kein "Dauerbrenner", der bei jeder Änderung erneut reagiert.

Du musst lernen, Bedingungen und Ereignisse zu unterscheiden.

Bearbeitet von Goetz
Geschrieben (bearbeitet)
vor 12 Minuten schrieb Goetz:

Bedingungen sind kein "Dauerbrenner", der bei jeder Änderung erneut reagiert.

Hmm, wird die Bedingung nicht bei jedem Durchlauf der EV geprüft?

Bearbeitet von Tesla
Geschrieben (bearbeitet)
vor 22 Minuten schrieb Tesla:

wird die Bedingung nicht bei jedem Durchlauf der EV geprüft?

Es gibt ein Ereignis, dass jedesmal, wenn es eintritt, deine Aktionsliste einmal triggert.

In dem Augenblick, wenn ein Zug deinen Kontakt betritt, wird die zugeordnete Aktionsliste genau einmal abgearbeitet. Bedingungen in dieser Liste sind dann jeweils "entweder/oder" Entscheidungen. Aber der Ablauf nimmt nur einen Weg. Entweder diesen oder jenen.

Wird der Kontakt erneut betreten, dann wird die Aktionsliste ein weiteres Mal abgespult.

Das Bedingungen ein entweder/oder bedeuten ist keine Besonderheit der EV. Das findest du genau so in jeder Programmiersprache.

Bearbeitet von Goetz
Schreibfehler korrigiert
Geschrieben

Mein Fehler war, daß ich in dem Ereignis "Gleiskontakt wird betreten" befand. Und nur dann werden die Bedingungen geprüft. Du weißt schon: Wald vor lauter Bäume... einfach nicht bedacht, daß ich mich ja in einem bestimmten Ereignis befand.

Geschrieben (bearbeitet)

Da ich das Bild gerade fertig habe (und es vielleicht anderen hilft, Bedingungen besser zu verstehen) ...:

565833976_AuslserundBedingung.jpg.d006ecfc9aaa36fa225f51a791e80415.jpg

 

Ich wüsste übrigens kein Ereignis, in dem deine Vorgehensweise funktionieren würde.

Das Einzige, was eine wiederholte Prüfung der Bedingung zur Folge hätte, wäre das Ereignis "Timer ist abgelaufen".
Und in solch einem Ereignis wäre deine Bedingung nie erfüllt.

Bearbeitet von Goetz

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