Lua Geschwindigkeitsunterschied zu EEP

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.
  • Hi liebe Gemeinde,

    in etlichen threads kommt immer wieder zur Sprache, dass EEP teils Probleme mit Lua hat, weil Lua in EEP "nur" fünfmal pro Sekunde abarbeitet.

    Ist denn diese Taktung in Stein gemeißelt?

    Spricht etwas dagegen, diese Taktung zu verdoppeln oder vervierfachen?

    Allein dadurch müssten sich doch etliche Probleme lösen lassen, weil EEP und Lua "synchroner" arbeiten würden, so meine Vorstellung.

    Heutige Rechnerkapazitäten im Privatbereich sollten das doch stemmen können.

    Oder gibt es andere Gründe, bei dieser vergleichsweise langsamen Taktung zu bleiben?

    Hab' darüber bisher nichts gefunden...

    Gruß Heiner

    System: Win 10 pro (64 bit)

    CPU: i5-9600K

    Mainboard: Asus Prime Z390-A

    RAM: G.Skill DDR4-3200 64GB

    SSD: Samsung SSD 980 Pro 1TB

    Grafikkarte: EVGA NVIDIA RTX 3070

    Monitore: Dell U3014 und Asus PB 277

    Soundsystem: EMU 1616m

    Boxen: Teufel Motiv 2 Mk2 "2.1-Set"

    EEP 14.1, Plugin 1 bis EEP 17.1 + Plugin(s)

  • Hallo Heiner,

    Lua ist in EEP erst relativ spät integriert worden. Allein das spricht dagegen, Lua synchron im Spielverlauf einzusetzen. Aber selbst wenn Lua von Anfang an dabei gewesen wäre, wird es nie wirklich synchron im Spiel laufen. Jede Simulation hat so etwas wie eine Haupt-Schleife, die immer wieder durchlaufen wird. Darin werden die Veränderungen der Blickrichtung und der Umgebung abgearbeitet und auf das nächste auszuliefernde Bild angewendet. Dazu gehört alles, vom Wiegen der Bäume im Wind über animierte Wasseroberflächen, andere Animationen, fahrende Züge und Autos, Auslösen von Kontaktpunkten, Prüfen oder Vermeiden von Zusammenstößen und und und. In dieser Schleife wirst Du nie an jeder beliebigen Stelle mit Lua dazwischen funken dürfen.

    Also bleibt Lua in gewisser Weise asynchron zum Spielverlauf. Und dann spielt es meines Erachtens keine Rolle mehr, ob Lua nun 5- oder 500-mal pro Sekunde aktiv wird. Die einzige Einschränkung dieser Aussage, die ich gelten lassen würde, wäre, dass man für den Eindruck von Bewegungen, die man durch Platzierungen in Lua darstellen wollte, etwa 25mal in der Sekunde "zuschlagen" können müsste.

    Damit wir aber keine Scheinargumente austauschen, wäre es hilfreich, wenn Du die Probleme konkret benennen könntest, die durch eine höhere Taktung gelöst würden.

    Gruß

    Christopher

    PC: Intel i7-7700K; 64bit; 4,2 GHz; 32GB RAM; GeForce GTX 1080 (8 GB); Win 10, 22H2; EEP 6, 15 (Dev), 17.2 Plugins 1+2 (Dev); HomeNOS 17 (Dev)
    Laptop: Intel i7-12700H; 64bit; 2,7 GHz; 16GB RAM; GeForce RTX3070Ti (8 GB); Win 11, 23H2; EEP 6, 17 Plugins 1+2; HomeNOS 17 (User)

    Einmal editiert, zuletzt von cetz (16. März 2023 um 17:32) aus folgendem Grund: Vergessenen Buchstaben eingefügt

  • Es gibt zur Zeit kein diesbezügliches Problem bei mir.

    Die Überlegung kam mir, nachdem ich in mehreren threads darüber las, dass sich EEP quasi an Lua verschluckt, weil von Kontaktauslösung bis zur dadurch beabsichtigten Schaltung bis zu 400 ms vergehen können.

    Und dieser Wert dachte ich, könne durch eine höhere Taktung verkürzt werden und so EEP den zeitweiligen "Lua-Schluckauf" minimieren.

    Insbesondere, da durch diesen "Schluckauf" anscheinend schon Probleme aufgetaucht sind, die Fehler produzieren, aber eben nicht immer die selben Fehler an der selben Stelle, sondern eher zeitabhängig, je nach Zeitpunkt des "Verschluckens".

    Ich beziehe mich ausschließlich auf die Lektüre einiger Seiten threads, in denen das Thema immer wieder mal hochkam.

    Gruß Heiner

    System: Win 10 pro (64 bit)

    CPU: i5-9600K

    Mainboard: Asus Prime Z390-A

    RAM: G.Skill DDR4-3200 64GB

    SSD: Samsung SSD 980 Pro 1TB

    Grafikkarte: EVGA NVIDIA RTX 3070

    Monitore: Dell U3014 und Asus PB 277

    Soundsystem: EMU 1616m

    Boxen: Teufel Motiv 2 Mk2 "2.1-Set"

    EEP 14.1, Plugin 1 bis EEP 17.1 + Plugin(s)

  • Hallo Heiner Hein von Frohnau ,

    die meisten "Verschlucker" treten auf, weil EEP und Lua zwei asynchrone Programme sind. Einige Lua-Anwender vergessen das und wundern sich, dass ein Lua-Befehl in Lua nicht sofort ein abrufbares Ergebnis liefert.

    Lua muss immer erst seine Daten an EEP übergeben, EEP muss darauf reagieren und seine Daten wieder zurück übergeben. Die Übergabe erfolgt immer nur einmal innerhalb der main-Schleife, also im günstigsten Fall alle 200 Millisekunden.

    Dabei kann schon mal im ungünstigsten Fall ein main-Schleifendurchlauf in Lua übersprungen werden, daher rührt die Angabe 400 Millisekunden.

    Die 5 mal pro Sekunde sind ein Kompromiss zwischen schneller Kommunikation Lua <-> EEP und der Notwendigkeit, möglichst alle anstehenden Befehle in einem Durchlauf in Lua abzuarbeiten. Verkürzt man diese Zeit kann es vorkommen, dass nicht alle Aufrufe in Lua abgearbeitet wurden und dadurch "Verschlucker" in der Zusammenarbeit auftreten. Deshalb ist es beispielsweise angebracht, zeitintensive aber nicht zeitkritische Funktionen in Lua nicht bei jedem main-Schleifendurchlauf aufzurufen.

    Gruß Holger

    Spoiler anzeigen

    Mein Hauptrechner Marke Eigenbau:

    Hardware: Mainboard ASUS Crosshair Hero VI, CPU-Typ AMD Ryzen 9 5950X 16-Core Processor, Speicher 64 GB DDR4-RAM, Grafikkarte ASUS DUAL Geforce RTX 12GB GDDR6-RAM, 2 SSD, 4 Festplatten Gesamtkapazität 30 TB

    Betriebssystem: Windows 11 Pro Version 22H2

    EEP-Software: EEP 6, EEP 14 bis EEP 17.2 Plugin 1, 2, Modellkatalog, Hugo, Höhengenerator, Tauschmanager

    Mein Youtube-Kanal

    Hier erhaltet ihr die aktuelle Demoversion Tauschmanager:af_1:

  • Wie gesagt sind meine Überlegungen nur aus der Lektüre etlicher threads entstanden.

    Wie und dass die Arbeitsweise zwischen EEP und Lua ist wie sie ist, ist mir bekannt.

    Wird ja in den threads auch immer wieder drauf eingegangen.

    Dennoch dachte ich, dass eine Taktänderung Abhilfe bei einigen der geschilderten Probleme bringen könnte.

    Von da aus freue ich mich dennoch, diese Diskussion angestoßen zu haben, auch wenn sie mir nur aufzeigt, weshalb meine Überlegungen NICHTS bringen würden.

    Obwohl ich denke, dass gerade bei hohen (Zug-) Geschwindigkeiten eine häufigere Kommunikation zwischen EEP und Lua so manches (Zeit-) Problem minimieren könnte.

    Gruß Heiner

    System: Win 10 pro (64 bit)

    CPU: i5-9600K

    Mainboard: Asus Prime Z390-A

    RAM: G.Skill DDR4-3200 64GB

    SSD: Samsung SSD 980 Pro 1TB

    Grafikkarte: EVGA NVIDIA RTX 3070

    Monitore: Dell U3014 und Asus PB 277

    Soundsystem: EMU 1616m

    Boxen: Teufel Motiv 2 Mk2 "2.1-Set"

    EEP 14.1, Plugin 1 bis EEP 17.1 + Plugin(s)

  • Obwohl ich denke, dass gerade bei hohen (Zug-) Geschwindigkeiten eine häufigere Kommunikation zwischen EEP und Lua so manches (Zeit-) Problem minimieren könnte.

    Hallo Heiner,

    ich denke, dass wird eher das Gegenteil bewirken.

    Gerade beim hohen Geschwindigkeiten ist EEP stark ausgelastet. Wie sehr EEP dabei zu tun hat siht man an den manchmal einbrechenden Frameraten. Alle 0.2 Sekunden sagt jetzt Lua "pausiere mal Deine Artbeit, ich möchte mit Dir Daten austauschen". EEP muss seine aktuellen Arbeiten kurz pausieren, zwischenspeichern um Daten mit Lua auszutauschen, dann seine Daten wieder abrufen und weiter normal arbeiten.

    Wenn die Abstände dieser Lua-Zwischenrufe noch weiter verkürzt werden hat EEP immer weniger Zeit und damit sinkt die Framerate und unter einer bestimmten Framerate kam es in der Vergangenheit immer wieder zum Überspringen von Kontakten. Dieser 0,2 oder 0,4 Sekunden Verlust bei der Zusammenarbeit zwischen EEP und Lua stellt in den seltensten Fällen ein Problem dar, wenn sich der Lua-Nutzer (Programmierer) dieses Zusammenspiels zwischen EEP und Lua bewusst ist.

    Er sollte also zum Beispiel wissen, dass er in einem main-Durchlauf nicht ein Signal stellen und danach im gleichen Durchlauf die neue Stellung abfragen kann.

    Gruß Holger

    Spoiler anzeigen

    Mein Hauptrechner Marke Eigenbau:

    Hardware: Mainboard ASUS Crosshair Hero VI, CPU-Typ AMD Ryzen 9 5950X 16-Core Processor, Speicher 64 GB DDR4-RAM, Grafikkarte ASUS DUAL Geforce RTX 12GB GDDR6-RAM, 2 SSD, 4 Festplatten Gesamtkapazität 30 TB

    Betriebssystem: Windows 11 Pro Version 22H2

    EEP-Software: EEP 6, EEP 14 bis EEP 17.2 Plugin 1, 2, Modellkatalog, Hugo, Höhengenerator, Tauschmanager

    Mein Youtube-Kanal

    Hier erhaltet ihr die aktuelle Demoversion Tauschmanager:af_1:

  • Hallo,

    wenn man diese Lua-Zykluszeiten kennt, muss man sie bei der Programmierung entsprechend berücksichtigen.

    Kenne ich schon aus den 80ern seit dem Umgang mit den ersten SPS-Steuerungen.

    200ms von EEP ist zwar min 10 mal langsamer als damalige SPS aber aufgrund der wichtigeren Echtzeit-Visualisierung/Berechung nicht schlimm, wenn man sich dessen bewusst ist.

    Habe bei meine Anlagen selbst mit grossen Lua-Programmen bisher keine Probleme. Bisher befanden sich die Fehler immer vor dem Bildschirm:ao_1:

    https://de.wikipedia.org/wiki/Speicherp…rbare_Steuerung

    Für Interessierte

    EEP17.3 + PL1, PL2, Modellkatalog, ME, ZE, Konverter, HomeNos 15, 16,17

    Rechner: i7-9700K 32GB, RTX2080 8GB, Win10 Pro, Bildschirme: 2 x 4K, Notebook: MSI GS65 8SG-058 Stealth Gaming 15,6" W10Pro

    Mein YouTube-Kanal: https://www.youtube.com/channel/UCsn4pZ1Wmk7jecMZ1uYLTQQ

    Gruß

    Maik

  • Hey Maik !

    Das Like musste sein.

    Ich finde das der Satz :Bisher befand sich der Fehler immer vor dem Bildschirm ,

    in den meisten Fällen stimmt!

    VLG Angelika:bn_1::bm_1:

    Intel Core i7-8700, 6x 3,2 GHz (bis 4,6 GHz, 12 MB Cache)

    ASUS GeForce GTX 1050 Ti, 4 GB GDDR5, DVI, HDMI, DP

    Festplatten: 250 GB SSD Crucial MX500, 1 TB HDD

    8 GB DDR4-RAM, 2666 MHz, Crucial, Windows 10 Home

    Inkl. Maus, Tastatur, WLAN 300 MBit/s, USB 3.1

    EEP12 /EEP14 Plugin 2

  • Hallo Heiner,

    ich denke, dass wird eher das Gegenteil bewirken.

    Gerade beim hohen Geschwindigkeiten ist EEP stark ausgelastet. Wie sehr EEP dabei zu tun hat siht man an den manchmal einbrechenden Frameraten. Alle 0.2 Sekunden sagt jetzt Lua "pausiere mal Deine Artbeit, ich möchte mit Dir Daten austauschen". EEP muss seine aktuellen Arbeiten kurz pausieren, zwischenspeichern um Daten mit Lua auszutauschen, dann seine Daten wieder abrufen und weiter normal arbeiten.

    Hallo Holger,

    ist das tatsächlich der Ablauf, dass EEP pausieren muss um die Daten mit Lua auszutauschen?

    Ich wäre davon ausgegangen, dass Hyperthreading, was ja jeder halbwegs moderne Rechner beherrscht, keine Pausierung an der Stelle nötig sein lässt.

    Des Weiteren sprichst Du etwas später von Problemen bei geringen Framerates.

    Die würde ich aber eher durch die verbaute Grafikarte verursacht sehen, da die Mindestsystemvoraussetzungen für EEP ja eigentlich relativ lachhaft für moderne PC sind.

    Meine Idee war, die eigentliche Berechnung (und damit Steuerung) in Lua rein außerhalb von EEP-Lua über "require"-Aufrufe zu gestalten und ausschließlich die Kontaktdaten in Richtung "externes" Lua zu übergeben und von dort dann ausschließlich die Steuersignale retournieren zu lassen.

    Leider weiß ich nicht, mir welcher Geschwindigkeit das "externe" Lua läuft;

    aber sicher mit mehr als 5Hz (wie das EEP-Lua).

    Gruß Heiner

    System: Win 10 pro (64 bit)

    CPU: i5-9600K

    Mainboard: Asus Prime Z390-A

    RAM: G.Skill DDR4-3200 64GB

    SSD: Samsung SSD 980 Pro 1TB

    Grafikkarte: EVGA NVIDIA RTX 3070

    Monitore: Dell U3014 und Asus PB 277

    Soundsystem: EMU 1616m

    Boxen: Teufel Motiv 2 Mk2 "2.1-Set"

    EEP 14.1, Plugin 1 bis EEP 17.1 + Plugin(s)

  • dass Hyperthreading, was ja jeder halbwegs moderne Rechner beherrscht, keine Pausierung an der Stelle nötig sein lässt.

    Hallo Hein,

    dazu müsste EEP aber Hyperthreading unterstützen. EEP kann aber nur mit einem Core, deshalb ist für EEP nicht die Anzahl der Kerne sondern die Taktfrequenz entscheidend.

    Schau Dir doch mal bei laufendem EEP die Prozessorauslastung nach Cores an.

    Des Weiteren sprichst Du etwas später von Problemen bei geringen Framerates.

    Auch das lget zum größten Teil nicht an der Grafikkarte, sonst müsste EEP auf jedem halbwegs modernen Rechner laufen wie am Schnürchen.

    Nein EEP bereitet die gesamt Ausgabe in der CPU vor (ein Kern) und übergibt es dann an die Grafikkarte zur Ausgabe. Deshalb erreicht man mit Tricks und Einstellungen an der Grafikkarte nur unwesentliche Verbesserungen.

    Gruß Holger

    Spoiler anzeigen

    Mein Hauptrechner Marke Eigenbau:

    Hardware: Mainboard ASUS Crosshair Hero VI, CPU-Typ AMD Ryzen 9 5950X 16-Core Processor, Speicher 64 GB DDR4-RAM, Grafikkarte ASUS DUAL Geforce RTX 12GB GDDR6-RAM, 2 SSD, 4 Festplatten Gesamtkapazität 30 TB

    Betriebssystem: Windows 11 Pro Version 22H2

    EEP-Software: EEP 6, EEP 14 bis EEP 17.2 Plugin 1, 2, Modellkatalog, Hugo, Höhengenerator, Tauschmanager

    Mein Youtube-Kanal

    Hier erhaltet ihr die aktuelle Demoversion Tauschmanager:af_1:

    Einmal editiert, zuletzt von HStoni54 (20. März 2023 um 19:43)

  • Hallo Hein,

    dazu müsste EEP aber Hyperthreading unterstützen. EEP kann aber nur mit einem Core, deshalb ist für EEP nicht die Anzahl der Kerne sondern die Taktfrequenz entscheidend.

    Oh, da in den Systemvoraussetzungen mindestens ein Dual-Core-Prozessor gefordert ist, ging ich davon aus, dass Hyperthreading auch EEP inzwischen erreicht hätte.

    Na, vielleicht, nein hoffentlich, kommt das ja noch.

    Und was sagst Du zu dieser Überlegung?

    Meine Idee war, die eigentliche Berechnung (und damit Steuerung) in Lua rein außerhalb von EEP-Lua über "require"-Aufrufe zu gestalten und ausschließlich die Kontaktdaten in Richtung "externes" Lua zu übergeben und von dort dann ausschließlich die Steuersignale retournieren zu lassen.

    Wäre vermutlich sehr umfangreich;

    aber auch machbar?

    Gruß Heiner

    System: Win 10 pro (64 bit)

    CPU: i5-9600K

    Mainboard: Asus Prime Z390-A

    RAM: G.Skill DDR4-3200 64GB

    SSD: Samsung SSD 980 Pro 1TB

    Grafikkarte: EVGA NVIDIA RTX 3070

    Monitore: Dell U3014 und Asus PB 277

    Soundsystem: EMU 1616m

    Boxen: Teufel Motiv 2 Mk2 "2.1-Set"

    EEP 14.1, Plugin 1 bis EEP 17.1 + Plugin(s)

    Einmal editiert, zuletzt von Hein von Frohnau (20. März 2023 um 20:02)

  • Wäre vermutlich sehr umfangreich;

    aber auch machbar?

    Hallo Hein,

    da haben schon andere sich den Kopf zerbrochen und aufgegeben.

    Gruß Holger

    Spoiler anzeigen

    Mein Hauptrechner Marke Eigenbau:

    Hardware: Mainboard ASUS Crosshair Hero VI, CPU-Typ AMD Ryzen 9 5950X 16-Core Processor, Speicher 64 GB DDR4-RAM, Grafikkarte ASUS DUAL Geforce RTX 12GB GDDR6-RAM, 2 SSD, 4 Festplatten Gesamtkapazität 30 TB

    Betriebssystem: Windows 11 Pro Version 22H2

    EEP-Software: EEP 6, EEP 14 bis EEP 17.2 Plugin 1, 2, Modellkatalog, Hugo, Höhengenerator, Tauschmanager

    Mein Youtube-Kanal

    Hier erhaltet ihr die aktuelle Demoversion Tauschmanager:af_1:

  • Na ja, ich habe in absehbarer Zeit nichts Wichtiges zu tun. :af_1:

    Versuchen werde ich es wohl.

    Irgendwie muss ich mir ja die Zeit vertreiben.:an_1:

    Wenn's was wird, stelle ich mein Opus hier vor...

    ... und wenn ich aufgebe hülle ich mich in Schweigen...:ad_1::ba_1:

    Gruß Heiner

    System: Win 10 pro (64 bit)

    CPU: i5-9600K

    Mainboard: Asus Prime Z390-A

    RAM: G.Skill DDR4-3200 64GB

    SSD: Samsung SSD 980 Pro 1TB

    Grafikkarte: EVGA NVIDIA RTX 3070

    Monitore: Dell U3014 und Asus PB 277

    Soundsystem: EMU 1616m

    Boxen: Teufel Motiv 2 Mk2 "2.1-Set"

    EEP 14.1, Plugin 1 bis EEP 17.1 + Plugin(s)