Jump to content

freie Straße selber suchen


JimKnopf

Empfohlene Beiträge

So, im Video sieht man's deutlich - es wird vieles klarer dadurch!!! Zunächst: Es passiert in der Praxis nicht immer, da es grenzwertig ist!
Es ist das Kfz 040. Es ist mit der Länge 2 angegeben, aber tatsächlich kommt es vor, dass es noch ein wenig übersteht, sich das nächste Fahrzeug dann einen Block Zeit läßt. Es folgt noch ein PKW hinten nach, und dann biegt noch ein LKW der Länge 2 ein. Totallänge 6, angegeben ist 7. Das sollte jetzt eigentlich noch ausreichen (?), aber tatsächlich schiebt der LKW den hintersten PKW, wenn das weiße Käfercabrio nicht an die Feuerwehr ranfährt. Und deshalb gibt es keine BETRITT GLEIS-Meldung. Offensichtlich wird von einem Fahrzeug mit der Geschwindigkeit 0 keine BETRITT/VERLÄSST-Meldung abgesetzt. Und dann muß es natürlich kollabieren, da fehlen der Logik Ereignisse und die vielen Ausfälle lassen sich auch erklären. Tatsächlich geht offensichtlich gar nix verloren, wir fallen nur mal wieder der einfachen Float-Genauigkeit zum Opfer.
Ich setze jetzt die Länge des 040 mal auf 3 und dann müssen wir mal klären, wie das mit der Zählung ist. Ich habe die Situation unmittelbar vor dem Problem mal angehalten und gespeichert - zum Glück kommen wir bis zu der Stelle reproduzierbar. Aber dann: mal passiert es, meistens nicht.
Was hier eigentlich auch bestraft wird ist Folgendes: Einmal wird mit Länge gearbeitet, aber tatsächlich wird die vom eigentlichen Stop/Go-Betrieb ignoriert.
Ich mache mal langsam mit der 'Übersetzung'. Axel, Du kannst da noch mal schauen, ob es noch andere grenzwertige Fahrzeuge gibt, die man besser höher einstuft - und mal schauen, warum es da schon zum Auffahren kommt, obwohl eigentlich noch ein Plätzchen frei sein sollte. Ich bin dann Stand-By.

Gruß
  Andy

kfz_problem.mbp

p.s: MEMO: wenn Du die Länge des Kfz 040 anpaßt, muß auch der Abschnittszähler, in dem er gerade steht, angepaßt werden.
10 Minuten ohne Fehler hat sie jetzt schon geschafft! Muß nicht heißen, dass sie das nun immer tut - aber immerhin.

Bearbeitet von Andy
p.s.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Andy,

es sind einige dabei Fahrzeuge wo die Länge grenzwertig sein kann, die werde ich alle hochsetzen. Die Objektvariable .Länge wird nur gebraucht wie viele Haltegleise am Ende besetzt werden, damit der Straßenblock rechtzeitig gesperrt wird und hat mit dem Anhalten / Fahren der Fahrzeuge nichts mehr zu tun.

Ich habe noch einen anderen Fehler gefunden

2.JPG.10d064762b59cb3a94fe00e5bec7bbe2.JPG

das gelbe Kfz hätte an der grünen Ampel stehenbleiben müssen. Ob alle oder welche Richtung gesperrt ist liegt in der Variable 01-Kreuzung die hätte den Wert 48 (9+11+13+15) haben müssen hat aber den Wert 35 – da habe ich auch nicht sauber gearbeitet.

Ich sehe schon da gibt es noch viel zu tun.

Gruß Axel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Glaube ich weniger, Du bist nah dran. Ich habe den 10 Minuten-Log auch mal ausgewertet. Der ist blitzsauber und wenn man den programmierten Mustern glauben kann, so sind die in Ordnung, oder haben alle einen generellen Fehler, wonach es jetzt nicht mehr aussieht. Wie es mit den Konstanten aussieht (35/48), das ist ja ein Datenproblem. Das ist wieder was anderes. Aber davon gibt's ja nicht so viele.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Am 23.2.2019 um 12:22 schrieb fzonk:

da die EV es sonst nicht schafft die Anzahl von Ereignissen zu verarbeiten.

ich lese sehr oft, dass die EV Ereignisse verschluckt. Das kann ich so allerdings nicht nachvollziehen. Die EV arbeitet linear einfach alle Ereignisse ab, die eintreffen, egal wie lang das dauert. Allerdings gibt es bei den Gleisen die Besonderheit, dass sehr kurze Gleise bei niedrigen FPS (das Fahrzeug macht größere Sprünge) übersprungen werden, und so gar keine "Fahrzeug betritt/verlässt ein Gleis"-Ereignisse ausgelöst werden. Das steht bei mir noch unter den Optimierungsmöglichkeiten.

