dirk.klotz Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 Liebe 3D-Modellbahnstudio-Fans, seit einiger Zeit tüftele ich an einer automatischen Steuerung für Stoppstraßen. Inzwischen habe ich eine Version erstellt, die grundsätzlich funktioniert. Manchmal jedoch bleiben Autos an den Stoppstraßen stehen, obwohl die Kreuzung frei ist. Es gibt eine Variable, die per Counter ein- und ausfahrende Autos ermittelt. Über einen Gleiskontakt wird Addition und Subtraktion von Fahrzeugen durchgeführt. Aus irgend einem Grund funktioniert das aber manchmal nicht und der Counter zählt falsch. Ihr findet eine Testanlage unter dieser Content-ID: F7C41FEB-6DD2-444B-9085-BC0952762F96 Falls jemand Zeit und Lust hat, sich mit dem Thema zu befassen, würde ich mich über eine Antwort sehr freuen! Gruß Dirk
Andy Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 vor 4 Minuten schrieb dirk.klotz: und der Counter zählt falsch Hallo Dirk, das ist eine Geschichte, der müssen wir wirklich mal intensiv auf den Grund gehen, denn das ist nicht nur bei Deiner Anlage der Fall. Bei all unseren vorfahrtsbeachtenden Abzweigungen haben wir das Problem ebenfalls. Neo empfiehlt ja auf Counter zu verzichten, aber dann kommen wir der Sache nie auf die Spur. Da V8 da leider keine neuen unterstützende Maßnahmen mitbringt, besitzt das Thema für uns hohe Priorität. Gruß Andy
Dad3353 Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 (bearbeitet) 9 minutes ago, dirk.klotz said: ...If anyone has the time and desire to deal with the topic, I would be very happy to receive an answer! ... Good evening, Dirk... There have been many attempts to solve this problem reliably; as far as I am aware, no-one has yet succeeded. I spent quite a long time experimenting with distances, speeds, multiple contacts and more, but in the end decided that for me, only a traffic light system worked perfectly. There have been many explanations, too, but the 'counter in/counter out' method just seems to be fatally flawed. I would be happy to learn of any new developments that solve the issue, but meanwhile, I use traffic lights. Guten Abend Dirk... Es hat viele Versuche gegeben, dieses Problem zuverlässig zu lösen; Soweit mir bekannt ist, ist dies noch niemandem gelungen. Ich habe ziemlich lange mit Entfernungen, Geschwindigkeiten, Mehrfachkontakten und mehr herumexperimentiert, aber am Ende entschieden, dass für mich nur ein Ampelsystem perfekt funktioniert. Es gab auch viele Erklärungen, aber die 'Counter in/Counter out'-Methode scheint einfach fatal fehlerhaft zu sein. Ich würde mich freuen, von neuen Entwicklungen zu erfahren, die das Problem lösen, aber inzwischen verwende ich Ampeln. Douglas Bearbeitet 20. Oktober 2022 von Dad3353
dirk.klotz Geschrieben 20. Oktober 2022 Autor Geschrieben 20. Oktober 2022 Okay, danke euch für die schnelle Rückmeldung! Dann bin ich ja jetzt erst mal erleichtert, dass es doch nicht allein an meiner Logik liegt!
Andy Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 Das Problem dabei ist schlicht und einfach die Erstellung eines begleitenden überwachenden Systems, denn wenn das so einfach wäre, würden wir dies ja ersatzweise einsetzen.
dirk.klotz Geschrieben 20. Oktober 2022 Autor Geschrieben 20. Oktober 2022 vor 2 Minuten schrieb Andy: Das Problem dabei ist schlicht und einfach die Erstellung eines begleitenden überwachenden Systems Ja, das kann ich mir gut vorstellen! Komplexes Thema... Jetzt ist es eben so wie im richtigen Leben: Manchmal bleibt halt jemand ohne Grund an der Kreuzung stehen und hält den Verkehr auf.
Neo Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 Hallo Dirk, Zustandsvariablen bzw. Zähler haben den inhärenten Nachteil, dass sich Probleme aufsummieren. Sobald es auch nur eine Schwachstelle in der Logik gibt, wird es zu einem Ablaufproblem kommen. In diesem Beitrag habe ich einen anderen Ansatz gewählt, bei dem Fahrstraßen "missbraucht" werden, um freie Bereiche vor einer Kreuzung zu erkennen: Die Methode ist zwar sicher, aber aufwendig zu konfigurieren, basiert aber mehr auf der Realität, bei der Autos auf Kreuzungen nicht gezählt werden, sondern die Autos "schauen", ob der Weg frei ist. Viele Grüße, Neo
Roter Brummer Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 Hallo, ich hatte mal hier eine Lösung vorgeschlagen. HG Brummi
Hawkeye Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 Hallo @Neo, vor 14 Minuten schrieb Neo: In diesem Beitrag habe ich einen anderen Ansatz gewählt, bei dem Fahrstraßen "missbraucht" werden, um freie Bereiche vor einer Kreuzung zu erkennen: Dein Link bezieht sich auf diese Anlage von dir : E9F17CEE-42E4-467D-A120-CC6D40CC290A Ist die nicht mehr im Katalog verfügbar? Ich hatte schon öfter mal versucht die wiederzufinden. VG, Hawkeye
dirk.klotz Geschrieben 20. Oktober 2022 Autor Geschrieben 20. Oktober 2022 vor 53 Minuten schrieb Andy: das ist eine Geschichte, der müssen wir wirklich mal intensiv auf den Grund gehen, denn das ist nicht nur bei Deiner Anlage der Fall. Bei all unseren vorfahrtsbeachtenden Abzweigungen haben wir das Problem ebenfalls. Ich hatte schonmal überlegt, ob es vielleicht an gleichzeitig ein- und ausfahrenden Pkw liegt... Also wenn zwei Gleiskontakte zeitgleich ausgelöst werden. Allerdings habe ich das noch nicht exakt überprüft, es ist wie gesagt nur eine Vermutung.
Goetz Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 Auch, wenn zwei Kontakte gleichzeitig ausgelöst werden, geht keins der beiden Ereignisse verloren. Sonst würde das ganze Studio nicht funktionieren. denn die Ereignisse, welche man in der EV nutzt um eigene Aktionslisten zu triggern, finden ja sowieso statt. Sie sind die Basis für alle Animationen, wie beispielsweise die Fahrt eines Zuges.
Neo Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 vor 39 Minuten schrieb Hawkeye: Ist die nicht mehr im Katalog verfügbar? Leider nicht mehr, die Anlage war damals nur als Proof-of-Concept gedacht, um eine zustandsfreie Alternative zu demonstrieren. Für den praktischen Einsatz wäre die Anlage auch nichts gewesen, das Zweckentfremden von Fahrstraßen sollte man gar nicht erst groß publik machen. Viele Grüße, Neo
Andy Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 Die letzte recht brauchbare von mir war hier: heißer Test BahnLand hat dann auf eine weitere Problematik darin hingewiesen. Und es folgen noch etliche andere von prinz und Hanno. Gruß Andy
streit_ross Geschrieben 20. Oktober 2022 Geschrieben 20. Oktober 2022 Hallo Andy, Was optisch auffällt, sind Kurvengeschwindigkeiten von 100 km/h, die von Rasern ausgenutzt werden, um Lücken zum Vorausfahrenden zu schließen. Dagegen ist prinzipiell nichts einzuwenden, nur scheint das ein Zugeständnis an die Funktionsabläufe zu sein und eigentlich nur deshalb hinnehmbar. Was spricht eigentlich zur grundsätzlichen Vereinfachung eines Straßenverkehrs mit Abbiegespuren gegen eine Ampellösung ? Man kann sich auch in eine Idee verbeißen nur um des Prinzips wegen: Das muss doch hinzukriegen sein, eher gebe ich nicht auf. Gruß streit_ross
Andy Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 vor 3 Stunden schrieb streit_ross: Das muss doch hinzukriegen sein, eher gebe ich nicht auf Genau
prinz Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 vor 18 Stunden schrieb Goetz: Auch, wenn zwei Kontakte gleichzeitig ausgelöst werden, geht keins der beiden Ereignisse verloren. Sonst würde das ganze Studio nicht funktionieren. denn die Ereignisse, welche man in der EV nutzt um eigene Aktionslisten zu triggern, finden ja sowieso statt. Sie sind die Basis für alle Animationen, wie beispielsweise die Fahrt eines Zuges. Hallo Götz, Das ist so richtig, es geht kein Ereignis verloren. Die Krux liegt darin, dass zwei Ereignisse fast parallel ausgeführt werden und die selbe Variable verändern. In einzelne Schritte aufgeteilt passiert beim Ändern eines Zählers folgendes (Hier als Beispiel Zähler erhöhen): Schritt 1: Hole den Wert der Variablen in ein Arbeitsfeld. Schritt 2: Addiere den Wert 1 auf das Arbeitsfeld Schritt 3: Schreibe den Inhalt des Arbeitfeldes wieder in die Variable. Wenn nun gleichzeitig von einem anderen Ereignis der Zähler vermindert wird und dabei der Schritt 1 während Schritt 1 oder 2 der Erhöhung stattfindet, wird das Ergebnis der Zählererhöhung überschrieben. Mein Lösungsansatz war daher, Einfahr- und Ausfahrzähler getrennt zu führen. Bei Wertegleichheit ist der Bereich dann frei. Grüße, Wolfgang
Andy Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 (bearbeitet) Hallo Wolfgang, ich glaube, das haben wir schon versucht. Das geht aber auch schief. Es scheint wirklich der Kolonneneffekt zu sein (Hawkeye's Thread). Wenn die Fahrzeuge dann vorne noch getrennt sind, aber innerhalb des Bereichs zusammen finden, hat man den Salat. Gruß Andy Bearbeitet 21. Oktober 2022 von Andy
prinz Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 Hallo Andy, Ja, auch hier gab es Probleme. Ich wechsle zu Hawkeye's Thread. Grüße, Wolfgang
Goetz Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 vor 8 Minuten schrieb prinz: Wenn nun gleichzeitig von einem anderen Ereignis der Zähler vermindert wird und dabei der Schritt 1 während Schritt 1 oder 2 der Erhöhung stattfindet Das passiert im Studio aber nicht, Prinz Die Verarbeitung geschieht seriell und nicht parallel.
prinz Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 vor 3 Minuten schrieb Goetz: Die Verarbeitung geschieht seriell und nicht parallel. Soll das heißen, dass ein Ereignis erst dann ausgeführt wird, wenn alle anderen beendet sind ? Kann nicht sein.
Goetz Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 (bearbeitet) Das soll es heißen. Ausnahme: Verzögerungen. Denn die bewirken, dass eine Aktionsliste an dieser Stelle abgebrochen und später erneut aufgerufen wird. In die Änderung eines Variablenwertes kann nichts anderes "reinfunken" bis der Vorgang abgeschlossen ist. Und die Ereignisse werden nicht ausgeführt. Sondern sie sind Auslöser dafür, dass Aktionslisten ausgeführt werden, welche wir diesen Ereignissen zuweisen. Bitte nicht als Wortklauberei missverstehen. Ich schreibe das, weil falsche Beschreibungen manchmal von falschen Vorstellungen herrühren, die dann zu falschen Interpretationen führen. Bearbeitet 21. Oktober 2022 von Goetz
Neo Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 Hallo Prinz, es ist wie Götz es geschrieben hat. Wenn im Studio ein Ereignis auftritt, geht die Ereignisverwaltung von oben nach unten durch alle Ereignisdefinitionen, die zu dem Ereignis passen und führt die dort aufgelisteten Aktionen von oben nach unten aus, Ereignis für Ereignis. Es gibt keinerlei parallele Verarbeitung, das würde im Chaos enden. Natürlich gibt es einige Spezialfälle, wie z.B. die Verzögerungen, die technisch nur ein Trick sind, und das Ereignis später einfach nochmal aufrufen, aber an einer späteren Stelle einsteigen. Und es gibt Rekursionen, also Ereignisse, die direkt durch eine Aktion ausgeführt werden. Bei einfachen Variablenzuweisungen muss man sich aber für gewöhnlich nicht mit solchen Spezialfällen auseinandersetzen. Viele Grüße, Neo
prinz Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 Danke Götz und Neo Dann muss ich nochmal nachdenken, was sonst die Ursache sein kann. Mir kam dieses Problem aus meiner alten Softwarefirma bekannt vor. Dann seid ihr da besser gewappnet. Grüße, Wolfgang
dirk.klotz Geschrieben 21. Oktober 2022 Autor Geschrieben 21. Oktober 2022 vor 3 Stunden schrieb prinz: Ich wechsle zu Hawkeye's Thread. Kann bitte jemand den Link dorthin posten? Ich finde den Thread nicht.
Klartexter Geschrieben 21. Oktober 2022 Geschrieben 21. Oktober 2022 vor 9 Minuten schrieb dirk.klotz: Kann bitte jemand den Link dorthin posten? Ich finde den Thread nicht. Das Problem mit dem Zähler
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