guenter.strickmann Geschrieben 26. März Geschrieben 26. März Ein Zug fährt in einen Bahnhof ein. Über die EV "Fahrstraßen mit einem Schlagwort" wählt er sich zufällig ein Gleis. Da die Funktion nur einmal durchläuft habe ich einen Timer gesetzt (Beispiel hatte ich im Forum gefunden), damit er solange sucht, bis ein Gleis frei wird. Das klappt auch. Allerdings bin ich damit nicht so richtig zufrieden. In anderen Sprachen gibt es "do while" oder andere Schleifen. Geht das nicht irgendwie eleganter? Timer finde ich suspekt. Den False/True-Schalter habe ich deswegen, weil der Zug bei der Einfahrt über zwei Kontakte fährt. Ist beim ersten Kontakt kein Gleis frei, dann vielleicht beim zweiten.
Goetz Geschrieben 26. März Geschrieben 26. März vor 30 Minuten schrieb guenter.strickmann: Da die Funktion nur einmal durchläuft habe ich einen Timer gesetzt (Beispiel hatte ich im Forum gefunden), damit er solange sucht, bis ein Gleis frei wird. Das klappt auch. Allerdings bin ich damit nicht so richtig zufrieden. Ich würde einen anderen Ansatz wählen: Wenn kein freies Gleis gefunden wurde, dann wird erst dann wieder eins frei, wenn ein Zug ausfährt. Du musst also nicht alle paar Sekunden nachfragen, ob sich was geändert hat. Denn du weißt, was sich ändern muss. Und das ist dann dein Auslöser für eine erneute Suche (oder eine direkte Anforderung dieses frei gewordenen Gleises).
EASY Geschrieben 26. März Geschrieben 26. März Hallo, vor 28 Minuten schrieb guenter.strickmann: Geht das nicht irgendwie eleganter? Timer finde ich suspekt. ich kenne Deinen Aufbau nicht. Mein Lösungsansatz wäre folgender: Wenn ein Zug den Bahnhof verlassen hat (Gleis ist garantiert frei), wird nachgesehen, ob ein Zug auf Einfahrt wartet (weil er kein freies Gleis gefunden hat). Damit braucht es keinen Timer... @Goetz war einen Tick schneller... Gruß EASY
guenter.strickmann Geschrieben Donnerstag um 13:13 Uhr Autor Geschrieben Donnerstag um 13:13 Uhr Vielen Dank erstmal für den Vorschlag. Das geht aber ein wenig am Kern meines Wunsches vorbei. Wenn ein Zug auf Gleis 6 bis zum Einfahrsignal einfährt, könnte er theoretisch alle Gleise 1-6 belegen. Kommt jetzt zeitgleich ein Zug auf Gleis 2 angefahren und fährt in 6 ein, dann "schneidet" er alle Gleise für den Zug auf 6 ab, wenn ich nur einmal die Wdh-Funktion nutze. Durch den Timer schaue ich alle par Sekunden, ob wieder ein Gleis frei wird. Das konntet ihr nicht wissen, aber wenn ich euren Ansatz wählen würde, bliebe der Zug auf 6 stehen, bis ein Zug von vielleicht Gleis 3 ausfahren würde. Dann würde 6 in 3 einfahren. Zeitgleich wären aber vielleicht, 1,2,4 und 5 schon frei gewesen. Ich hoffe, das war verständlich. Durch die Timerabfrage habe ich also die Möglichkeit, ständig nach freien Gleisen "Ausschau" zu halten. Wie gesagt, dass funktioniert auch. Aber geht das nicht auch anders? a.mbp
gmd Geschrieben Donnerstag um 13:26 Uhr Geschrieben Donnerstag um 13:26 Uhr 6 minutes ago, guenter.strickmann said: Vielen Dank erstmal für den Vorschlag. Das geht aber ein wenig am Kern meines Wunsches vorbei. Wenn ein Zug auf Gleis 6 bis zum Einfahrsignal einfährt, könnte er theoretisch alle Gleise 1-6 belegen. Kommt jetzt zeitgleich ein Zug auf Gleis 2 angefahren und fährt in 6 ein, dann "schneidet" er alle Gleise für den Zug auf 6 ab, wenn ich nur einmal die Wdh-Funktion nutze. Durch den Timer schaue ich alle par Sekunden, ob wieder ein Gleis frei wird. Das konntet ihr nicht wissen, aber wenn ich euren Ansatz wählen würde, bliebe der Zug auf 6 stehen, bis ein Zug von vielleicht Gleis 3 ausfahren würde. Dann würde 6 in 3 einfahren. Zeitgleich wären aber vielleicht, 1,2,4 und 5 schon frei gewesen. Ich hoffe, das war verständlich. Durch die Timerabfrage habe ich also die Möglichkeit, ständig nach freien Gleisen "Ausschau" zu halten. Wie gesagt, dass funktioniert auch. Aber geht das nicht auch anders? a.mbp 382.26 kB · 1 download Ich antworte mal ohne dein beispiel anzuschauen. Ich wuerde keinen timer verwenden, der loest event aus auch wenn nichts zu tun ist und loest nicht gleich aus wenn was tun ist, jenachdem wie oft er eingestellt ist. In meinen augen die bessere loesung ist, entweder einfahr- und ausfahrgleisen, oder kontakten das gleiche schlagwort zuweisen und einen event verwenden, der bei diesem schlagwort entweder fuer gleis oder kontakt ausloest. Damit weisst du ganz genau dass es lohnt etwas zu tun, und wenn du jetzt noch das gleis oder kontakt benennst und abfragst weist du auch welches gleis betroffen ist. Mit diesem konzept vermeide ich timer generell. gruss Gmd
Hawkeye Geschrieben Donnerstag um 14:10 Uhr Geschrieben Donnerstag um 14:10 Uhr (bearbeitet) vor 57 Minuten schrieb guenter.strickmann: Durch die Timerabfrage habe ich also die Möglichkeit, ständig nach freien Gleisen "Ausschau" zu halten. Hallo Günter, "freie Gleise" bedeutet doch auch freie Fahrstraßen. Um den Timer zu vermeiden kannst du auch das Ereignis "Eine beliebige Fahrstraße wird aktiviert/deaktiviert" verwenden. Hier mal das Beispiel aus meinem Kopfbahnhof, den ich vor längerer Zeit mal hier ins Forum gestellt hatte. VG, Hawkeye Bearbeitet Donnerstag um 14:11 Uhr von Hawkeye
guenter.strickmann Geschrieben Donnerstag um 17:53 Uhr Autor Geschrieben Donnerstag um 17:53 Uhr Hallo Hawkeye, ich kenne deine Anlage wohl und die hat mir schon einige Ideen gebracht. Ich habe deine Anlage einmal in einer bestimmten Situation exportiert. Die einfahrende S-Bahn hat eigentlich ein Gleis frei, wartet aber, bis die gegenübliegende Lok auf das Abstellgleis fährt. An der Stelle möchte ich, dass die S-Bahn bereits das freie Gleis anfährt. Die Timer-Funktion in meiner Anlage schaut alle 3 Sekunden, ob was frei ist. Aber sie schaut eben immer wieder. Ich denke mir das so: 1. Ein Stück vor dem Einfahrsignal erzeugt ein Gleiskontakt den Befehl: Ich komme jetzt rein, gib mir ein freies Gleis. 2. Am Signal sind aber immer noch alle Gleise nicht zugängig. 3. Das liegt in meiner Anlage aber nicht daran, dass alle belegt sind, sondern das ein Zug quer vorherläuft und alle blockiert. 4. Am Ende des vorbeilaufenden Zuges müsste dann das erste freie Gleis signalisieren: ich bin jetzt frei, komm rein. Das muss über eine Zustandsabfrage der Ausfahr-Fahrtsraßen gehen. Also wenn blockiert passiert nichts, wird die Straße frei, schaut sie, ob jemand am Einfahrsignal wartet und gibt die entsprechende Fahrstraße frei. So oder so ähnlich. Der Auslöser wäre dann immer das Umschalten der Ausfahr-Fahrstraße von Belegt nach frei. Aber warum fährt die S-Bahn dann nicht in das freie Gleis? Hawkeye.mbp
Hawkeye Geschrieben Donnerstag um 18:23 Uhr Geschrieben Donnerstag um 18:23 Uhr (bearbeitet) vor 36 Minuten schrieb guenter.strickmann: Aber warum fährt die S-Bahn dann nicht in das freie Gleis? Hallo Günter, weil sich da wohl ein kleiner Fehler im Ablauf eingeschlichen hat. 1. Weil die Kreuzungsweiche gesperrt ist. 2. Weil die rote Lok eigentlich losfahren müsste, da die Fahrstraße aktiviert ist. 3. Das tut sie aber nicht. Weise ihr eine (negative) Geschwindigkeit zu und starte erst dann den Ablauf. Dann fährt die S-Bahn auch auf das freie Gleis. VG, Hawkeye PS: Aber irgendwie ist der gesamte Ablauf in deiner Version gestört. Hast du etwas verändert? Bearbeitet Donnerstag um 18:34 Uhr von Hawkeye
guenter.strickmann Geschrieben Donnerstag um 18:41 Uhr Autor Geschrieben Donnerstag um 18:41 Uhr Nein, ich habe die Anlage vor einer halben Stunde aus einem deiner Forenbeiträge heruntergeladen. Aber wie so oft: Das Problem sitzt vor dem Bildschirm. :-( Jedenfalls habe ich jetzt eine Idee, das probier ich mal aus. Wenn es klappt, stell ichs rein, wenn nicht steig ich auf Ölmalerei um.
Hawkeye Geschrieben Donnerstag um 19:00 Uhr Geschrieben Donnerstag um 19:00 Uhr (bearbeitet) vor 19 Minuten schrieb guenter.strickmann: Aber wie so oft: Das Problem sitzt vor dem Bildschirm. :-( Nein, das Problem ist V9! Starte die Anlage in V8.5, dann funktioniert sie auch richtig. Hallo @Neo, diese Anlage V8.5-Kopfbahnhof 08.mbp lauft in der MBS Version 8.5 wie sie soll. Startet man sie jedoch mit der MBS Version V9, dann stimmen die Fahrtrichtungen der Loks nicht und sie bleiben stehen! Hier werden die Fahrtrichtungen aus älteren Anlagen nicht richtig in V9 übernommen. Hast du diesbezüglich Änderungen in V9 vorgenommen? VG, Hawkeye Bearbeitet Donnerstag um 19:01 Uhr von Hawkeye
Hawkeye Geschrieben Freitag um 05:33 Uhr Geschrieben Freitag um 05:33 Uhr (bearbeitet) vor 10 Stunden schrieb Hawkeye: Hast du diesbezüglich Änderungen in V9 vorgenommen? Hallo @Neo, ich habe die Ursache gefunden. Die Anlage verursacht in V9 einen Fehler, weil die Animationen der (alten) Fahrlichter nicht mehr existieren bzw. durch die Schalter ersetzt wurden. Es gibt zwar ein paar (veraltete) Animationen, aber die Fahrlichter sind nicht mehr dabei. Da werde ich die Anlage wohl überarbeiten und auf die neuen Schalter aktualisieren müssen. Komisch ist nur, das es wohl nur die "Siemens-Vectron" betrifft. Bei den anderen Loks sind die (veralteten) Lichtanimationen noch vorhanden. VG, Hawkeye Bearbeitet Freitag um 05:56 Uhr von Hawkeye
Neo Geschrieben Freitag um 10:19 Uhr Geschrieben Freitag um 10:19 Uhr vor 4 Stunden schrieb Hawkeye: Es gibt zwar ein paar (veraltete) Animationen, aber die Fahrlichter sind nicht mehr dabei. Danke für die Fehleruntersuchung, das Modell wurde etwas zu stark bei der Umstellung auf die neuen Lichter angepasst. Ich habe die Vectron repariert. Viele Grüße, Neo
Hawkeye Geschrieben Freitag um 11:03 Uhr Geschrieben Freitag um 11:03 Uhr vor 37 Minuten schrieb Neo: Ich habe die Vectron repariert. Danke, die Fehlermeldung ist weg und die Anlage läuft wieder. Das Fahrlicht und die Scheinwerfer vorne und hinten leuchten zwar nicht, wenn sie per Animation angesteuert werden, spielt für mich jetzt aber keine große Rolle mehr, da ich die Anlage schon auf Schalter umgestellt habe. VG, Hawkeye
Neo Geschrieben Freitag um 11:07 Uhr Geschrieben Freitag um 11:07 Uhr vor 1 Minute schrieb Hawkeye: leuchten zwar nicht, wenn sie per Animation angesteuert werden Ja, es handelt sich nur noch um Dummy-Animationen, da die Vectron die neuen Beleuchtungsfunktionen nutzt, die nicht mehr auf Animationen basieren.
guenter.strickmann Geschrieben Freitag um 19:28 Uhr Autor Geschrieben Freitag um 19:28 Uhr (bearbeitet) So, ein erster Ansatz. Ich habe den Timer umgewandelt. Jedesmal wenn eine beliebige Fahrstraße aktiviert wird, schaut die EV nach, ob ein Einfahrgleis frei ist. Das funktioniert auch soweit. Allerdings scheint mir das aktuell noch zu kompliziert mit den vielen Variablen. Das kommt eigentlich daher, dass die langen ICE und EC nicht auf das 1. bzw. 6 Gleis passen. Das muss noch vereinfacht werden. Aber prinzipiell funktioniert es. Das ist ja schon mal was. Das Auslösen einer FS ersetzt den Timer. 8.mbp Bearbeitet Freitag um 20:18 Uhr von guenter.strickmann
Hawkeye Geschrieben Samstag um 07:48 Uhr Geschrieben Samstag um 07:48 Uhr vor 12 Stunden schrieb guenter.strickmann: Allerdings scheint mir das aktuell noch zu kompliziert mit den vielen Variablen. Das kommt eigentlich daher, dass die langen ICE und EC nicht auf das 1. bzw. 6 Gleis passen. Hallo Günter, echt jetzt? Hier geht es um vielleicht 1-2 m Gleislänge! Ist das ein Schildbürgerstreich bei der Planung? Verlängere doch die Länge der Bahnhofsgleise, das die ICE so gerade noch auf die Gleise passen. VG, Hawkeye
guenter.strickmann Geschrieben Samstag um 15:05 Uhr Autor Geschrieben Samstag um 15:05 Uhr Nein ist es nicht, war schon Absicht. In der Realität passt das ja auch nicht immer. Aber es führt dann halt zu Mehraufwand. War mir schon klar, dass ich die Gleise einfach verlängern könnte.
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