Jump to content

Lok fährt rückwärts reagiert aber auf kein Befehl


Detlev2

Empfohlene Beiträge

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 von Detlev2
Neue Erkäntniss
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Weihnachtsprobleme.thumb.jpg.3d2e108b97a9f2cb3a57acb9af1bc20f.jpg

Mit freundlichen Grüßen

Detlev

Rückwärts-Neu.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:

5a25d3db85086_1Ereignis.jpg.d9b1b4aede85d8af1d74518eec880e80.jpg

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.

5a25d3dfcfbe4_2Aktion1.jpg.590934267f307dd43d29ab99c9770a96.jpg

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.

5a25d3e363d0e_3Aktion2.jpg.25387c35e929042f236edaed618ebda5.jpg

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.

5a25d3e73017c_4Start.jpg.68da7ae0e1068cf551136952cfcdc044.jpg

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von SputniKK
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Fehler-1.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 10 Monate später...

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:

  1. Merke Dir beim Eintritt des Ereignisses "Zug betritt Gleis" in einer Variable xyz den Namen der den einfahrenden Zug antreibenden Lok (xyz = $_Trigger1._Name).
  2. 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.
  3. 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)
  4. Trifft diese Bedingung nicht zu, läuft das Countdown-Ereignis "Ins Leere", und nach ABlauf der "Dauer" tritt das Countdown-Ereignis erneut ein.
  5. 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...