Posts by BMWFan

    Es wäre wünschenswert, wenn das Scannen nach Modellen als Hintegrundprozess ablaufen könnte. Derzeit wird der Bildschirm als Vollbild belegt, so dass man nichts Anderes machen kann. Sicher, EEP kann man dann nicht laufen lassen, aber es soll, so gibt es Stimmen, auch außerhalb von EEP sinnvolle Dinge egeben, die man auf dem PC machen könnte.

    SO, ein kleiner Meilenstein in der Steuerung meiner Anlage:


    Der Code, mit dem meine Züge automatisch am Bahnsteig halten und auch wieder abfahren ist fertig.


    Code
    1. {"VSig2_LU", "BS", 346, "BS1", 0, 0},
    2. {"BS_01NO", "BS", 346,"BS2", 0, 0},
    3. {"BS_01NO", "WF", 120, 319, 2, 1, 346},
    4.                                            

    Das ist ein Stück aus dem Fahrauftrag, den der Zug abarbeitet. Bedeutung:

    1. Zeile:

    Beim zweiten Vorsignalkontakt aus Ludwigshafen, wenn die Stellung des Bahnsteigsignals 346 auf Halt ist leite die erste Bremsphase ein.

    2. Zeile:

    Beim Kontakt am Anfang des Bahnsteig 1 Richtung Norden, wenn die Stellung des Bahsteigsignals 346 auf Halt ist, leite die Zielbremsung ein. (Ob am Anfang, am Ende oder in der Mitte des Bahnsteigs ist in einer Tabelle für den Bahnsteig festgelegt).

    3. Zeile:

    Beim gleichen Kontakt, stelle die Daten zur Weiterfahrt ein: 120 Sekunden Haltezeit, die nächste Fahrstraße ist 319/2, die Fahrtrichtung wird beibehalten, Signal 346 erteilt die Fahrtfreigabe (sofern die Fahrstraße geschaltet ist, sonst steuert das Ausfahrtsignal die Weiterfahrt, wenn die Fahrstraße geschaltet ist).


    Türen auf und zu und diese Dinge sind noch nicht implementiert.


    Damit ist es mir gelungen, den Ablauf des Bahnsteighalts wie des gesamten Zugverkehrs getrennt vom Code durch Tabellendaten festzulegen. Diese Codezeilen stehen übrigens als Bausteine in einer Datei, so dass ich sie mit Copy+Paste in den Code einsetzen kann.


    Es hat damit zwar keine spetakulären Bilder eines Baufortschritts gegeben, aber das ist trotzdem für mich ein Riesenschritt.


    Viele Grüße

    Norbert

    Hallo Joachim,


    danke für den Tipp. Liest sich sehr interessant.


    Ich hatte auch ähnlich herumexperimentiert, also die Züge haben einen Tag, der die Route angibt und entsprechend die Fahrstraßen schaltet - ich bekam aber immer noch eine Matratze von Kontakten. Insbesondere, wenn Bahnsteiggleise in beiden Richtungen benutzt werden sollen. Auch bei mir wird es eine ziemliche Menge von gescripteten Funktionen geben müssen, allerdings habe ich den Ehrgeiz, dass mein System für andere Anlagen adaptierbar sein soll, wenn sie nach einem ähnlichem Schema aufgebaut sind.


    Viele Grüße

    Norbert

    DB54


    Du müsstest das entweder mit Excel oder auch Libre Office öffnen können. Hier wurde gesagt, das gehe problemlos. Was Win.exe angeht, weiß ich nicht Bescheid. LibreOffice ist Freeware und kann an verschiedenen Stellen heruntergeladen werden.


    Viele Grüße

    Norbert

    Wie vielleicht bekannt, strebe ich an, meine Anlage voll zu automatisieren, um als Zuschauer einen abwechslungsreichen und dem Vorbild entsprechenden Bahnbetrieb zu beobachten.


    In der üblichen Herangehensweise lösen Kontaktpunkte die einzelnen Funktionen aus, die durch ein LUA-Skript definiert werden. Das führt dazu, dass in gewissen Bereichen geradezu flächendeckende Matratzen von Kontaktpunkten notwendig werden, die nicht mehr wirklich zu beherrschen sind. Auch die Zusammenfassung in Summenkontakte vermindert zwar die Dichte auf dem Gleis, aber wirkliche Übersicht bringt das auch nicht.


    Ich jedenfalls bin davon überfordert, wie verschiedene frühere Versuche gezeigt haben.


    Daher habe ich mir ein völlig neues Konzept überlegt, dass ich jetzt auf meiner Anlage „Worms“ umsetzen will, und über das ich hier, sofern von Interesse, von Zeit zu Zeit berichten möchte.


    Die Grundidee ist, dass einem Zug ein Fahrauftrag zugeordnet wird, in dem festgelegt ist, was an welcher Stelle passieren soll. Der Kontakt selbst teilt dann dem Zug lediglich mit, wo er sich gerade befindet, woraufhin die Funktionen aufgerufen werden, die für diesen Zug laut Fahrauftrag an dieser Stelle abgearbeitet werden sollen. Das legt die Vielfalt der Funktionen von den Kontakten weg in das LUA-Skript gelegt wird, aber dies ist aus meiner Sicht wesentlich einfacher zu überblicken und zu pflegen. Nachteilig ist, dass das Skript wohl recht lang wird und man auch viele Daten definieren muss - aber für mich ist das besser zustrukturieren und zu überblicken als ein Tohuwabohu von Dutzenden von Kontakten mit entsprechend vielen Einzelfunktionen.


    An vorgegeben Kontakten nutze ich nur noch die Funktionen,. die vollkommen unabhängig von Fahraufträgen sind, etwa das Auflösen von Fahrstraßen oder das Rückstellen von Signalen auf „Halt“.


    Konkret sieht das so aus:


    In meinem Steuerungskonzept gibt es im Wesentlichen drei gedankliche Gebilde, die ich „Fahrdiensleiter“, „Lokführer“ und „Stellwerk“ nenne. Der Aufgabenzuschnitt ist zwar durchaus anders als in der Realität, aber dieses Modell hilft mir bei der Strukturierung:


    Die Funktion „Fahrdienstleiter“ startet die Züge entsprechend dem Fahrplan aus dem Schattenbahnhof bzw. aus den Abstellgruppen und ordnet ihnen den vordefinierten Fahrbefehl zu, in dem festgelegt ist, was bei welchem Kontakt zu geschehen hat.


    Wenn ein Kontakt ausgelöst wird, veranlasst der „Lokführer“, dass die im Fahrauftrag für diesen Kontakt festgelegten Funktionen aufgerufen werden. Dies geschieht, indem in entsprechenden Tabellen Steuerparameter gesetzt werden, die in der Schleife „EEPMain“ abgearbeitet werden. In der Tabelle wird etwa für eine benötigte Fahrstraße die Nummer eingetragen.


    Das „Stellwerk“ arbeitet die von den verschiedenen Zügen eingehenden Aufträge ab, stellt also beispielsweise Fahrstraßen und Signale. Wenn zum Beispiel für ein Fahrstraßensignal ein von 1 verschiedener Sollwert in der Tabelle steht, dann wird die zugehörige FS geschaltet.


    Ich hoffe, das ist einigermaßen verständlich geworden.


    Stand:


    Bislang habe ich dieses System in den Grundelementen aufgebaut und Fahrbefehle für durchgehende Züge erstellt. Diese können jedem Zug zugeordnet werden können, der diesen Kurs befahren soll, egal ob Durchgangsgüterzug oder Schnellzug, Postzug oder einzeln fahrende Lok.


    Das funktioniert. Bisher.

    Der nächste Schritt sind Fahraufträge für Züge, die am Bahnsteig halten und eventuell Kopf machen.


    Zur Illustration: So sehen die Fahrbefehle für Züge aus, die Worms ohne Halt durchfahren:


    Worms_Fahrbefehle.lua

    Feldabahner


    Hhhmmm. Meine ersten Gehversuche auf EEP hatte ich mit EEP 10 gemacht. Dann auch EEP13. Da gab es diese heutigen Gleistypen nicht - und ich kam ganz prima zurecht. Auch Überhöhungen sind kein handwerkliches Problem gewesen. Natürlich, durch die einschlägigen Vorgaben durchzusteigen, was ein "zulässiger Überhöhungsfehlbetrag" ist, erfordert etwas Energie, aber es war doch kein Problem, das dann in EEP umzusetzen. Und Neigungswechsel auch nicht.


    Aus meiner Sicht verstehe ich Dich also so, dass EEP Deiner Meinung nach auf dem besten Weg ist, die Probleme mit dem Gleissystem zu korrigieren, die es ohne diese Gleistypen gar nicht gäbe.


    Ich wünschte mir für zukünftige Versionen von EEP eben, dass ich die Nutzung von Helix und Konsorten einfach wegkonfigurieren kann und dann das alte System wie EEP13 wieder aktiv ist.


    Viele Grüße

    Norbert

    Michael_W


    "für weitere Gleistypen entsprechende Beispiele als Tool"


    Was für Gleistypen? Gerade, Kreisbögen und Übergangsbögen - mehr gibt es eigentlich nicht. Für Übergangsbögen ist die Lösung von EEP ganz gut - vorausgesetzt natürlich, der kommt nicht in einer Steigung zu liegen.

    Hallo zusammen,


    EEP benutzt ja Parabelbögen um die Enden von Gleisen miteinander zu verbinden, was manchmal recht komisch aussieht. Ich habe mir daher eine kleine Tabellenkalkulation gebastelt, die ich Interessierten gerne so wie es ist zur Verfügung stelle (Ich weiß nur nicht so genau, wie). Das sieht so aus:


    - In den Feldern B5 bis C7 werden nacheinander die Daten der beiden Gleise eingetragen, die verbunden werden sollen, wie man sie aus den Gleiseigenschaften ablesen kann. Phi ist das, was dort "Orient." heißt. Die Gleise müssen in Richtung auf den Schnittpunkt verlegt sein.

    - in Feld C2 erscheint dann der maximal mögliche Radius, hier 826,8229 m, um die Gleise mit einem Kreisbogen zu verbinden.

    - In B2 kann man eintragen, welchen Radius man verwenden möchte, hier 190 m (für eine Weiche).

    - die Felder B21 und C21 geben an, wie lang die beiden geraden Gleise sein müssen, damit der gewünschte Radius passt. Dies kann man in das jeweilige Feld der Gleiseigenschaften übertragen. Damit ergibt sich dann eine exakte Verbindung (bis auf die Rundungsfehler).

    - Wenn man den maximal möglichen Radius anwenden will, setzt man in Feld B2 "= C2" ein. Dann wird B21 oder C21 zu Null und das andere Feld zeigt, wie lang das ausgleichende Gleis sein muss.


    Das ist das Tool, das ich anwende, um meine Kurven zu verlegen. Ich habe keine große Lust viel in den Anwendungskomfort zu investieren, denn ich komme damit prima klar.

    Das Format ist Libre-Office-Calc (Freeware), wovon ich nicht weiß, ob Excel das lesen kann. Müsste mal jemand ausprobieren.

    Ich stelle auch gerne die einfachen Formeln zur Verfügung, falls jemand ein komfortables Tool basteln möchte.


    Viele Grüße

    Norbert

    Da gebe ich Speedy Recht: Das mit dem Gleissystem ist eine Plage, wenn man versucht, Gleisbögen in realistischen Steigungen zu verlegen. An einen Steigungswechsel im Kreisbogen wage ich gar nicht zu denken. Und nein, Parabelbögen sind nicht unbedingt das Mittel der Wahl, um Gleise miteinander zu verbinden, da kommen schon manchmal recht merkwürdige Krümmungsverläufe raus.


    Merke: Die große Bahn kommt mit Geraden, Kreisbögen, ggf. zu Korbbögen zusammengesetzt, und Übergangsbögen aus.

    Und misst Steigungen in Prozent oder Promille.


    Musste mal gesagt werden.


    Viele Grüße

    Norbert

    vola


    Danke für die Vorschusslorbeeren.

    Ich bin ab morgen für ein paar Tage unterwegs - wird also noch etwas dauern, bis ich mich hier wieder melde.


    Viele Grüße

    Norbert

    vola


    Ist gar nicht so furchtbar schwer. Da mir das Bremsen in EEP nicht gefällt - erst brachial in die Eisen und dann ewig auskullern - habe ich eine Funktion installiert, die den bremsverlauf genau steuert und bei jedem Durchlauf der LUA-Schleife dem Zug eine neue Sollgeschwindigkeit vorgibt.


    Der Rest sind ein paar einfache Formeln, um aus den Abständen - die ich natürlich in einer LUA-Tabelle festlegen muss - und den Geschwindigkeiten die jeweiligen Zeiten und Bremsverzögerungen zu ermitteln, damit der Zug dann auch an der richtigen Stelle zum Stehen kommt. Es ergebn sich gewisse - kleine - Ungenauigkeiten, weil LUA ja nicht kontinuierlich arbeitet, sondern nur alle 0,2 Sekunden Befehle ausführt, der ZUg aber weiterfährt. Daher ist es wichtig, zunächst auf eine niedrigere Geschwindigkeit herunterzubremsen und dann erst vollends abzubremsen.


    In den nächsten Tagen poste ich auch mal den Code, wenn ich den in meine Bahnsteigsteuerung eingebaut habe.


    Viele Grüße

    Norbert

    Mein letztes Update ist ja schon ein paar Tage her.


    Derzeit passiert an meiner Anlage optisch nicht viel - ich habe mich etwas intensiver um die LUA-Steuerung gekümmert, was auch wohl noch ein paar Tage so weitergehen wird.


    Nach den Kreuzungsweichen habe ich jetzt meine Fahrstraßensteuerung beisammen, inklusive einer Lösung für ein prblem mit langen Zügen, wenn die letzten Wagen noch nicht aus dem Weichenbereich herausgefahren sind, aber die zugspitze das FS-Zielsignal erreicht hat und die FS aufgelöst wird.


    Weiterhin ist hinzugekommen, dass ich Bedingungen definieren kann, wann eine FS geschaltet wird. Das dient dazu, dass die Einfahrt für durchgehende Züge erst dann eingestellt wird, wenn die FS für die Ausfahrt freigegeben ist, der Zug alsi sicher durchfahren kann.


    Dann gibt es bei mir jetzt eine Bremsfunktion, die über einen Kontakt ausgelöst wird und abhängig von der Stellung des zugehörigen Signals die Bremsung durchführt. Dabei wird dem Zug laufend die Sollgeschwindigkeit vorgegeben, bis die Zielgeschwindigkeit oder der Stillstand erreicht ist. Dabei habe ich verschiedene Bremsarten installiert:

    - Bremsung bei Halt auf freier Strecke: Der Lokführer will den Zug möglichst lang in Bewegung halten: Es wird erst stark gebremst um sich langsam dem Signal zu nähern.

    - Bremsung bei Halt im Bahnhof: Der Weichenbereich soll möglichst schnell freigegeben werden: Zuerst wenig und dann stark bremsen.

    - Zielbremsungen Zuganfang, Zugmitte, Zugende: Die Bremsung erfolgt so, dass Zuganfang, Zugmitte oder Zugende an einem bestimmten Punkt zum stehen kommen. Damit kann man für alle Züge unabhängig von deren Länge etwa eine bestimmte Halteposition am Bahnsteig gewährleisten.

    - bei Langsamfahrt erfolgt die Bremsung so, dass die entsprechende geschwindigkeit am Signal erreicht ist.


    Als nächstes kommt der Bahnsteigbetrieb dran.

    Ooops, die habe ich im Shop übersehen. Mein Fehler.

    Es wäre aber auch schön, eine andere Bauform zu haben, um Ganzzüge abwechslungsreicher zu gestalten.


    Viele Grüße

    Norbert

    Das wäre etwas, eine realistische Fahrphysik. Und auch Einstellparameter, die irgendwie technisch Sinn machen. Ich habe bisher in keiner Dampflok - außer bei Märklin uns Co. natürlich - ein Getriebe gefunden und auch kein Gebilde, dem ich sinnvollerweise eine Drehzahl zuordnen könnte. Außer den Rädern natürlich, aber die haben keine so hohen Drehzahlen, wie in den Paramtern steht. Das sieht nach den markanten Drehzahlen eines Verbrennungsmotors aus, Drehzahl bei Leerlauf / maximalem Drehmoment / maximaler Leistung.


    Für mich sieht das so aus, als hätte jemand, der vorher Simulatoren für Autos programmiert hat, dies einfach auf die Eisenbahn übertragen. Entsprechend mau ist das Ergebnis.


    Dabei ist es bei Lokomotiven doch so viel einfacher!


    Aber zum Bremsen. EEP bremst ja nun wirklich brachial. 1,5 m/s^2. scheint die Regel zu sein.


    Ich habe mir beholfen, indem ich während des Abbremsens laufend die Geschwindigkeit vorgebe.


    Für jeden Zug, den es auf meiner Anlage gibt, hat die Bremsmatrix eine Zeile. Wenn der Zug bremsen soll, etwa vor einem Signal, dann wird über einen Kontakt der Teil des Skripts aufgerufen, der die Zeiten und Beschleunigungen ermittelt, etwa um kurz vor dem Signal anzuhalten, und diese Werte dann in die Matrix einträgt. Dir ~=0 ist der Steuerparameter, die Bremsung durchzuführen.


    Extrakt.lua

    Wenn zusätzlich noch das Gleisstück überwacht wird an dem das Zielsignal positioniert ist, werden die Fahrstraßen für kreuzenden oder nachfolgenden Zugverkehr solange abgewiesen, bis der überlange Güterzug komplett am Zielsignal "seiner" Fahrstraße vorbeigefahren ist.


    Eigentlich nicht, denn die FS wird ja aufgelöst, wenn die Zugspitze das Zielsignal passiert. Und dann wird auch jenes Gleis nicht mehr überwacht.