HaNNoveraNer Geschrieben 10. Oktober 2020 Geschrieben 10. Oktober 2020 (bearbeitet) 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 Bearbeitet 10. Oktober 2020 von HaNNoveraNer
Neo Geschrieben 10. Oktober 2020 Geschrieben 10. Oktober 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
HaNNoveraNer Geschrieben 10. Oktober 2020 Autor Geschrieben 10. Oktober 2020 (bearbeitet) 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 Bearbeitet 10. Oktober 2020 von HaNNoveraNer
HaNNoveraNer Geschrieben 10. Oktober 2020 Autor Geschrieben 10. Oktober 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
Goetz Geschrieben 10. Oktober 2020 Geschrieben 10. Oktober 2020 (bearbeitet) 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! Bearbeitet 10. Oktober 2020 von Goetz
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