In V5 kann das Problem aber umgangen werden. Dort gibt es ein neues Objekt "Gleiskontakt", was auf einer beliebigen Spur platziert werden kann und ein Ereignis auslöst, sobald es von einem Fahrzeug berührt wird. Diese neuen Gleiskontakte verwenden eine modernere Programmlogik, weshalb auch größere Fahrzeugsprünge keine Kontakte auslassen. Extrem kurze Gleise zum Auslösen von Ereignissen werden dann nicht mehr nötig sein.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Minuten schrieb Neo:

dass die EV Ereignisse verschluckt

Hallo Neo,
also, das habe ich inzwischen kapiert, dass sie das nicht tut (außer den erwähnten Gleisüberspringern).
Die Log-Auswertungen zeigen, dass sie, wenn sie sehr viel zu tun hat, da zeitlich schon in den nächsten Zyklus rüberkommt und ich bin der Ansicht, dass dies genau die Stellen sind, an denen Fahrzeuge optisch auch mal hüpfen können. Frames können also durchaus verloren gehen (wie ich das sehe!).
Deshalb mein Hinweis darauf, dass man, wo möglich, komplexerer Dinge ein wenig zeitversetzt gestalten sollte. Ein Beispiel für hier wäre: nicht alle Ampeln absolut gleich takten, sondern die verantwortlichen Steuerloks am Anfang minimal versetzen.
Ob es Sinn macht, Schrittketten insofern aus der EV herauszunehmen, dass man da Steuergleise und Steuerloks baut, mag ich jetzt nicht beantworten.
Für Leute, die mit Programmierung an sich nicht so viel zu tun haben, bestimmt eine ordentliche Alternative.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 28 Minuten schrieb Neo:

Dort gibt es ein neues Objekt "Gleiskontakt"

inspiriert von den 'Rule the Rail' Connectoren, die auf Einfahrt von roter und blauer Seite unterschiedlich reagieren können? Die sind nicht schlecht die Dinger! Die habe ich hier in der Tat vermißt.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Andy,

ich habe die Haltegleise etwas verlängert damit die Pkw mehr Platz zum halten haben, sonst hätte ich für die größeren 2 statt 1 Länge gehabt. Bei den Lkw brauchte ich nur die Bremsverzögerung anpassen so das sie auch die Anzahl der Haltegleise belegen die in der Variable hinterlegt sind. Die Dummy für die Ampelsteuerung habe ich so verschoben das nicht mehrere Ampeln zur gleichen Zeit umspringen.

Die fzonk - Methode habe ich angewandt und erst mal 5 Fahrzeuge bei Seite gestellt. Es läuft jetzt 60 Minuten unfallfrei.

Kfz problem 2.mbp

Gruß Axel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Andy,

vor 5 Stunden schrieb Andy:

Die Log-Auswertungen zeigen, dass sie, wenn sie sehr viel zu tun hat, da zeitlich schon in den nächsten Zyklus rüberkommt

... dies muß man etwas differenzierter betrachten... zu den Anfängen der Schnittstelle kam es immer wieder zu Problemen, daß die Schnittstelle etwas "verschluckt" hat, also nicht nachgekommen ist wenn "viel los war"... Neo hat es meines Wissens so gelöst, daß die Schnittstelle gegebenenfalls etwas nachschiebt... da die Schnittstelle mit den fps synchronisiert ist, kann es schon auch sein, daß etwas erst beim nächsten Zyklus übertragen (nachgeschoben) wird...

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau so ist es.
Nur konnte ich mir den massiven Ausfall der betritt/verläßt-Meldungen nicht erklären, was aber eben den Grund hat, dass ein geschobenes Fahrzeug (also eins mit Geschwindgkeit 0) da gar nichts auslöst. Das ist natürlich absolut logisch - aber man wird so abgelenkt, dass man da nicht drauf kommt.
Was man nach dieser Erkenntnis allerdings auch wieder zur Fehlerkontrolle nutzen kann, denn wenn ein Zero-Speed-Fahrzeug plötzlich auf einem anderen Gleis STEHT, dann ist's passiert.

p.s.: Ich bin da auch weit davon entfernt irgendetwas zu kritisieren. Im Gegenteil, höchsten Respekt für Neo, dass er es geschafft hat, diese ganzen Problematiken unter Kontrolle zu bringen. Ich erwarte nicht mal, dass er jene geplante Optimierung wirklich umsetzen kann. Es gibt schlicht und einfach Grenzen des Möglichen.

Bearbeitet von Andy
p.s.
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...