Detlev2 Geschrieben 4. Dezember 2017 Geschrieben 4. Dezember 2017 (bearbeitet) Hallo zusammen, ich habe noch die Version V3 und habe damit eine Anlage gebaut. Die Zugabläufe habe ich soweit programmiert. Nun habe ich aber eine Situation, da soll ein Zug mit Waggons in ein Abstellgleis fahren. Eigentlich kein großes Thema, dachte ich. Ich habe die Lokgeschwindigkeit auf einem bestimmten Gleis auf 0 gesetzt und damit sollte die Lok halten, tut sie aber nicht. Sie fährt gegen den Prellbock und erst in der Vorwärtsbewegung hält die Lok auf dem Gleis an. Mit dem Befehl "Lok verlässt das Gleis" funktioniert es im Rückwärtsgang auch nicht, nur im Vorwärtsgang. Muss ich dem Programm irgendwo sagen, das die Lok rückwärts fährt? Ich würde mich freuen, wenn mir jemand helfen könnte. MfG Detlev Ah, habe auf meiner Teststrecke noch mal getestet. Wenn die Lok ohne Waggon rückwärts fährt, dann bleibt sie auf dem Haltegleis stehen. Hat die Lok aber einen Waggon, bleibt sie auf dem Haltegleis nicht stehen. Woran liegt das? Muss ich den Waggon im Programm mit einbeziehen? MfG Detlev Bearbeitet 4. Dezember 2017 von Detlev2 Neue Erkäntniss
streit_ross Geschrieben 4. Dezember 2017 Geschrieben 4. Dezember 2017 Hallo Detlev, ich hoffe, ich habe Dein Problem richtig verstanden. Eine bestimmte Lok drückt einen angehängten Zug rückwärts in ein Abstellgleis. Im Ereignis hast Du angegeben, das die Lok (also eigentlich der erste Waggon) ein bestimmtes Gleis betritt . In der Aktion solltest Du bei der Frage, auf welchem Gleis die Lokgeschwindigkeit 0 sein soll, statt dem bestimmten Gleis stattdessen "Alle Gleise" angeben. Besser wäre es natürlich, Du könntest ein Bild mit der Siuation hier einstellen. Aber versuche erstmal meinen Vorschlag. Viele Grüße Streitross
BahnLand Geschrieben 4. Dezember 2017 Geschrieben 4. Dezember 2017 Hallo Detlev, kannst Du Deine Anlage mittels "Anlage speichern unter ..." und dem dann links unten erscheinenden Button "Exportieren" als mbp-Datei abspeichern und diese hier im Forum als "Anhang" hinzufügen? Dann könnte man sich die Situation direkt ansehen und hätte auch gleich die Ereiginisssteuerung dabei. Allein aufgrund Deiner obigen Angaben lässt sich das Problem sehr schwer diagnostizieren. Viele Grüße BahnLand
Detlev2 Geschrieben 4. Dezember 2017 Autor Geschrieben 4. Dezember 2017 Hallo streit_ross und BahnLand, anbei meine kleine Teststrecke, die mein kleines Problem verdeutlicht. MfG Detlev Rückwärts.mbp
streit_ross Geschrieben 4. Dezember 2017 Geschrieben 4. Dezember 2017 Hallo Detlev, ich habe Deine EV für die Rückwärtsfahrt wie bereits in meiner ersten Antwort probrweise geändert und es hat funktioniert, Anbei die geänderte EV als Bild. Viele Grüße Streitross
Detlev2 Geschrieben 4. Dezember 2017 Autor Geschrieben 4. Dezember 2017 Hallo Streitross, den Programmpunkt "Fahrzeuggeschwindigkeit setzen" habe ich nicht. Gruß Detlev
EASY Geschrieben 4. Dezember 2017 Geschrieben 4. Dezember 2017 Hallo Detlev2 vor 2 Stunden schrieb Detlev2: den Programmpunkt "Fahrzeuggeschwindigkeit setzen" habe ich nicht. ... gibt es erst seit der Version 4... wie es aussieht hast Du noch Version 3... "Lokgeschwindigkeit setzen" ist in diesem Fall schon richtig... P.S. ...bis Version 3 kann man nur Loks eine Geschwindigkeit zuweisen. Ab Version 4 zusätzlich anderen Fahrzeugen... deshalb die Begriffsänderung. Gruß EASY
Detlev2 Geschrieben 4. Dezember 2017 Autor Geschrieben 4. Dezember 2017 Danke Easy, siehe oben, mein erster Satz. Damit ist das Problem zwar nicht gelöst, aber jetzt weiß ich wenigstens warum. Mit freundlichen Grüßen Detlev
Detlev2 Geschrieben 4. Dezember 2017 Autor Geschrieben 4. Dezember 2017 An alle zur Info, Unter V3 beim Rückwärtsfahren, Ereignis = Lok Name auf Haltegleis. Aktion = Lokgeschwindigkeit auf 0 und das auf allen Gleisen. Das funktioniert auf der Teststrecke. Mal sehen ob es auch auf meiner Anlage funktioniert. Wünsche allen ein frohes Weihnachtsfest und einen guten Rutsch Mit freundlichen Grüßen Detlev Rückwärts-Neu.mbp
BahnLand Geschrieben 4. Dezember 2017 Geschrieben 4. Dezember 2017 Hallo Detlev, auf Deiner "richtigen" Anlage wird ja nicht nur eine spezifische Lok (hier im Beispiel die EL4 aus Trossingen) am Haltegleis eintreffen, sondern es können wahrscheinlich auch andere Züge mit anderen Loks sein. Dann funktioniert der oben gezeigte Lösungsansatz nicht mehr - es sei denn, Du generierst für jede einzelne Lok eine separate Ereignisdefinition. Deshalb schlage ich folgende "Verallgemeinerung" vor: Lasse das Ereignis nicht nur bei einer bestimmten Lok, die das hier referenzierte Gleis betritt, auftreten, sondern bei jeder beliebigen Lok (jedem beliebigen Zug), die (der) das Gleis betritt. Wähle bei der Aktion "Lokgeschwindigkeit setzen" nicht eine konkrete Lok, sondern das Schlüsselwort "[Auslöser 1: Lok]" aus der Auswahlliste aus. Es wird dann genau die Lok desjenigen Zuges, welcher das Gleis betritt, angehalten - und keine andere. Dies funktioniert auch bei geschobenen Zügen. Wenn Du unten bei "Ist-Geschwindigkeit setzen" das Häkchen entfernst, bleibt der Zug nicht abrupt stehen, sondern bremst "weich" ab. Bei geschobenen Zügen kommt die Lok mit großer Wahrscheinlichkeit auf einem anderen Gleis als dem Haltegleis (hier im Beispiel "14904-Rückwärts-Halt") zum Stehen. Beim Starten kann die Lok also nicht über dieses Haltegleis adressiert werden. Deshalb benötigst Du eine Variable, in der Du den Namen der abgehaltenen Lok zwischenspeichern kannst. Ich habe deshalb der Ereignisdefinition "Zug betritt Gleis" eine weitere Aktion "Variable setzen" hinzugefügt. Dieser Variable habe ich "willkürlich" den Namen "Lok-Variable" gegeben. Weise dieser den Wert zu, der in der "System"-Variable "_Trigger1._Name" hinterlegt ist (das vorangestellte $-Zeichen gibt an, dass der Wert dieser Variable verwendet werden soll). "_Trigger1" identifiziert beim Ereignis "Zug betritt Gleis" immer die auslösende Lok. Wenn Du nun zu einem späteren eitpunkt über die Ereignisverwaltung den Zug wieder starten möchtest, kannst Du die Lok über den zwischengespeicherten Wert in der Lok-Variable spezifizieren ($Lok-Variable = Inhalt von Lok-Variable). Du darfst dabei natürlich kein Gleis angeben, da Du ja nicht weißt, auf welchem Gleis die Lok tatsächlich steht. Mit dieser Vorgehensweise kannst Du beliebige Züge (egal ob gezogen oder geschoben) an beliebigen (vordefinierten und entsprechend ausgezeichneten) Gleisabschnitten anhalten und wieder anfahren lassen, wobei Du allerdings für jedes "Haltegleis" eine eigene Ereignisdefinition benötigst. Diese haben aber alle denselben Aufbau. Viele Grüße BahnLand
Detlev2 Geschrieben 6. Dezember 2017 Autor Geschrieben 6. Dezember 2017 Hallo BahnLand, Sorry das ich mich erst jetzt melde, leider hat die Zeit es nicht zugelassen. Vielen herzlichen Dank für die ausführliche Anleitung. Leider konnte ich es noch nicht ausprobieren, aber nachdem ich diese Zeilen geschrieben habe versuche ich Deine Anleitung nachzuvollziehen. Mit freundlichen Grüßen Detlev
Detlev2 Geschrieben 6. Dezember 2017 Autor Geschrieben 6. Dezember 2017 Hallo BahnLand, ich habe jetzt Deinen Ablauf eingesetzt und , wie soll es anders sein, es funktioniert natürlich. Nun habe ich mir aber gedacht, dass die Lok auch wieder anfahren soll. Eigentlich bin ich der Meinung, dass es so funktionieren sollte wie ich es EV eingegeben habe. Leider wird die Lokgeschwindigkeit von 100 auf -100 nicht umgesetzt. Sicher geht das auch, aber wie? Vielleicht kannst Du mir nochmal helfen. Vielen Dank im Voraus. Mit freundlichen Grüßen Detlev Hin-und-Her.mbp
SualokinK Geschrieben 6. Dezember 2017 Geschrieben 6. Dezember 2017 (bearbeitet) Hallo Detlev, benenne einfach mal einen der Countdowns um, z.B. in "WartenR" und schon funktioniert es. Wenn Du beim "Start Rückwärts" und "Start Vorwärts" den gleichen Countdown aufrufst, kann das MBS ja nicht wissen, ob die Lok Vorwärts oder Rückwärts fahren soll. Schöne Grüße SputniKK Test.mbp Bearbeitet 6. Dezember 2017 von SputniKK
Detlev2 Geschrieben 6. Dezember 2017 Autor Geschrieben 6. Dezember 2017 Hallo SputniKK, Es hat noch etwas gedauert, aber jetzt funktioniert es. Ich habe bei "Start Vorwärts" und "Start Rückwärts" jeweils den Countdown-Name vertauscht. Überings, Deine "Test.mbp" konnte ich nicht starten, denn ich habe noch V3. Vielen Dank Mit freundlichen Grüßen Detlev
SualokinK Geschrieben 7. Dezember 2017 Geschrieben 7. Dezember 2017 Hallo Detlev, es freut mich, dass ich helfen konnte. Schöne Grüße SputniKK
Maxxx Geschrieben 13. Oktober 2018 Geschrieben 13. Oktober 2018 Hallo alle, nachdem ich mich den ganzen Tag mit fast dem gleichen Problem herumgequält habe, habe ich dieses Thema im Forum gefunden. Allerdings trifft es das nicht ganz, weil in dieser beschriebenen Situation jeweils der erste geschobene Wagen am vorgegebenen Wartegleis hält. Ich möchte aber nicht den ersten geschobenen Wagen, sondern die Lok am Wartegleis halten lassen. Gibt es auch hierfür eine Lösung? Schon jetzt vielen Dank für eure Hilfe Gruß Werner
pfjoh Geschrieben 13. Oktober 2018 Geschrieben 13. Oktober 2018 Hallo Probier mal das: Vor dem Wartegleis ein Ereignisgleis setzten. dann in der EV Ereignis : Lok betritt Gleis, Unter Bedingungen Lok ( mit dem Namen der Lok) steht auf Ereignisgleis, Bedingung und Funktion, Aktion: Geschwindigkeit mit Angabe der Lok 0 setzten. Denke so sollte es klappen MfG Hans
BahnLand Geschrieben 14. Oktober 2018 Geschrieben 14. Oktober 2018 Hallo Werner, es gibt eine Lösung: Wie Du richtig erkannt hast, tritt das Ereignis "Lok betritt Gleis" genau dann ein, wenn ein "Zug" auf das Gleis einfährt - unabhängig davon, ob dies die Lok oder ein (geschobener) Wagen des Zuges ist. Wenn Du möchtest, dass auf dem gerade betretenen Gleis nicht das erste betretende Fahrzeug, sondern die den Zug antreibende Lok zum Stehen kommen soll - unabhängig davon, an welcher Stelle sich die Lok im Zugververband befindet - musst Du wie folgt vorgehen: Merke Dir beim Eintritt des Ereignisses "Zug betritt Gleis" in einer Variable xyz den Namen der den einfahrenden Zug antreibenden Lok (xyz = $_Trigger1._Name). Starte im selben Ereignis einen sich wiederholenden Countdown ("automatischen Neustart" ankreuzen, Dauer beispielsweise 0,5 Sekunden). Das Countdown-Ereignis tritt dann jeweils nach Ablauf der Dauer (hier 0,5 Sekunden) erneut auf. Prüfe im Countdown-Ereignis, ob sich auf dem betrachteten Gleis die Lok befindet (Bedingung "Fahrzeug steht auf einem Gleis", Gleis = das Gleis, in das der Zug eigefahren ist, Fahrzeug = $xyz, d.h. Inhalt der Variable, in der der Name der Lok hinterlegt worden ist, also der Name der Lok) Trifft diese Bedingung nicht zu, läuft das Countdown-Ereignis "Ins Leere", und nach ABlauf der "Dauer" tritt das Countdown-Ereignis erneut ein. Trifft die Bedingung zu, wird zunächst der Countdown gestoppt (die Schleife soll ja nun nicht mehr weiterlaufen) und in einer weiteren Aktion der Zug angehalten (Geschwindigkeitszuordnung 0 für die Lok über die Referenz $xyz - in dieser Variable ist ja der Name der Lok immer noch hinterlegt). Wenn nun der Zug angehalten ist, steht die Lok auf dem besagten Gleis - unabhängig davon, an welcher Stelle innerhalb des Zugverbands sie eingereiht ist. Viele Grüße BahnLand
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