Bügelwechsel (Stromabnehmerwechsel)

!!! 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.
  • Ich habe ein kleines Lua-Script geschrieben, dass universell die Stromabnehmer (oder auch Bügel genannt) bei E-Loks wechselt.
    Es ist nicht perfekt, weil die Bügel gleichzeitig animiert werden, aber es ist dafür für fast alle Loks anwendbar. Eine einzige Funktion genügt.



    Ich habe auch ein kleines Demo-Video dazu gemacht:
    https://youtu.be/Sf2L-PXfzX4

  • Der Name des Zuges (mit #) muss gleich sein mit dem Name der Lok (ohne #)


    I would change line 10 like this :


    if string.sub (name,1,1) == "#" then name = string.sub (name,2) end


    Makes it a little more "idiot-proof", case someone didn't add the #


    :smile_1: EepNolie

    Desktop : Windows 10 Pro 64Bit - i7-4790 4.0Ghz - 32Gb RAM - Asus Geforce GTX-06G 1060 (6Gb) - Dual screen Asus VS247 24"
    Laptop : Windows 10 Home 64Bit - i7-4750HQ 3.2Ghz - 16Gb RAM - NVidia GTX960M


    Ich bin dabei seit EEP 6 und benutze jetzt EEP 14


    Free EEP-tools : Model Multiplier / Texture Multiplier / Registry Tool


    Website : eepnolie.be

  • Yes, greatly!
    Thank you!

    Ich habe ein kleines Lua-Script geschrieben, dass universell die Stromabnehmer (oder auch Bügel genannt) bei E-Loks wechselt.
    Es ist nicht perfekt, weil die Bügel gleichzeitig animiert werden, aber es ist dafür für fast alle Loks anwendbar. Eine einzige Funktion genügt.



    Ich habe auch ein kleines Demo-Video dazu gemacht:
    https://youtu.be/Sf2L-PXfzX4

  • Hi,


    I suppose you use one Fahrzeug-KP for the call to this function ? Maybe you could extend your code by adding a variable that stores the current angle. Add a second KP with a delay of 5 seconds or so and recall the function with the variable as an extra parameter (last current angle).


    If you want, I'll (try to) adapt it, just send me the anlage of your video by PM.


    Kind greetings,


    EePNolie

    Desktop : Windows 10 Pro 64Bit - i7-4790 4.0Ghz - 32Gb RAM - Asus Geforce GTX-06G 1060 (6Gb) - Dual screen Asus VS247 24"
    Laptop : Windows 10 Home 64Bit - i7-4750HQ 3.2Ghz - 16Gb RAM - NVidia GTX960M


    Ich bin dabei seit EEP 6 und benutze jetzt EEP 14


    Free EEP-tools : Model Multiplier / Texture Multiplier / Registry Tool


    Website : eepnolie.be

  • Hier verlassen mich meine Englischkenntnisse und antworte auf Deutsch:


    Ich wollte mit dieser Funktion bezwecken, dass es recht einfach geht und nur mit einen KP. Wenn ich wieder zwei KPs nehme, kann ich ja auch gleich Fahrzeugs-KP benutzen, die den selben Effekt haben. Mit der Funktion soll das vereinfacht werden. Wenn man es nicht mag, dass die Bügel gleichzeitig bewegen, muss man entweder 2 KPs nehmen oder (als Vorschlag) nur im Schattenbahnhof verwenden, wenn der Zug wenden soll.

  • In dieser Hinsicht sind Sie richtig.


    Mfg,


    EepNolie

    Desktop : Windows 10 Pro 64Bit - i7-4790 4.0Ghz - 32Gb RAM - Asus Geforce GTX-06G 1060 (6Gb) - Dual screen Asus VS247 24"
    Laptop : Windows 10 Home 64Bit - i7-4750HQ 3.2Ghz - 16Gb RAM - NVidia GTX960M


    Ich bin dabei seit EEP 6 und benutze jetzt EEP 14


    Free EEP-tools : Model Multiplier / Texture Multiplier / Registry Tool


    Website : eepnolie.be

  • Hi,


    I also use this kind of function for switching the pantos' but you can use directly the name of the loco, for example "DB 140" so you are independent of the train.


    The best solution may be a function like "EEPRegisterRollingStock" ..., so can use the EEP event system. I wish I could switch the pantos' when changing the direction of the loco.


    Greetings
    Frank

  • Hi,


    using the Lua-EEP polling could be another option, but the shortcome is the five-times-a-second check of the EEPGetRollingStockSpeed(?). Checking for negative speed(?) could be used for switching the pantos' because the loco direction is changing.
    Just thinking because I'm at work now, no EEP around :(


    Greetings
    Frank

  • Also wenn ich das richtig verstanden habe, sollen die Bügel abhängig von der (positiv/negativen) Geschwindigkeit abhängen.
    Könnte man machen, allerdings wäre das noch unrealistischer als meine Variante, weil die Bügel dann während der Fahrt gewechselt werden.

  • Hallo Hokau,


    ja - so war das gemeint, ist auch nicht wirklich die Lösung. Im Moment ist das bei mir auf einen Schalter gesetzt, pro E-Lok. Jeder Schalterdruck schaltet die Bügelstellung um. Man könnte in das Lua-Script ja noch ein Sleep() von 5 sec. o.ä. einsetzen, dann wechseln die Bügel etwas zeitversetzt.


    VG
    Frank

  • Vorsicht!
    Da Lua nicht alleine läuft, sondern parallel zu EEP und mit regelmäßigem Datenaustausch zwischen beiden, sollte man sleep, wait und dergleichen vermeiden. Sonst passiert es schnell, dass nicht nur Lua, sonden auch EEP für diese Dauer schläft.


    Außerdem könnte in diesen 5 Sekunden an anderer Stelle sehr viel passieren, dass Lua eigentlich abhandeln soll. Das wird Lua nicht tun, wenn es schläft.


    Deshalb gibt es diese EEPMain Funktion. Sie liefert einen Takt, an den man Aufgaben binden kann, die erst nach einer Weile erledigt werden sollen.

    Hanlon's Razor:

    "Never attribute to malice that which is adequately explained by stupidity."

  • Hallo Götz,


    du hast recht mit Sleep() der EEPMain()-Routine, ich meinte das Sleep() innerhalb der Funktion die vom Schalter(Signal) aufgerufen wird, zwischen Heben des einen Bügels und Senken des anderen.


    Viele Grüße
    Frank

  • As far as I know there is no standard sleep function in Lua.


    EepNolie

    Desktop : Windows 10 Pro 64Bit - i7-4790 4.0Ghz - 32Gb RAM - Asus Geforce GTX-06G 1060 (6Gb) - Dual screen Asus VS247 24"
    Laptop : Windows 10 Home 64Bit - i7-4750HQ 3.2Ghz - 16Gb RAM - NVidia GTX960M


    Ich bin dabei seit EEP 6 und benutze jetzt EEP 14


    Free EEP-tools : Model Multiplier / Texture Multiplier / Registry Tool


    Website : eepnolie.be

  • Yes, greatly!
    Thank you!

    Hallo,
    danke für die schnelle Antwort. Hat mit geholfen.


    Ich wohne in Wolfsburg und habe am gleichen Tag Geburgtstag. Kann ich mal nach Braunschweig bei dir vorbei kommen?


    Gruß
    icke7439 aus Wolfsburg-Vorsfelde :)

    Mod-Edit: Bitte nicht den kompletten Code mitzitieren. Gruß Michael

  • Für Freunde des hintereinander folgenden Bügelwechsels (Ergänzung zu Hokaus Code) :


    Intel i3-540 3,2GHz 8GB, RAID10, HD 6570 1GB, W7/64 Prof., EEP 6-6.1, 10-14, HN13, MK, TM, "Schiefe Ebene 6 + 8", "Bahn2000"

  • Bügelwechsel in "echt" :


    stehender :
    https://www.youtube.com/watch?v=NWJcWlZhazQ



    allerdings wäre das noch unrealistischer als meine Variante, weil die Bügel dann während der Fahrt gewechselt werden.


    gibt's aber, "fliegender" Bügelwechsel (beim Systemwechsel) :
    https://www.youtube.com/watch?v=IZn8zd2rtr4

    Intel i3-540 3,2GHz 8GB, RAID10, HD 6570 1GB, W7/64 Prof., EEP 6-6.1, 10-14, HN13, MK, TM, "Schiefe Ebene 6 + 8", "Bahn2000"

  • Hallo,
    danke für die schnelle Antwort. Hat mit geholfen.

    Schön das es geholfen hat. Aber schnelle Antwort? Es war weder eine Antwort, noch schnell. ;-)
    Es war ein Beitrag aus Eigeninitiative vom 9.Mai 2015, also vor fast 1 1/2 Jahren.

  • So was ist immer aktuell!
    Hallo Ihr Bügelwechsler,


    ohne es ausprobiert zu haben, würde ich sagen, dass der Ansatz von eep_gogo der richtige ist.
    Hier geht es nicht anders, als den Zeitversatz über die Main zu steuern (allzuoft wird die Main ja unnütz mit Daueranfragen belastet).


    Um es aus meiner Sicht vollständig(er) zu machen, fehlen noch zwei Dinge:
    1) die nötigen Daten dauerhaft (über den Zeitversatz) in Slots zu speichern,
    2) während des Ablaufes des gesamten Prozesses einen od. mehrere zusätzliche Prozesse der selben Art zu behandeln:
    a) »parallel« abwickeln oder
    b) speichern und nach Abschluss des aktuellen Prozesses abwickeln oder
    c) unbedingt verhindern.


    2c sollte mindestens gewährleistet werden, da es sonst ganz schnell Probleme gibt, wie man sich unschwer vorstellen kann.
    Für Testläufe, Vorführeffekte o.ä. ist insbesondere der Rest nicht nötig, aber auf Anlagen mit - ich sage mal - »Mehrzugbetrieb« unerlässlich.


    Ich habe das absichtlich so allgemein gehalten, weil das in der Regel für alle Prozesse, die im Gesamtablauf »Pausen« brauchen, gilt.
    Ich hatte das zuletzt intensiv bei der Automatisierung einer Drehscheibe. Deren Abläufe brauchen auch »Pausen«, die Stoppuhr(en) laufen in der Main
    und es gibt Abhängigkeiten bezüglich der Fahrtrichtung...


    Viele Grüße
    Thomas

    - - - - - - - - - - - -
    MidiTower (i7 4790K 4×4GHz, 16GB RAM, AsusZ97, 4GB Zotac-GeForce GTX970 AMP! Omega, WIN 8.1prof)
    DELL-Notebook (Intel Core i7 3520M Quad Core, 2,9GHz, 8GB RAM, NVIDIA Quadro K1500M, WIN 10 Home Premium 64bit;
    EEP von 4 bis 14.1+PlugIn1, KE8, HE, HNos8, Modell-Expl. u. -Katalog, einige Anlagen

  • Ich hatte auch nur auf "Gestern, 15:54 Uhr" geschaut !
    Trotzdem aktuell ?


    Mein Beitrag bezog sich auf icke7439, weswegen ich auch ihn zitiert habe.


    Mein Skript, welches ich voriges Jahr schrieb, wurde von mir absichtlich einfach gehalten. Denn nicht zwingend ist alles mit Lua besser oder einfacher. Bevor ich ein Skript mit `zig Zeilen geschrieben habe, habe ich 2 KP gesetzt, die ohne Probleme mit Zugnamen, Mehrzugbetrieb, speichern der Aktion oder Zeitverzögerungen haben.


    Manchmal muss man sich fragen, ob das in Lua wirklich Sinn macht und der Nutzen größer als der Aufwand ist. Genau das habe ich mit meinem Skript bezwecken wollen. Ein KP - fertig. Wenn man jetzt mehr haben will, als mein Skript leistet, ist der Aufwand in Lua größer, als einen 2. KP zu setzen.