Pendelzugsteuerung mit LUA, wie geht das im Bahnhof?

Achte bitte darauf, dass Du mit deinem Thema bzw. mit deiner Frage im richtigen Bereich bist.
Die Bereiche sind: Einstellungen im Forum, EEP aktuell ab EEP7 , Splines, Rollmaterialien, Immobilien, Landschaftselemente, Signale und Schaltung, Anlagenvorstellungen, Schnappschüsse Konstrukteure, EEP Treffen , Laberecke, Online - Handbuch EEP Vielen Dank für die Unterstützung das Forum übersichtlich zu halten.
Bilder/Fotos aus dem Internet sind nur als Link gestattet. Eigene Fotos, also Fotos aus dem realen Leben, sind erstens mit Eigenes Bild als Quellenangabe zu kennzeichnen und zweitens nur als Dateianhang im Beitrag zulässig. Bilder ohne Quellenangaben und Bilder dessen Quelle das Internet wie z. B. Google ist, werden gelöscht.
  • Hallo,

    Ich bin gerade dabei eine Pendelzugsteuerung mit LUA zuschreiben.

    Dabei stoße ich auf folgendes Problem:

    Im Bahnhof auf Gleis 1 (das grundsätzlich von zwei Seiten angefahren werden kann) stehen zwei Ausfahrtsignale, für jede Richtung eines.

    Wenn der Pendelzug z.B. von der rechten Seite kommt, wird er vom linken Signal zum Halten bewegt. Wird jetzt die Fahrtrichtung geändert und die Geschwindigkeit festgelegt und das rechte Ausfahrsignal auf Fahrt gestellt, tut sich nichts. Ich nehme an, das hat mit den Vorsignalen der beiden Ausfahrsignalen zu tun, die jeweils im Gleis 1 aufgestellt sind.

    Wie bekomme ich das aber jetzt in den Griff?


    Danke,

    Stephan

  • Nach der Richtungsänderung musst Du auch das andere Signal auf Fahrt stellen. Dann fährt der Zug los. Also beide Signale auf Fahrt. Das ist der große Nachteil der "Vorsignalhörigkeit" bei EEP. Sobald das Vorsignal einmal überfahren ist, klebt der Zug am Hauptsignal und wartet, bis er dort freie Fahrt bekommt. Das zwingt einen dann zu dieser eigentlich unrealistischen Vorgehensweise.

  • Wird jetzt die Fahrtrichtung geändert und die Geschwindigkeit festgelegt und das rechte Ausfahrsignal auf Fahrt gestellt, tut sich nichts.

    Weil das Signal auf der linken Seite dasjenige ist, welches den Zug "festhält". Das kannst du auch im Steuerdialog (neben dem Hinweis "Automatik: an") sehen.

    Da du Lua verwendest, kannst du den Einfluss des linken Signals aufheben ohne dieses Signal auf Fahrt zu stellen. Denn sobald ein Zug per Lua eine Geschwindigkeit zugewiesen bekommt, erlischt der Einfluss des Signals.

    Du kannst also mit EEPOnSignal_ auf das rechte Signal reagieren und dem Zug die passende Geschwindigkeit (samt Vorzeichen!) geben, um ihn ausfahren zu lassen.

  • Hallo Stephan

    Das kannst Du, oder andere, die das interessiert, auch ohne Lua umgehen.

    Wenn die Lok an dem Signal steht und umkehren soll, dann kannst Du den Vorgang durch einen Fahrzeugkontakt starten.

    Du mußt ihn nur sinnvoll durch entweder eine andere Lok, oder wenn das nicht geht, ein Rollmaterial, das irgendwo unter der Platte im Kreis oder über virtuelle Gleisverbindungen fährt, auslösen.

    Im Fahrzeugkontakt stellst Du dann eine Fahrtrichtungsumkehr und eine gewünschte Geschwindigkeit für die Pendelzuglok ein.

    Vielleicht geht sogar Folgendes: wenn Du vor dem jeweiligen Signal mit der Lok selber über einen Fahrzeugkontakt fährst und diesen auf eine gewünschte Verzögerung stellst (wann der Zug umkehren soll).

    Der müßte sich dann eigentlich selber von dem Signal befreien. Das hab ich aber noch nicht ausprobiert.

    EInstellen wieder Fahrtumkehr und Geschwindigkeit.

    Viel Erfolg

    Thomas

    EEP16.1 Patch 2, HomeNos15, Modellkatalog, Blender 2.8, Tauschmanager? , Hugo :aq_1:

  • wenn Du vor dem jeweiligen Signal mit der Lok selber über einen Fahrzeugkontakt fährst und diesen auf eine gewünschte Verzögerung stellst (wann der Zug umkehren soll).

    Ja, das funktioniert.

    Aber deine erste Methode tut das, was Stephan (nach meinem Verständnis) erzielen möchte. Dass die Lok nämlich dann losfährt, wenn das Ausfahrsignal für die Gegenrichtung zeigt, dass die Strecke frei ist.

  • Warum so umständlich? Ich würde in diesem Fall den Zug nicht vom linken Ausfahrsignal stoppen lassen, sondern von einem unsichtbaren Signal. Dies kopple ich dann mit dem rechten Ausfahrsignal und fertig.

  • Was heißt umständlich? Ein unsichtbares Signal ist schließlich noch ein Signal mehr Und wenn das Gleis beidseitig verwendet wird, braucht man noch ein zweites. Ich sehe nicht, was damit gewonnen wäre.

  • Wenn die Lok an dem Signal steht und umkehren soll, dann kannst Du den Vorgang durch einen Fahrzeugkontakt starten.

    Du mußt ihn nur sinnvoll durch entweder eine andere Lok, oder wenn das nicht geht, ein Rollmaterial, das irgendwo unter der Platte im Kreis oder über virtuelle Gleisverbindungen fährt, auslösen.

    Das o.g. und die folgenden Vorschläge fand ich auch nicht viel einfacher, sind weit mehr Arbeit, als ein oder zwei Signale aufzustellen.

    Aber nun sollten wir mal nicht vom hundertstel ins tausendstel kommen.

    Es ging auch nicht unbedingt um die Arbeit, sondern um das Nachdenken darüber, wie man das hinbekommt. Ein weiteres Signal, eine Verknüpfung und das Problem ist von gestern.

  • Vielen Dank für eure Tipps. Aktuell versuche ich es mit dem Tipp von Goetz. Es soll also, wenn sich das Ausfahrtsignal auf Fahrt stellt, die Geschwindigkeit des Zuges, der sich auf dem Gleis befindet, entsprechend eingestellt werden. Woher weiß ich jetzt aber, welcher Zug auf dem Gleis steht? Ich kann zwar ermitteln, welcher Route diesem Zug zugewiesen wurde, für den Zugnamen konnte ich jedoch keinen Befehl in LUA finden.


    Danke,

    Stephan

  • Woher weiß ich jetzt aber, welcher Zug auf dem Gleis steht?

    Und da fangen die Probleme schon an. Was soll an ein weiterem Signal dann umständlicher sein? Dem Signal ist der Zugname und die Geschwindigkeit völlig 'Wurscht'.

  • Der Zugname wird beim Überfahren eines Kontaktpunktes an die aufgerufene Lua-Funktion als Parameter "Zugname" übergeben. Wenn Du vom Kontaktpunkt aus MeineFunktion(Zugname) aufrufst und die Funktion im Skript auch mit "function MeineFunktion(Zugname)" definierst, steht der Zugname in der Variablen "Zugname".

  • Woher weiß ich jetzt aber, welcher Zug auf dem Gleis steht?

    Und da fangen die Probleme schon an. Was soll an ein weiterem Signal dann umständlicher sein? Dem Signal ist der Zugname und die Geschwindigkeit völlig 'Wurscht'.

    Wenn Du Dein unsichtbares Signal nicht mit dem Zugnamen verknüpfst, beeinflusst es jeden Zug. Wenn auf dem Gleis nicht nur Pendelzüge verkehren, bekommst Du da auch ein Problem.

  • Aaaaaaah, da sind wir wieder beim Zugnamen :bf_1:

    Eventuell ist es hier ja von Vorteil, dem Pendelzug eine Route mitzugeben?

    Und dann meinen vorgeschlagenen Fahrzeugkontakt nur für Züge mit dieser Route auszuführen.

    Also Ablauf:

    Zug mit Route Pendelzug kommt an am Signal.

    Fahrzeugkontakt stellt Fahrtrichtung um und läßt den Zug nach z.B. 120s vor das geschlossene Signal an der anderen Bahnsteigseite fahren. Das erste Signal bleibt so auf HALT.

    Nun kann Lua oder der User beliebig mit dem Ausfahrsignal den Zug starten wann immer es sein soll.

    Andere Züge werden nicht beeinflusst und verlassen das Gleis in der anderen Richtung.

    Gruß

    Thomas

    EEP16.1 Patch 2, HomeNos15, Modellkatalog, Blender 2.8, Tauschmanager? , Hugo :aq_1:

  • da sind wir wieder beim Zugnamen

    Nur oberflächlich betrachtet.

    Denn bei der Auswahl "für Zug" in Kontaktpunkten, bei den Listen in virtuellen Depots, bei Fahrplänen, bei der Auswahl im Steuerdialog werden EEP-intern die Zug-IDs verwaltet, nicht die Namen. Die Namen sucht sich EEP nur anhand der IDs für die Darstellung der Liste raus. Eine Namensänderung würde in diesen Fällen nichts an der Zuordnung eines Kontakts ändern.

    Anders sieht es beim Eintrag "Filtername" in Kontaktpunkten aus. Hier wird wirklich der Zugname mit dem Eintrag in diesem Feld verglichen.

    Und Lua spricht Züge ebenfalls über ihren Namen an und nicht über die ID.

  • Vielen Dank schon mal. Ich werde das heute mal testen.

    Warum aber arbeitet EEP nicht mit Blöcken? Dann könnte man Zügen Routen zuweisen und in den Routen angeben von welchen Block er wohin fahren soll, wie lange er dort warten soll und ihn dann wieder zurückfahren lassen. Die Weichen und Signale würden automatisch richtig geschaltet und die Weichen über die gefahren wird werden gesperrt und erst wieder freigegeben wenn der Zug drüber gefahren ist.

    Sobald die Weichen wieder frei sind könnten andere Routen wieder abgearbeitet werden und darauf zugreifen.

    Momentan überlässt man diese ganzen Abfragen und die Programmierarbeit dem Benutzer. Das ist für jede Anlage bzw jede Route ziemlich aufwendig. Ich bin gerade erst bei der Programmierung eines Pendelzugs der immer aufs gleiche Gleis einfährt.

    Schaut euch mal von der Logik die Modellbahnsteuerungssoftware itrain an :)

    Gruß,


    Stephan

  • Warum aber arbeitet EEP nicht mit Blöcken? Dann könnte man Zügen Routen zuweisen und in den Routen angeben von welchen Block er wohin fahren soll, wie lange er dort warten soll und ihn dann wieder zurückfahren lassen. Die Weichen und Signale würden automatisch richtig geschaltet und die Weichen über die gefahren wird werden gesperrt und erst wieder freigegeben wenn der Zug drüber gefahren ist.


    Sobald die Weichen wieder frei sind könnten andere Routen wieder abgearbeitet werden und darauf zugreifen.

    Guter Ansatz.

    Hast Du Dir schon überlegt, was da alles wie zu berücksichtigen ist, damit das alles fehlerlos abläuft und nirgends steckenbleibt?

    Wenn Du die Entwicklung von EEP anguckst, siehst Du, dass sich in diese Richtung seit Anbeginn einiges getan hat.

    Der letzte, meiner Meinung nach grösste Sprung in die von Dir angedachte Richtung sind die Fahrstrassen.

    :aq_1:Gruss Jürg

    Es ist müssig, dauernd den Weltuntergang heraufzubeschwören. Man muss auch aktiv etwas dafür tun. :bn_1:

  • Dass das mit Sicherheit mit viel Programmierarbeit verbunden ist, ist mir klar. Meiner Meinung nach muss sich EEP aber in den nächsten Jahren sowieso komplett ändern, sprich von den uralten Sachen trennen. Das fängt bei der Grafikengine an und geht bei den 2D und 3D Editoren weiter, mit denen momentan unterschiedliche Dinge editiert werden können.

    Aber das gehört jetzt nicht in diesen Thread.

    Meine Frage, wird es in zukünftigen Versionen bei EEP in Richtung Blocksteuerung gehen?

    Gruß,


    Stephan

  • Dass das mit Sicherheit mit viel Programmierarbeit verbunden ist, ist mir klar.

    Es geht nicht so sehr um die Menge an Programmierarbeit.

    Das größere Problem ist die Menge unterschiedlicher Strecken, die man auf Anlagen findet. Dazu kommen die speziellen Bedürfnisse jedes Users, exotische Signalaufstellungen, untypische Streckenführungen und dergleichen mehr.

    Man würde die User bevormunden müssen (indem man ihnen Signalpositionen, Streckenverläufe, realistischen Verkehr etc. vorschreibt). Und das widerspräche der Kernphilosophie von EEP.

    wird es in zukünftigen Versionen bei EEP in Richtung Blocksteuerung gehen?

    Wie gut bist du mit den Fahrstraßen in EEP vertraut?

    Wie gut kennst du PlanEx von FM1, ein Werkzeug zur Einrichtung einer Automatik wie du sie dir vorstellst?

  • Hallo Jaques-Ludwig,

    ich kann dir PlanEx 3,0 von Friedel Märtens nur empfehlen.

    Dieses Programm ist große Klasse. Man benötigt keine Lua-Kenntnisse, aber die gesamte Steuerung erfolgt mit einer Lua-Steuerung die PlanEx selber erstellt. Ich selber habe einen Kopfbahnhof mit 10 Bahnsteigen und je 3 Ein- und Ausfahrgleise

    mit PlanEx 3.0 automatisiert und als läuft hervorragend.

    Gruß Hartmut

    Intel(R) Core(TM) i7-3770K CPU 3,50GHz, 32GB RAM, NIVIDIA Geforce GTX 970 4GB, Win10 64bit,
    Samsung SSD 500GB und 250GB, EEP 5, EEP 7-8 mit allen Plug-Ins, EEP9.1 Patch 3 64bit, 10.2 64bit, EEP 11.3, EEP 13.2, EEP14.1,15.1,16.1 und

    17.2.Plug_In 1,

    PlanEx V 3.2, PlanEx-Easy, im Test PlanEx 4

  • Fahrstraßen hab ich mal probiert, aber mir gefällt nicht, dass dann die Signale der Fahrstraßen auf der Anlage zu sehen sind.

    PlanEx hört sich gut an. Das sollte gleich bei EEP dabei sein :)

    Das werd ich mir mal anschauen. Kann man die von PlanEx erstellte LUA Datei noch bearbeiten oder funktioniert dann gar nichts mehr?

    Gruß,


    Stephan