winpet Geschrieben 26. November 2023 Geschrieben 26. November 2023 Komplexe Kreuzung – Ampelsteuerung für Autos und Trams Auf der Anlage kreuzen sich 4x drei Autotospuren und 2x zwei Tramspuren. Die gemeinsame AUTO-TRAM-Ampelsteuerung funktioniert im Prinzip und doch nicht ganz richtig. Die Herausforderung besteht darin, dass die Autoampeln 4 Lampenaktionen haben (rot, gelb, grün und gelb-rot) und die Tramampeln deren 3 (quer, längs und rund). Die Steuerung findet im Ereignis ‘AUTO-TRAM-Listenplatz wird gesetzt’ statt. Meine EV schafft es nicht, dass die TRAM-Ampeln selektiv zu den ATUTO-Ampeln behandelt werden. Die TRAM-Ampeln haben das Schlagwort ‘SW-TRAM_Ampel'. Ich kann diese Schlagwort/Variable als Bedingung in der EV jedoch nicht separat adressieren. Kann mir da jemand weiterhelfen? Zusatzinfos: (1) Die komplexe Kreuzung ist an ‘Kreuzung in der Stadt’ von Fabio Luisi angelehnt. Die Fahrwege für Autos und Trams sowie die Ampelsteuerung sind in MBS_V8 realisiert und basieren auf verschiedenen Veröffentlichungen von Goetz, insbesondere ‘Kreuzungen und Einmündungen’, ‘Wegpunkte Listen’ und dem Tutorial-YouTube ‘EV Spielereien’ – Herzlichen Dank diesen Erstautoren. (2) Die Ampeln sind bewusst horizontal positioniert, damit in 2D die Lichter einfach erkannt werden können (Anlagebau, Work in Progress). (3) Das Labeling mit den Spezifikationen der Anlageelementen lässt sich mit den EV-Ebenen zu- und abschalten. (4) Anlagestart ist mit dem blauen Taster für die Ampeln, dem grünen für die Autos und dem grauen für die Trams. (5) Ich habe es bis anhin nicht geschafft, die Startfunktion dieser 3 Bereiche in einem zu vereinen. Vielleicht hat dazu jemand eine Idee? Herzlichen Dank für Eure Hilfe und beste Grüsse winpet Ampelsteuerung Auto- und Tramverkehr, Kreuzung mit 16 Spuren.mbp
winpet Geschrieben 29. November 2023 Autor Geschrieben 29. November 2023 Ergänzung und Bitte Hallo Goetz und alle anderen EV-Cracks Ich wäre sehr dankbar, wenn sie jemand zur Problematik äussern könnte – Besten Dank! AUTO-Ampel, Grünphase, Zustand 3 TRAM-Ampel: Freie Fahrt, Zustand 2 Ich bringe es nicht auf die Reihe, dass die Phase Grün der AUTO-Ampeln und die Phase Freie Fahrt der TRAM-Ampeln in der Anlage mit korrekten Zeitverzögerungen funktinoieren. Weil diese längeren Phasen verschiedene Ampel-Zuständen entsprechen, versuchte ich, mit einer EV-Bedingung das Problem zu lösen. Die Tram-Ampeln haben ein Schlagwort ‘SW_Tram-Ampel’ und sind im TRUE-Bereich der Bedingung eingefügt, die Auto-Ampeln (kein SW) im FASLE-Bereich. Ich habe verschiedene Varianten versucht, fand jedoch die Lösung nicht. Ausschnitt aus '(25) Tram Listenplatz wird gesetzt' siehe unten. Tricky ist, dass sich in der EV die 10 Sekunden einstellen lassen, im Betrieb der Anlage jedoch werden bei den TRAM-Ampeln die langen Verzögerungen NICHT übernommen, bei den AUTO-Ampeln jedoch schon. Ansonsten funktioniert der Ampelverkehr fehlerfrei, ohne Crash. Roter Pfeil (oben): Tram-Ampel 'Freie Fahrt' (Pos. 2) auf 8 Sek. gestellt Roter Pfeil (unten): Auto-Ampel, 'Phase Grün' (Pos. 3) auf 10 Sek. gestellt Blauer Pfeil: Tram-Ampel-Zyklus beendet (Pos. 1, ohne Zeitangabe) P.S. Damit der Kreuzungsverkehr realistisch-lebhaft wirkt, sind die AUTO- und TRAM-Ampeln miteinander verbunden (Route 5 & 6). Insgesamt verhindern die verschiedenen Verbindungen, dass zu einem Crash kommt. Ich würde mich auf Hinweise und Lösungsideen freuen. Besten Dank und freundliche Grüsse winpet
Goetz Geschrieben 29. November 2023 Geschrieben 29. November 2023 Hallo @winpet, Das einfachste wäre, du würdest zwei unabhängige (benutzerdefinierte) Ereignisse anlegen. Eins für die Auto Ampeln und ein anderes für die Tram. Beide Ereignisse stößt du gleichzeitig an. Und dann laufen sie parallel, jedes mit seinem passenden Timing, bis zum Ende der Sequenz. So, wie du es aktuell versuchst, kann es nicht funktionieren. Da ist dein Problem, dass immer nur entweder der eine oder der andere Weg gegangen wird, nicht (wie von dir gewünscht) beide parallel. Weil eine Unterscheidung ein entweder/oder ist und der nächste Einsprung (nach Ablauf der Zeit) hinter dieser Unterscheidung liegt. Viele Grüße Götz
Phrontistes Geschrieben 29. November 2023 Geschrieben 29. November 2023 (bearbeitet) Falsch gedacht, gelöscht. Bearbeitet 29. November 2023 von Phrontistes
winpet Geschrieben 29. November 2023 Autor Geschrieben 29. November 2023 Hallo Goetz und Phrontistes Ganz herzlichen Dank für Eure Ausführungen. Die Grundidee der gemeinsamen AUTO-TRAM-Steuerung ist, dass ich einen realisitischen, lebhaften Kreuzungsverkehr erhalte, der keine Crashes produziert. Crash-sensibel ist das Linksabbiegen. Crash-los gelingt mit der Anlage. Lebhaft finde ich, dass gleichzeitig immer zwei Routen aktiviert sind: Trams gleichzeitig mit dem geradeaus Auto-Verkehr und gleichzitig zirkulierende Links- und Rechtsabbieger. Gesamthaft gesehen ist das Ursprungsziel zu etwa 95% erreicht, was ja toll ist. Wenn ich noch fantasiere, dass die Trams vor dem Kreuzungssignal eine Haltestelle haben, dann ist das Ziel zu 100% erreicht. Trotzdem experimentiere ich gerne noch mit der Idee der benutzerdefinierten Ereignisse. Mal schauen, wie einfach oder kompliziert eine gegenseitige Zeitabstimmung ist. Nochmals besten Dank und freundliche Grüsse winpet
Goetz Geschrieben 29. November 2023 Geschrieben 29. November 2023 vor einer Stunde schrieb Phrontistes: Verzögert wird nur, was direkt hinter "Ausführung verzögern" folgt. Es tut mir leid, @Phrontistes aber da möchte ich dir widersprechen. (Und ich musste zuvor selbst ausprobieren, wie es sich wirklich verhält.) Dieses Skript gibt - je nach Schalterstellung - entweder mit 3 Sekunden Verzögerung das Wort "drei" aus oder nach 5 Sekunden das Wort "fünf". Weitere 2 Sekunden später wird das Wort wieder durch einen Bindestrich ersetzt. Viele Grüße Götz
Goetz Geschrieben 29. November 2023 Geschrieben 29. November 2023 vor 2 Minuten schrieb winpet: Die Grundidee der gemeinsamen AUTO-TRAM-Steuerung ist, dass ich einen realisitischen, lebhaften Kreuzungsverkehr erhalte, der keine Crashes produziert. Die sollst du ja auch haben. Du hast die Zeiten nur besser im Griff, wenn zwei Ereignisketten parallel ablaufen und du nicht alles in eine einzige stopfst. Das ändert nichts am Zusammenspiel beider Ampeln.
winpet Geschrieben 2. Dezember 2023 Autor Geschrieben 2. Dezember 2023 Erneute Bitte an Goetz Hallo Goetz Dein Ratschlag lautet: "Das einfachste wäre, du würdest zwei unabhängige (benutzerdefinierte) Ereignisse anlegen. Eins für die Auto Ampeln und ein anderes für die Tram." Ich schaffe es nicht, Deinen Ratschlag umzusezten. Eine Ampelsteuerung AUTO besteht aus den Elementen: 'Variablen' , 'Startknopf AUTO drücken' und 'AUTO-Listenplatz wird gesetzt'. (analoge Elemente für eine Ampelsteuerung TRAM). Was genau soll 'benutzerdefiniert' angelegt und wie weiterverbunden werden? Ich habe 'Listenplatz wird gesetzt' benutzerdefiniert angelegt. Ich scheitere dann, den resultierenden 'ohne Parameter' mit den Aktionen 'Signal einstellen' etc. zu verbinden, resp. ich kann das Indexfeld (roter Pfeil), nicht als 'Auslöser' deklarieren und dann den 'Variablenwert' auswählen. Was mache ich falsch? Könntest Du mir bitte nochmals unter die Arme greifen. Besten Dank für Deine Mühe und freundliche Grüsse winpet
Goetz Geschrieben 2. Dezember 2023 Geschrieben 2. Dezember 2023 Wenn du oben auf die blauen Worte "ohne Parameter" klickst, kannst du eine Liste von Parametern anlegen. Du benötigst einen Parameter vom Typ "Objekt". Dieser Parameter soll beim Aufruf des Ereignisses das Signal bekommen. Du kannst den Namen für den Parameter frei bestimmen. Sinnvoll wäre sicher so etwas wie "Ampel" Wenn du jetzt auf "Listenplatz wird gesetzt" reagierst, dann rufst du das benutzerdefinierte Ereignis auf und übergibst die Ampel aus deiner Liste als Parameter. Vorteil: Du musst nicht immer wieder die lange Schreibweise mit dem Listenplatz verwenden. Die brauchst du nur einmal (beim Aufruf) und im Ereignis nimmst du für das Signal direkt den Auslöser "Ampel"
winpet Geschrieben 4. Dezember 2023 Autor Geschrieben 4. Dezember 2023 Anfrage / Bitte Nr. 3 Hallo Goetz, Vorerst ganz herzlichen Dank für deine immer kompetenten und prompten Beantwortungen. Dies ist nicht selbstverständlich und ich weiss es sehr zu schätzen, DANKE! Deine letzten Hinweise zu den Parameternamen in Benutzerdefinierten Ereignissen konnte ich umsetzen (blaue Pfeile). Was mir jetzt nicht gelingt, dieses Ereignis in den Ablauf der Aktionen einzubinden, sodass die Ampelsteuerung korrekt funktioniert. Ich habe Verschiedenes versucht, scheitere jedoch. Es scheint, dass ich gewisse Zusammenhänge (noch?) nicht begriffen habe. Ich möchte als ersten Teilschritt (1) mit dem Startknopf-AUTO, die Ampelsteuerung AUTO benutzerdefiniert in Betrieb nehmen. (Die Ampelsteuerung-TRAM würde ich dann analog, ausgelöst durch den Startknopf-TRAM folgen lassen(2) – und letztlich die beiden Steuerungen von einem Startknopf aus betätigen (3). Ich bin gespannt, ob sich die beiden Steuerungen nicht konkurrenzieren). Zu (1): Angehängt die EV Startknopf (gelb) drücken und Listenplatz-AUTO setzten, Überblick und Detail – beim roten Pfeil bin ich unsicher, ob dies korrekt ist. Wo liegt der Hund begraben, dass der Autoverkehr nicht korrekt abläuft? Besten Dank für Hinweise und freundliche Grüsse winpet Anlagen: - Startknopf-AUTO.jpg (EV zu gelbem Startknopf) - BenDef-Listenplatz_AUTO.jpg (EV, Überblick) - Detail-BenDef_AUTU.jpg (EV-Teil von Listenplatz) - Anlage Strassenverkehr_4x-Kreuzung_v.1.23.mbp (aktuelle Anlage-Version) Strassenverkehr_4x-Kreuzung_v.1.23.mbp
winpet Geschrieben 8. Dezember 2023 Autor Geschrieben 8. Dezember 2023 Anfrage und Bitte Nr. 4 Hallo Goetz und alle anderen EV-Cracks Um ev. den Fehler in meiner Anlage zu finden, habe ich die Tutorial-Anlage von Goetz ‘Kreuzungen und Einmündungen.mbs’ genommen und versucht, die Ampelsteuerung mit einem Benutzerdefinierten Ereignis auszulösen. Es resultiert der gleiche Fehler, wie in Anfrage 3 beschrieben: Alle Ampeln schalten gleichzeitig und nicht mehr getrennt (Bild 1). Ich pröble herum, kann den Fehler jedoch nicht finden und ich wäre dankbar, wenn jemand weiterhelfen könnte. Ich habe Anpassungen bei 'BD_Startknopf Ampel wird gedrückt' versucht (Bilder 2-4) und bei 'BD_Listenplatz wird gesetzt' (Bilder 5-8) - wie erwähnt, efolglos. Besten Dank für Hinweise und Lösungsideen. Freundliche Grüsse winpet Bild 1 Bild 2 Bild 3 Bild 4 Bild 5 Bild 6 Bild 7 Bild 8
Goetz Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 Die Bilder sind winzig klein und kaum zu lesen, Winpet. Kannst du nicht bitte stattdessen einfach die kleine Versuchsanlage anhängen? Dann kann ich nachschauen, was los ist.
winpet Geschrieben 8. Dezember 2023 Autor Geschrieben 8. Dezember 2023 Doch Goetz, sehr gerne. Beachte, die Ausgansanlage ist Dein Tutorial Beitrag 'Kreuzungen und Einmündungen.mbs'. Besten Dank für deine Mühe. winpet Kreuzungen und Einmündungen_v1.0.mbp
Goetz Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 vor 48 Minuten schrieb winpet: Besten Dank für deine Mühe. Das mache ich gerne, Winpet. Und so konnte ich auch schnell die Ursache finden, warum bei dir alle Ampeln gleichzeitig schalten: Weil du für alle Ampeln aus der Liste gleichzeitig das benutzerdefinierte Ereignis startest. In der Wiederholung ist der Aufruf falsch platziert. Eine Wiederholung wartet nicht, bis alles darin erledigt ist. Diese Wiederholung an der Stelle dient in meiner Vorlage nur dazu, zu Beginn einmal alle Ampeln auf Rot zu schalten. Danach lege ich fest, mit welcher Nummer aus der Liste die Sequenz beginnen soll. Und dann wird die Sequenz nur für diese eine Ampel gestartet, die in der Liste an der Stelle "Listenplatz" steht. Diese eine Ampel ist direkt mit allen weiteren verknüpft, die identisch schalten sollen. Deshalb genügt es, wenn ich eine Ampel anspreche Nachdem die Sequenz für diese Ampel komplett durchlaufen wurde, schaltet die Sequenz als letzten Akt die Platznummer eins rauf. Das Ändern der Platznummer bewirkt, dass die Sequenz erneut durchlaufen wird. Und weil die Platznummer eine andere ist, ist jetzt auch eine andere Ampel dran. Schau mal bitte, ob du mit diesen Erklärungen weiterkommst. Viele Grüße Götz
winpet Geschrieben 8. Dezember 2023 Autor Geschrieben 8. Dezember 2023 Danke Goetz und sorry, ich scheitere immer noch. Ich verstehe Dein untenstehendes Fazit, kann aber daraus die Lösung nicht ableiten. Fazit: In der Wiederholung ist der Aufruf falsch platziert. Starte ich das benutzerdefinierte Ereignis ausserhalb der Wiederholung (ergo davor oder darnach) ändert das {@Wdh} zu {leer} und die Option 'Wiedeholung' steht nicht mer zur Vefügung. Mein Problem ist: (a) Wo genau ausserhalb soll das 'Benutzerdefiniertes Ereignis' ausgelöst werden' und (b) welche Option soll mit dem Zahnrad gewählt werden und (c) was soll im grauen Feld dann stehen? Für (a) denke ich, innerhalb dem gelben Bereich der erfüllten Bedingung, aber ausserhalb der braunen Wiederholung. Bei (b) stehe ich an und damit auch bei (c). Hast Du noch weitere Eselsbrücken damit bei mir der Groschen fällt? Danke für Dein geduldiges Teaching und viele Grüsse winpet
Goetz Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 (bearbeitet) vor 58 Minuten schrieb winpet: Hast Du noch weitere Eselsbrücken Ich versuche es. Eventuell habe ich dich mit den "benutzerdefinierten Ereignissen" auch auf die falsche Fährte gelockt. Das habe ich nicht in böser Absicht getan. Aber bevor du dich mit dem benutzerdefinierten Ereignis befasst, musst du zuerst einmal verstehen, welchen Zweck die Liste "Ampeln" in meinem Beispiel erfüllt und welche Rolle die Variable "Listenplatz" dabei spielt. Mir wird aufgrund deiner Fragen deutlich, dass du das Prinzip noch nicht durchschaust. Die drei Ampeln in der Liste repräsentieren die drei Wege, die reihum Grün bekommen: von oben und unten -> geradeaus und rechts von oben und unten -> Linksabbieger von beiden Seiten -> geradeaus und rechts Mit dem Listenplatz gebe ich an, welcher der drei Wege Grün bekommen soll. Und wenn diese Richtung alle Phasen (Rot, Rot-Gelb, Grün, Gelb, Rot) durchlaufen hat, dann zähle ich den Listenplatz um 1 rauf, damit der Zirkus für die nächste Fahrtrichtung von vorne beginnt. So, wie du die Liste benutzt, kann es also nicht funktionieren. Weder in der Wiederholung, noch außerhalb. Du musst dir pro Durchgang genau ein Element aus der Liste greifen. Nicht alle auf einmal. Viele Grüße Götz Bearbeitet 8. Dezember 2023 von Goetz Schreibfehler korrigiert
winpet Geschrieben 8. Dezember 2023 Autor Geschrieben 8. Dezember 2023 Hallo Goetz Gehen wir zum Ausgangspunkt zurück. Sowohl in Deine Anlage ’Kreuzungen und Einmündungen’ wie auch in meiner Anlage ‘Strassenverkehr 4xKreuzung’ funktionieren OHNE eine benutzerdefiniertes Auslöseereignis der Ampelsteuerung. ‘Benutzergesteuert’ kam ins Spiel, weil ich in meiner Anlage Auto- und Tramverkehr mit einer schlagwortgesteuerten Bedingung gleichzeitig ablaufen lassen wollte. Ich denke, dass ich die Ereignisse ‘Startknopf wird betätigt’ und ‘Listenplatz wird gesetzt’ in dieser Erstversion (ohne benutzerdefiniert) sehr wohl verstehe. (Eine äussere Schleife der verschiedene Fahrrouten/Fahrrichtungen und eine innere Schleife mit rot-gelb-grün-orange-Phasen/Lichterabfolge.) Zwischenzeitlich versuchte ich die Anlage in ein ‘benutzerdefiniertes Auslöseereignis der Ampelsteuerung’ zu ändern. Anhand Deines letzten Kommentars bin ich jedoch unsicher, ob dies überhaupt geht. Falls 'Benutzerdefiniert' geht, könntest Du mir bitte zeigen, wie so eine EV aussehen würde. Ich danke für Deine Hilfe und grüsse freundlich winpet
streit_ross Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 Hallo @winpet, Ich habe bis zum jetzigen Zeitpunkt noch keine Ampelkreuzung gebaut. Von daher liege ich mit dem, was mir zum Begriff "benutzerdefiniertes Ereignis" in den Sinn kommt, evtl. daneben. Aber ich stelle mir vor, eine Ampelschaltung ist an einer Kreuzung installiert, aber wartet noch auf ihre Inbetriebnahme. Damit der programmierte Schaltzyklus beginnen kann, muss doch erst z.B. einmalig ein Schalter betätigt werden, der den Steuerzyklus zum Laufen bringt. Dieser Schalter ist für mich das erwähnte benutzerdefinierte Ereignis. Wenn der Ampelzyklus in sich ständig gleich wiederholendem Ablauf arbeitet, könnte man theoretisch den Schalter wieder entfernen. Siehst Du das genauso ? Oder kann @Goetz für mich und andere klärend eingreifen, ob ich völlig daneben liege.
Goetz Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 vor 7 Minuten schrieb streit_ross: Dieser Schalter ist für mich das erwähnte benutzerdefinierte Ereignis. Da liegst du tatsächlich völlig falsch, Streitross. Ein Ereignis hat in aller Regel einen Auslöser. Zug betritt Gleis, Signal schaltet, Zeit ist abgelaufen, um nur ein paar typische zu nennen. Das benutzerdefinierte Ereignis hat keinen solchen Auslöser. Stattdessen wird es innerhalb eines anderen Ereignisses als Aktion gestartet. Das kann man gut benutzen, um lange Aktionsketten in kleinere Happen zu unterteilen.
streit_ross Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 (bearbeitet) Das bedeutet dann, das dieses benutzerdefinierte Ereignis den Ablauf der Ampelphasen in einer vorher definierten Reihenfolge einem zeitlichen Schema wiederholt folgend bewirkt ? Bearbeitet 8. Dezember 2023 von streit_ross
Goetz Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 vor 1 Minute schrieb streit_ross: Das bedeutet dann, dass in einem benutzerdefinierten Ereignis genau dieselben Dinge passieren, wie in allen anderen Ereignissen auch. benutzerdefiniert ist dabei nur das Ereignis, was die Aktionskette auslöst.
Goetz Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 vor einer Stunde schrieb winpet: Falls 'Benutzerdefiniert' geht, könntest Du mir bitte zeigen, wie so eine EV aussehen würde. Das werde ich machen, Winpet. Dauert aber ein bisschen. Vorweg will ich gerne folgendes erklären: Das benutzerdefinierte Ereignis kam mir als Lösungsvorschlag in den Sinn, weil die Aktionskette für einen kompletten Durchlauf aller Phasen an deiner Kreuzung sehr lang würde. Mit einem benutzerdefinierten Ereignis kann man solche Aktionslisten in Happen unterteilen. Damit würde die äußere Schleife aus meiner Beispielanlage ganz entfallen.
Goetz Geschrieben 8. Dezember 2023 Geschrieben 8. Dezember 2023 Hallo @winpet, hier ist der versprochene Umbau der EV: Kreuzung mit benutzerdefinierten Ereignissen.mbp
winpet Geschrieben 9. Dezember 2023 Autor Geschrieben 9. Dezember 2023 Hallo Goetz Ganz herzlichen Dank für die umgebaute Anlage. Ja, ich sehe langsam, wie Du benutzerdefiniert gemeint hast. Ich muss das Ganze noch eingehend studieren - gelernt habe ich jedoch sicher recht viel. Ich wünsche ein gutes Wochenende und freundliche Grüsse winpet
winpet Geschrieben 10. Dezember 2023 Autor Geschrieben 10. Dezember 2023 Feedback für Goetz Hallo Goetz Gerne gebe ich Feedback. Ich habe meine 4x-Kreuzung auf benutzerdefinierte Ampelsteuerung umgstellt. Ausser den Linksabiegern, sind die AUTO- und TRAM-Ampeln miteinander verbunden, was auf der Kreuzung einen sehr lebendigen Verkehr (ohne Crash) ergibt. Zum Start der Anlage müssen der blaue, grüne und der graue Taster aktiviert werden. P.S. Bis anhin nicht geschafft habe ich, die Anlage von einem einzigen Taster aus zu starten (dem blauen Steuerzentrum BenDef). Vielleicht gelingt das mir später noch. Nochmals besten Dank für Deine Hilfe und freunsdliche Grüsse winpet 4x-Kreuzung,_BentzDef-v1.22.07.mbp
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