HaNNoveraNer Posted October 10, 2020 Share Posted October 10, 2020 (edited) Hallo @Neo Es gibt ein kleines Problemchen mit der Verzögerung in dem neuen Ereignis: Lok stoppt. Es scheint so, als würde das MBS die Verzögerung auf das letzte ZURÜCKLIEGENDE Stop der Lok beziehen. Das gibt bei folgendem Beispiel Probleme: Eine Lok fährt auf einen Bremskontakt zu und stoppt dort. Dieser Gleiskontakt setzt dann eine Variable, die beim NÄCHSTEN Stop der Lok bestimmt, was das Stop-Ereignis tun soll. In der Stop-Ereignis Routine ist aber eine 5s Verzögerung eingebaut. Was passiert: Das Ereignis wird 5s nach dem Stop beim Gleiskontakt ausgeführt und nicht erst beim NÄCHSTEN Stop der Lok. Ich hoffe ich hab mich verständlich ausgedrückt. Hab leider kein Beispiel, da das in einer komplexen Steuerung auftritt. Kann man dieses Problem schon im MBS Code irgendwie umgehen? Es bräuchte irgendwie einen RESET (benutzergesteuert?) des Stop Ereignisses, wenn noch eine Verzögerung läuft, man aber schon das nächste Stop Ereignis definieren möchte. Gruß Thomas Edited October 10, 2020 by HaNNoveraNer Link to comment Share on other sites More sharing options...
Neo Posted October 10, 2020 Share Posted October 10, 2020 Hallo Thomas, anhand deiner Beschreibung kann ich leider keinen Fehler ausmachen, für mich klingt es so, als würde die Verzögerung genau das machen, was sie soll, nämlich eine Aktion verzögern. Ohne (extrahiertes) Beispiel werden wir nur raten können. Viele Grüße, Neo Link to comment Share on other sites More sharing options...
HaNNoveraNer Posted October 10, 2020 Author Share Posted October 10, 2020 (edited) Hallo @Neo Achte auf die untere Weiche. Die soll erst 5s nachdem die Lok angekuppelt hat auf GERADEAUS geschaltet werden. Das Flag dazu wird im Gleiskontakt gesetzt. Erst wenn das Flag gesetzt ist, soll das Lokstop-Ereignis seine Aktion beim nächsten Stop durchführen. Nicht schon vorher, wie leider in diesem Beispiel. aaa.mbp Edited October 10, 2020 by HaNNoveraNer Link to comment Share on other sites More sharing options...
HaNNoveraNer Posted October 10, 2020 Author Share Posted October 10, 2020 Inzwischen habe ich eine Lösung gefunden. Aber eine kleine Falle ist es schon. Das sieht man so nicht auf den ersten Blick im Beispiel 1, daß es so nicht klappt. aaa.mbp Link to comment Share on other sites More sharing options...
Goetz Posted October 10, 2020 Share Posted October 10, 2020 (edited) vor 6 Stunden schrieb HaNNoveraNer: Aber eine kleine Falle ist es schon. ... die du dir da selbst stellst. Ab Überfahren des Kontakts wartet die EV 5 Sekunden, dann setzt sie den Wert auf 1 Ab Anhalten (also minimal später!) wartet die EV ebenfalls 5 Sekunden, dann prüft sie, ob der Wert 1 ist. Und natürlich ist er das. Er wurde ja einen Sekundenbruchteil vorher umgeschaltet. Denn ein Zug kommt kurz nach Überfahren des Kontakts zum Stillstand. Weil der Zug auf dem Kontakt stehen soll, der ihn stoppt. Damit man ihn ansprechen kann, wenn man ihn wieder losschicken will. Du musst das Setzen der Variablen also etwas mehr verzögern. Eine Sekunde würde auch schon reichen. Ich war faul und habe die erste Verzögerung kopiert. Viele Grüße Götz Nachtrag: Deine Lösung ist die bessere! Edited October 10, 2020 by Goetz Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now