Twitch Sendung am Mittwoch, 7.9.2016 - Thema: Lua - Teil 5 (Fahrstrassen)

!!! Please ensure, that your contribution or question is placed into the relevant section !!!
Questions about rolling stock, for example, do not belong in "Questions about the Forum". Following is perhaps the right area where your question will be better looked after:
General questions to EEP , Splines, rolling stock, Structures in EEP, landscape elements, Signalling system and controlling, designers, Europe-wide EEP meetings , Gossip
Your cooperation to keep the forum clear is appreciated.
In the case of pictures that are attached to the article, the source must also be stated. This also applies to your own pictures, which were taken by you. Pictures without source information will be deleted!
  • Für die Twitch Sendung am heutigen Mittwoch, den 7.9. um 20:30 Uhr habe ich mir vorgenommen, Die Steuerung von Fahrstraßen per Lua vorzustellen.


    Ich werde mich dabei zunächst auf sehr simple Fälle beschränken um zu zeigen, wie man Fahrstraßensignale prinzipiell per Lua ansprechen kann.


    Viele Grüße
    Götz

  • Guten Morgen,


    die gestrige Sendung fand ich große Klasse, vor allem weil sich alle (inklusive meiner Person) im Chat ein wenig zurückgehalten haben und so mehr Aufmerksamkeit für die Sendung übrig blieb.
    Ganz besonders gut gefallen hat mir am Ende die Einlage für die "Profis", wo man einige interessante Sachen erfahren konnte. Diese werde ich sicherlich viel nutzen, denn es erspart sehr viel Tipperei.


    Der Upload der Twitch Sendung dauert noch ein wenig, da der Upload heute nicht so zügig voran geht wie gewohnt. Die beiden Anlagen, zur Sendung sind bereits auf downloadbar.
    ...

  • Hallo Thomas,


    dann warte ich mal mit Spannung auf den Download. Deine Hinweise machen mich schon neugierig.
    Nochmals Danke für Deine Bereitstellung der Sendungen. Kann meißt Mittwochs nicht dabei sein, habe aber alle Sendungen gesehen.


    Peter

    Betriebsystemname: Microsoft Windows 10 Pro Education

    Prozessor: AMD Ryzen 5 1600 Six-Core Processor, 3200 MHz, 6 Kern(e), 12 logische(r) Prozessor(en)

    PC:RAM 16 GB, Grafik Karte: Name NVIDIA GeForce GTX 1060 6GB


    EEP 16 mit allen Plug ins und Patches, EEP 17. Plug In 1

    Modelkonverter, Home-Nostruktor 16.0, Modellkatalog, Bodentextur Tool



  • Die Sendung von gestern Abend, in der die Steuerung von Fahrstraßen und Blockstrecken mit LUA gezeigt wurde, ist nun online und kann heruntergeladen werden.
    Die Sendung besteht aus 2 Dateien, außerdem wurden 2 Anlagen bereitgestellt.








  • Hallo Thomas


    Bei mir haben Download und entpacken wie immer problemlos geklappt.


    Gruß


    Detlef

    Gruß

    Detlef


    EEP6.1, EEP17.0 Patch2

    Nos5, HN16, Modellkatalog, Tauschmanager, Hugo, ModellExplorer, ZugExplorer, Bilderscanner

    , Modellkonverter


    Alles was lediglich wahrscheinlich ist, ist wahrscheinlich falsch.

    Rene Descartes

  • Hallo Götz,


    erstmal vielen Dank für deine Sendungen und auch an Thomas für die Downloads.
    Ich habe aber ein Problem mit der Anlage, bei mir wird der Personen005 nicht richtig angezeigt, es sind Lücken zwischen der Lok und einigen Wagen zu sehen. Im 3D-Editor habe ich dann gesehen das die Wagen ineinander geschoben sind, was dadurch sichtbar wird das beim anklicken ein Teil des Wagens heller wird und der Rest dunkel bleibt. Wie kann das passieren und wie kann man das wieder richtig machen, denn dieses Verhalten habe ich auch bei einer Anlage das der dlb.


    Gruß


    Norbert

    PC: Intel(R) Core(TM) i3 CPU 530 @ 2.93GHz; NVidia GeForce GTX 460 mit 1024 MB GDDR5 RAM; 16 GB DDR3 RAM; 1 x 500 GB HDD mit WIN 10 Pro 64 2004; 1 x 1 TB für allg. Daten; 1 x 2 TB für EEP, EEP6.1 wg. Modellkonverter; MK, TM, ME, Tools von NR1, EEP15.1 mit Plugin 1, EEP16 mit allen Patches in Rente.

  • Wie kann das passieren

    Das kann passieren, wenn diese Wagen ein Update bekommen hatten und sich damit die Kollisionsbox verschoben hat. (Die Kollisionsbox ist ein unsichtbarer Kasten, der die Abmessungen definiert und so beispielsweise dafür sorgt, dass Kupplungen richtig andocken)
    Wenn einer von uns beiden das Update hat und der andere nicht, dann passen die Positionsdaten in der Anlagendatei nicht zu den eigenen Modellen.


    wie kann man das wieder richtig machen

    Ganz einfach!
    Speicher die Anlage nach dem Laden sofort wieder unter einem neuen Namen ab. (Du brauchst nur aus der 01 im Namen eine 02 machen.)
    Anschließend diese neue Version laden und alles sollte an seinem Platz stehen.

  • @Norbert.


    speicher die Anlage ab und lade sie wieder neu - dann sollte das behoben sein.


    Gruß
    Volker.

    Freundliche EEP-Grüsse,

    Volker. :aq_1:

  • @Götz, volker ,


    danke für die schnelle Antwort, beim ersten mal hat es nicht geklappt, mußte erst EEP schließen und wieder neu starten, dann war die zweite Anlage OK.


    Gruß


    Norbert

    PC: Intel(R) Core(TM) i3 CPU 530 @ 2.93GHz; NVidia GeForce GTX 460 mit 1024 MB GDDR5 RAM; 16 GB DDR3 RAM; 1 x 500 GB HDD mit WIN 10 Pro 64 2004; 1 x 1 TB für allg. Daten; 1 x 2 TB für EEP, EEP6.1 wg. Modellkonverter; MK, TM, ME, Tools von NR1, EEP15.1 mit Plugin 1, EEP16 mit allen Patches in Rente.

  • Hallo Goetz,


    ich sehe Deine Sendungen immer mit großen Interesse. Deine letzte Sendung (Lua Teil 5) habe ich nachgebaut und alles hat gut funktioniert. Die Art und Weise des Programmaufbaus ist für mich besonders interessant. Du machst es klar und verständlich. Nun bin ich auf die Idee gekommen, diese Anlage zweigleisig aufzubauen. Da wird einiges durch den Gegenverkehr im Kreuzungsbereich wesentlich komplizierter. Vielleicht kannst Du in der nächsten Sendung darauf mal kurz eingehen.


    Danke im voraus


    Gruß Eberhard :)

    Win 10 Pro 64 bit

    AMD FX-6300 Six Core

    16 GB RAM

    SSD 250 GB Samsung 750 EVO

    NVIDIA GTX 1050 2 GB

    alle Versionen einschließlich EEP 16.4

  • Hallo Eberhard,


    "wesentlich komplizierter" und "darauf mal kurz eingehen" schließen sich logisch gegenseitig aus. ;)


    Aber es ist gar nicht komplizierter. Nur die Einrichtung der Fahrstraßen selber ist mit mehr Aufwand verbunden. Aktivieren kannst du sie dann mit der selben Methode, die du in der letzten Sendung gelernt hast.

  • "wesentlich komplizierter" und "darauf mal kurz eingehen" schließen sich logisch gegenseitig aus.

    Genau !! :bp_1:


    Nun bin ich auf die Idee gekommen, diese Anlage zweigleisig aufzubauen. Da wird einiges durch den Gegenverkehr im Kreuzungsbereich wesentlich komplizierter.

    Das muss nicht sein. Ich habe nach laaaaanger Überlegung endlich die ultimative Lösung für das von Götz dargestellte Problem gefunden. :bn_1:


    Beachtet bitte folgendes Bild ...
    [Blocked Image: http://up.picr.de/26802082ic.jpg]
    Ok. Man sieht es hier nicht so deutlich.


    Dann halt ein Detailbild...
    [Blocked Image: http://up.picr.de/26802070fy.jpg]
    Wenn Du Dir jetzt diese beiden Ovale genauer betrachtest, merkst Du, dass auch der Ausbau jedes Ovals auf "Zweigleisig" nicht sooo ein grosses Problem darstellt ...


    Dank diesem ultimativen Umbau kann auch das Lua-Script etwas vereinfacht werden.
    [Blocked Image: http://up.picr.de/26802096re.jpg]


    Ach ja. Vermutlich ist der Rückgabewert der Main-Funktion nicht irgendein numerischer Wert, sondern ein Wert vom Typ Integer. Da wird also nix gerundet, sondern die Nachkommastellen ignoriert bzw abgeschnitten.


    :aq_1: Gruss Jürg

    Aller Laster Anfang ist die Stossstange :bn_1: (alte Volkswaise aus den 1960er Jahren)

    _____________________________________________________________________________________

  • Hallo,


    hier kommt mal ein Bild von meiner Testanlage:



    Ich denke mal, bei mir werden die Fahrstraßen schon geschaltet, bevor der Zug sie überhaupt erreicht hat. Also ist die kreuzende Fahrstraße noch gar nicht besetzt.


    Gruß Eberhard

    Win 10 Pro 64 bit

    AMD FX-6300 Six Core

    16 GB RAM

    SSD 250 GB Samsung 750 EVO

    NVIDIA GTX 1050 2 GB

    alle Versionen einschließlich EEP 16.4

  • Hallo Eberhard,
    Erstens ist deine Anlage im Grunde genommen identisch mit der großen Kreuzung, die ich in den Sendungen zu den Schaltkringeln verwendet und mit Fahrstraßen ausgestattet hatte. Dort kannst du also lernen, wie die Fahrstraßen eingerichtet werden müssen. Die Anforderung und Freischaltung der Fahrstraßen kann dann nach dem selben Prinzip erfolgen wie in meiner letzten Sendung.


    Zweitens steht das Zielsignal ganz vorne in deinem Bild sehr ungünstig. Das musst du bis zum folgenden Blocksignal weiter schieben.

  • Guten Morgen zusammen.


    Ich habe die Sendung von Götz noch nicht gesehen, aber in dem Fall von Eberhard würde ich mit "Merkern" arbeiten.
    Es gibt 4 Einfahrmöglichkeiten in den "Kreuzungsbereich". Ich setze vor jedem Vorsignal, dessen Hauptsignal die Kreuzung deckt, einen Kontaktpunkt. Jeder Kontaktpunkt ruft eine eigene Funktion auf, die sich die Aktivierung merkt. Über die EEPMain rufe ich periodisch eine funktion auf die alle Merker abfragt. Ist ein Merker gesetzt wird eine neue Funktion aufgerufen, die die Fahrstrasse stellt, überprüft und das Signal auf Fahrt stellt.
    Das Auflösen kann dann entweder darüber erfolgen das durch Zugende ein KP ausgelöst wird oder das Fahrstrassensignal eine entsprechende Rückmeldung gibt. Dadurch wird der Merker wieder auf 0 gesetzt.


    Mit dieser Lösung können 4 Züge ankommen und werden nacheinander abgearbeitet. Zudem ist eine Art Priorisierung möglich, welcher Ast Vorrang hat.
    Wichtig ist natürlich das die Fahrstraßen akkurat erzeugt werden.


    Ich liefere gerne einen Codeschnipsel heute nachmittag / abend.

    Grüße aus dem Badischen :bg_1:
    Peter


    EEEC 2.43 (Ehrenplatz im Schrank), EEP5 (Platz im Schrank), EEP 6 voll ausgebaut, EEP12.1 expert, EEP 16.4 + PlugIns
    Windows 10 64bit, Intel Core i7-4790K, 32 GB RAM, 1 TB SSD, Nvidia GeForce 970 GTX

  • Hallo slarty,


    wofür braucht es denn noch Merker? Das ist bei Benutzung von Lua nicht mehr nötig. Das gilt genau genommen auch für das "Anmelden", von dem so häufig die Rede ist.
    Dieses Denken rührt wahrscheinlich noch aus der Schaltkringel-Zeit, wo eine Anmeldung i.d.R. durch eine Weichenstellung gesetzt wurde.


    Weil seit Lua aber kein Schaltauto mehr kreist, das seine Zeit vom Zeitpunkt der vom Zug gesetzten Anmeldung bis zum Erreichen der Anmeldeweiche im Schaltkreis benötigt, kann jetzt sofort angefordert(!) werden. Das Merken/Speichern kann man hier komplett weglassen, womit auch das jeweilige Zurücksetzen entfiele:


    Die Anforderung prüft sofort alle Bedingungen und wenn diese erfüllt sind, geht (neben allem Nötigen) das Signal auf Fahrt und das war's.
    Und aus meiner Sicht so ziemlich das Wichtigste: Dadurch braucht auch die Main nicht belastet werden, sofern es nicht ausdrücklich um reine Test- bzw. Lernszenarios geht! Man stelle sich mal eine größere Anlage vor und wie viele potenzielle Kreuzungs-, Berührungsstellen es abzusichern gilt und manch einer lässt auch noch seine einfache Blockschaltung fünf Mal pro Sekunde abfragen - irgendwann kommt auch beim superschnellen Lua die Ressourcengrenze in Sicht! (Nebenbei: Ich frage mich immer wieder, weshalb man nicht von vornherein auf mindestens 10/sec gegangen ist...)


    Nur wenn mind. eine Bedingung nicht erfüllt ist, erst dann muss man etwas speichern. Ich arbeite zwar mit meinem eigenen FS-System (ich setze in dem Fall für diese FS ein Warte-Flag), bin mir aber ziemlich sicher, dass dieser allgemeine Ansatz systemunabhängig Gültigkeit besitzt.
    In der Mehrzahl der Fälle wird die jeweilige Anforderung zur Fahrtdurchführung/Aktion führen und daher keinen weiteren Speicher-, Lese- u. Reset-Vorgang benötigen, was in der Summe einiges einspart.


    Wie schon gesagt, das weitaus größere Übel ist die unnötige, permanente Abfragerei innerhalb der Main. So wie wir uns beim Aufstehen, Zähnputzen, Kaffetrinken auch nicht ständig fragen, ob die Ampel grün ist, über die wir nachher gehen müssen, brauchen wir hier genausowenig alle 0,2 s fragen, ob etwas wartet, ob etwas fahren kann. Stattdessen sollten die Ereignisse überwacht werden, die die Bedingungen beeinflussen (wenn der letzte Waggon das Zielgleis, den kritischen Kreuzungsbereich, den vorausliegenden Block... verlassen hat oder andere Bedingungen eingetreten sind, wie 'Gegenzug eingetroffen' z.B.).
    Nur dann (wenn sich Bedingungen geändert haben können) macht es doch Sinn, die Fahrstrasse erneut anzufordern, wodurch erneut, aber einmalig(!) alle Bedingungen geprüft werden. Daraufhin gibt es entweder Aktion (+ Warteflag-Reset und das war's) oder eine weitere Warteperiode bis zum nächsten relevanten Ereignis und neue Anforderung.


    Übrigens: Bei dem abgebildeten zweigleisigen Abzweig zähle ich nur drei (zeitgleich) mögliche ankommende/wartende Züge. Allerdings gibt es vier mögliche Fahrwege.


    Alles in allem eine spannende Sache - wie gut, dass es EEP gibt :-))


    Viele Grüße
    Thomas

    - - - - -
    MidiTower (i7 9700KF 3,6×3,6GHz, 16GB RAM, 4GB GeForce RTX2070 super, WIN 10)
    DELL-Notebook (Intel Core i7 3520M Quad Core, 2,9GHz, 8GB RAM, NVIDIA Quadro K1500M, WIN 10 Home;
    EEP von 4 bis 17.1

    »Nach diesem Jahrhundert der großen Sprüche und schlimmen Illusionen hoffe ich auf eine Zeit, in der die großen Sprüche nichts mehr gelten, sondern nur noch das, was man wirklich und greifbar getan hat.«

    Gerhard Richter, 1999

  • Die Anforderung prüft sofort alle Bedingungen und wenn diese erfüllt sind, geht (neben allem Nötigen) das Signal auf Fahrt und das war's.

    und wenn die Anforderung abgelehnt wurde weil die Bedingungen nicht erfüllt waren, dann lässt du den Zug an der Einmündung verhungern?

  • Lieber Götz,


    bist Du nicht derjenige, der uns bei Bedarf immer so nett darauf hinweist, den kompletten Beitrag zu lesen?


    Gruß Thomas

    - - - - -
    MidiTower (i7 9700KF 3,6×3,6GHz, 16GB RAM, 4GB GeForce RTX2070 super, WIN 10)
    DELL-Notebook (Intel Core i7 3520M Quad Core, 2,9GHz, 8GB RAM, NVIDIA Quadro K1500M, WIN 10 Home;
    EEP von 4 bis 17.1

    »Nach diesem Jahrhundert der großen Sprüche und schlimmen Illusionen hoffe ich auf eine Zeit, in der die großen Sprüche nichts mehr gelten, sondern nur noch das, was man wirklich und greifbar getan hat.«

    Gerhard Richter, 1999