baki2512 Geschrieben 28. Februar 2020 Geschrieben 28. Februar 2020 Hallo und guten Abnd, ich habe zwei "Probleme" mit der Timerfunktion: Richtet man einen Timer ein, steht der Haken immer auf "automatischer Neustart". OK - benutze ich zwar bislang noch nicht, aber man kann den Haken ja entfernen. Setzt man den Timer dann in der EV ein, sitzt der Haken wieder auf "automatischer Neustart". Jetzt also nicht vergessen, hier den Haken zu entfernen. Beim zweiten Einsatz an anderer Stelle der Ev habe - zumindest ich es - vergessen, dass der Haken hier ja wieder aus Neustart steht - Folge: meine Züge fahren erst einmal durcheinander, bis ich den Grund gefunden habe. Daher meine Frage: Wird der Neustart des Timers so oft vewendet, dass es Sinn macht diesen Haken programmtechnisch zu setzen oder wird diese Funktion eher selten benutzt, dann könnte mE der Haken weg und jeder, der den Neustart möchte, setzt ihn. Ich weiß nicht, wie die Mehrheit dies sieht. Zweiter Punkt ist Folgender: Bei mir fährt ein Zug in ein Bahnhofsgleis ein und soll nach zB 60 sek wieder starten. Zwischenzeitlich kreuzt aber ein anderer Zug das Ausfahrtgleis, also Timer stoppen und nach Freigabe des Gleises wieder den Timer starten. Das klappt auch soweit gut - aber der kreuzende Zug kann in der ersten Sekunde den Timer stoppen oder in der letzten Sekunde, der kreuzende Zug gibt bei mir zB eine Laufzeit von 30 Sek vor, der erste Zug kann also 31 Sek oder 89 Sek halten, es sollten aber nur 60 Sek plus Durchfahrtzeit sein. der autoimatische Neustart hilft mir dabei auch nicht, denn der würde auch wieder nur 60 Sek vorgeben. Vielleicht übersehe ich hier etwas. Aber wenn nicht wäre die Frage, ob man die Timerfunktion dahin ergänzen könnte, dass es nicht heißt "Timer starten" sondern "Timer weiterlaufen lassen". Gruß Baki
Neo Geschrieben 28. Februar 2020 Geschrieben 28. Februar 2020 Hallo Baki, vor 30 Minuten schrieb baki2512: Wird der Neustart des Timers so oft vewendet, dass es Sinn macht diesen Haken programmtechnisch zu setzen ja, denn Timer sollten nur für regelmäßig wiederkehrende Aktionen genutzt werden. Wenn du nur einmalig (oder ab und zu) eine Aktion zeitverzögert ausführen möchtest, dann nutze die Aktion "Ausführung verzögern". Viele Grüße, Neo
HaNNoveraNer Geschrieben 29. Februar 2020 Geschrieben 29. Februar 2020 (bearbeitet) Hi Baki Zweiter Punkt: Du mußt einen Timer nutzen, der die Sekunden zählt. Jedesmal, wenn der Timer dran ist, erhöhst Du den Wert einer Variablen um 1. Während der Zug kreuzt, stoppst Du den Timer, oder erhöhst die Variable einfach nicht weiter. Wenn die Variable dann = 60 ist, hast Du Deine Wartezeit + Zugkreuztzeit. :-) Also nochmal langsam: Zug 1 = EInfahrender Zug Zug 2 = Kreuzender Zug Variable x = Sekundenzähler Variable y = Blocker, wenn Zug kreuzt: y=1, sonst y=0 1. Zug 1 setzt Variable x=0 2. 1s Timer hat als Aktion: x=x+1, aber nur, wenn z.B. y=0 ist 3. 1s Timer fragt x ab, ob x =60 ist, wenn ja, dann schaltet er das Abfahrsignal für Zug 1 4. Zug 2 will kreuzen und setzt y=1 5. Zug 2 ist fertig mit kreuzen (Zugende) und setzt y=0 -> x kann weiter zählen Dabei kann der Timer ruhig endlos laufen, da x ja der 60s Zähler ist und auf 0 zurück gesetzt wird. Gruß Thomas Bearbeitet 29. Februar 2020 von HaNNoveraNer
Timba Geschrieben 29. Februar 2020 Geschrieben 29. Februar 2020 Hallo Baki vor 10 Stunden schrieb baki2512: Zweiter Punkt ist Folgender: Bei mir fährt ein Zug in ein Bahnhofsgleis ein und soll nach zB 60 sek wieder starten. Zwischenzeitlich kreuzt aber ein anderer Zug das Ausfahrtgleis, also Timer stoppen und nach Freigabe des Gleises wieder den Timer starten. Das klappt auch soweit gut - aber der kreuzende Zug kann in der ersten Sekunde den Timer stoppen oder in der letzten Sekunde, der kreuzende Zug gibt bei mir zB eine Laufzeit von 30 Sek vor, der erste Zug kann also 31 Sek oder 89 Sek halten, es sollten aber nur 60 Sek plus Durchfahrtzeit sein. der autoimatische Neustart hilft mir dabei auch nicht, denn der würde auch wieder nur 60 Sek vorgeben. Vielleicht übersehe ich hier etwas. Aber wenn nicht wäre die Frage, ob man die Timerfunktion dahin ergänzen könnte, dass es nicht heißt "Timer starten" sondern "Timer weiterlaufen lassen". was du da schreibst erinnert mich sehr an meine eigenen ersten Schritte hier. Ich hatte überhaupt keine Ahnung von Eisenbahn und Modellbau, fand aber MBS interessant, war schnell infiziert, habe aber nicht in dieses Forum geschaut und auf eigene Faust experimentiert und mir die aberwitzigsten Konstrukte zusammenprogrammiert. Zwar funktionierte es, zumindest irgendwie, aber nichts von dem war wirklich erfolgreich und zufriedenstellend. Als ich dann doch noch den Weg ins Forum fand konnte ich unheimlich viel von den erfahrenen MBS-Nutzern und Eisenbahnexperten lernen und habe gemerkt, wie umständlich und ineffektiv meine ersten Versuche waren. Aufgrund dieser meiner eigenen Erfahrung kann ich dir nur wärmstens empfehlen, dir die Tutorials von @BahnLand bezüglich des Lock-Mechanismus durchzulesen. Das Prinzip ist eigentlich sehr einfach, wenn man's erst verstanden hat und dein oben beschriebenes Problem ist plötzlich überhaupt kein Problem mehr. Ganz ohne Timer. Probier's ruhig mal, es lohnt sich. Gruß Timba
Goetz Geschrieben 29. Februar 2020 Geschrieben 29. Februar 2020 vor 13 Stunden schrieb baki2512: Bei mir fährt ein Zug in ein Bahnhofsgleis ein und soll nach zB 60 sek wieder starten. Zwischenzeitlich kreuzt aber ein anderer Zug das Ausfahrtgleis, also Timer stoppen und nach Freigabe des Gleises wieder den Timer starten. Das ist kein guter Ansatz, Baki Zwei Bedingungen müssen erfüllt sein, damit dein Zug fahren darf Die Mindestzeit muss abgelaufen sein Es darf kein Zug kreuzen. Stopp den Timer (besser: die verzögerte Ausführung) nicht. Sondern setz nach Ablauf der Zeit eine Variable auf true. Sie steht dafür, dass die Wartezeit um ist. Ein kreuzender Zug setzt eine zweite Variable auf false. Ist er durch, dann wird diese Variable wieder auf true gesetzt. Wenn sich eine der beiden Variablen auf true ändert, dann prüf ob die zweite Variable auch auf true steht. Falls ja, dann darf der Zug abfahren.
baki2512 Geschrieben 1. März 2020 Autor Geschrieben 1. März 2020 Hallo und vielen Dank für Eure Antworten, dann werde ich mich mal eingehend mit diesen Lösungsvorschlägen befassen. Aber erst einmal muss ich mich mit einem anderen Problem außerhalb des MBS befassen. Gruß Baki
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden