Jump to content
Sign in to follow this  
Tesla

Was ist hier falsch?

Recommended Posts

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

Share this post


Link to post
Share on other sites
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.

Edited by Goetz

Share this post


Link to post
Share on other sites

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

Edited by martin51
Götz war schneller

Share this post


Link to post
Share on other sites

Hallo Goetz, hallo Martin,

 

Problem erkannt und verstanden. Da  werde ich es mal mit den Verzögerungen probieren.

 

Danke und Gruß,

Michael

Share this post


Link to post
Share on other sites
vor 2 Minuten schrieb Tesla:

Da  werde ich es mal mit den Verzögerungen probieren.

Das ist einfacher als dein Konstrukt   ;)

 

Dampfpause.jpg.52840be0439b12c4fe803652250cf67a.jpg

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites
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.

Edited by Goetz

Share this post


Link to post
Share on other sites

doof ? du fährst ja nicht dauernd auf dem Gleiskontakt, der das Ereignis und damit die Prüfung startet, hin und her :D

Share this post


Link to post
Share on other sites

Hallo,

 

so ists geworden... für den Anfang bin ich zufrieden, kommt noch bisschen Timing.

 

Gruß,

Michael

 

 

Share this post


Link to post
Share on other sites
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?

Edited by Tesla

Share this post


Link to post
Share on other sites
vor 11 Minuten schrieb martin51:

du fährst ja nicht dauernd auf dem Gleiskontakt,

ja, bin doof... hast ja vollkommen recht :(

Share this post


Link to post
Share on other sites
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.

Edited by Goetz
Schreibfehler korrigiert

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Edited by Goetz

Share this post


Link to post
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
Sign in to follow this  

×