Welchen Zugnamen muss ich bei weiteren Befehlen (z.B Fahrtrichtungsänderung...) verwenden?

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.
  • Wünsche allen Eisenbahnfans ein gesundes, erfolgreiches und glückliches 2019!

    Damit der Geist nicht völlig einrostet, habe ich mich wieder meiner Anlage gewidmet.

    Doch ich benötige wieder einmal Euren Rat.

    Im Handbuch steht, dass 'namen' automatisch in einen Befehl übernommen werden.

    z.B. bei - SetTrainSpeed(name, Geschw.)

    aber bei anderen Funktionen wie

    EEPSetTrainLooseCoupling("#Name", boolean, Pos.)

    oder bei

    EEPSetTrainCouplingRear("#Name", boolean)

    wird der kompl. Zugname als String gefordert

    z.B. "#DR 78-254_01;001".

    Dieser Name ändert sich dann beim An- oder Abkuupeln

    z.B. in "#DR 78-254_01;002"

    (In den Anlageninformationen habe ich 'Zugnamen beibehalten' aktiviert.

    Meine Fragen

    - Welchen Zugnamen muss ich bei weiteren Befehlrn (z.B Fahrtrichtungsänderung...)

    verwenden. (In Versuchen wurde hin und wieder der 1. oder auch der 2. Name akzeptiert , erkenne dabei aber kein System!)

    - Was geschieht, wenn ich einen zweiten Zug einsetzen möchte, der auch diese Prozeduren durchlaufen müsste (wieder zwei Zugnamen)?

    - Gibt es eine Syntax, die auch hier die Zugnahmen automatisch übernimmt, sowohl beim An- und Abkuppeln, wie dann auch bei den weiteren Befehlen, bis hin zur erneuten Ankupplung?

  • Im Handbuch steht, dass 'namen' automatisch in einen Befehl übernommen werden.

    Da hast du etwas missverstanden.

    Wenn ein Zug mittels Kontaktpunkt eine Funktion aufruft, dann wird dabei der Name dieses Zuges an Lua übergeben. Denn EEP weiß, wie der Zug heißt. Und in Lua möchte man das gerne wissen.

    Wenn du per Lua einen Befehl an einen Zug senden möchtest, dann musst du den Namen dieses Zuges wissen. Anders kannst du EEP nicht sagen, welchen der Züge du beeinflussen möchtest.

    Wenn der Zug per KP eine Funktion aufruft, dann kannst du den Namen dieses Zuges in Lua speichern um ihn im nächsten Schritt (oder auch später) wieder zu verwenden, wenn du diesem Zug etwas befehlen möchtest. Das kann aber nur solange funktionieren, wie sich der Name des Zuges nicht ändert.

    Das ist noch keine Antwort auf deine Frage!

    Aber bevor du dieses grundsätzliche Prinzip nicht durchschaust, ist es praktisch unmöglich dir eine hilfreiche Antwort zu geben. Deshalb muss das zuerst geklärt werden.

  • Hallo Dieter,

    zum rangieren verwende ich die Befehle zum abkuppeln:

    Lua
    EEPRollingstockSetCouplingFront(string.sub(zugname_1,2), 2) -- setzt Kupplung vorn auf Abstoßen
    EEPRollingstockSetCouplingFront(string.sub(zugname_1,2), 1) -- setzt Kupplung vorn auf Kuppeln
    
    --oder wenn die Lok vorwärts fährt:
    EEPRollingstockSetCouplingRear(string.sub(zugname_1,2), 2) -- setzt Kupplung hinten auf Abstoßen
    EEPRollingstockSetCouplingRear(string.sub(zugname_1,2), 1) -- setzt Kupplung hinten auf Kuppeln
    
    --string.sub(zugname_1,2) entfernt das "#" vom übermittelten Zugnamen

    daurch bleibt der Name der Lok erhalten. Sehen kannst du das wenn du diese Funktionen in deinem Script hast:

    (übrigens auch bei deiner Methode, die noch von Trend überarbeitet werden muss um so wie im Handbuch beschrieben zu funktionieren.)

    Lua
    function EEPOnTrainCoupling(Zug_A, Zug_B, Zug_neu)
                print("Aus ",Zug_A," und ",Zug_B," wird ",Zug_neu)
    end
    function EEPOnTrainLooseCoupling( Zug_A, Zug_B, Zug_alt )
                print(Zug_alt," geteilt in ",Zug_A," und ",Zug_B)    
    end

    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950

  • Danke! Ich werde mich jetzt intensiv mit diesen Schritten beschäftigen, denn ich möchte es lösen!

    Danke an Euch!

  • Hallo,

    vielleicht wäre es sinnvoll, die letzten Beiträge vom eigentlichen Thema zu trennen?

    Dann wird es für anderen Lua-Interessenten einfacher diese Beiträge zu den anderen Lua-Funktionen wie zum Beispiel EEPOnTrainCoupling später wieder zu finden.

    Vielen Dank! :)

    M.f.G. Patrick

  • Hallo Goetz, das von Dir erklärte Prinzip habe ich verstanden und kann es auch gezielt anwenden.

    Könntest Du mir bitte noch kurz darstellen, wie ich einen Zug unter Lua speichern kann?

  • Könntest Du mir bitte noch kurz darstellen, wie ich einen Zug unter Lua speichern kann?

    Kurzfristig:

    Lege den Namen in einer Variablen ab. Diese behält die gespeicherte Information so lange, bis du sie überschreibst oder das Skript erneut lädst.

    Langfristig:

    Soll der Zugname erhalten bleiben, wenn du das Skript erneut lädst (einschließlich Beenden und erneutem Laden der Anlage) dann kannst du den Namen mit EEPSaveData() in einem Speicherplatz deiner Wahl ablegen. Die verfügbaren Plätze haben die Nummern 1 bis 999. Du benötigst auch dafür eine Variable (als Zwischenträger) wenn du den Namen durch einen Funktionsaufruf bekommst und an die Funktion EEPSaveData() weiterreichen willst.

    Ich fürchte, dass du gerade das Pferd von hinten aufzäumst.

    Vergiss mal einfach das, was du gerade tun willst und fang vorne an, Lua zu lernen. Nicht irgendwo mittendrin.

  • Hi Kaffeeschluerfer, würdest Du mir bitte in Deinen Text die vollen erforderlichen Zugnamen eintragen, damit ich nicht wieder tagelang alle Eventualitäten ausprobieren muss?

    Im Prinzip habe ich deine Schritte verstanden.

    Kann auf diese Weise die Lok (vorn) vom Zug abgekuppelt und nach dem Umsetzen (hinten) wieder angekuppelt werden?

  • vielleicht wäre es sinnvoll, die letzten Beiträge vom eigentlichen Thema zu trennen?

    Hallo Patrick :)

    ein sehr berechtigter Hinweis. Leider komme ich in den letzten Tagen mit dem Abtrennen gar nicht hinterher... :(

    Dann wird es für anderen Lua-Interessenten einfacher diese Beiträge zu den anderen Lua-Funktionen wie zum Beispiel EEPOnTrainCoupling später wieder zu finden.

    @Dieter Scharff : bitte hänge Dich aus genau diesem Grund mit neuen Fragen nicht einfach an irgendwelche alten Themen, sondern eröffne ein neues. Beachte dazu auch den nicht ganz unauffälligen Hinweis in dem Kasten oben. Eine bebilderte Anleitung findest Du unter Wie eröffne ich ein neues Thema. Vielen Dank für Dein Verständnis.

    Gruß Ingo

  • Hi Goetz, sicher hast du nicht unrecht. Ich beschäftige mich seit einiger Zeit mit Lua, habe die Tutorials aufmerksam studiert und was ich für die Realisierung meiner Anlage verwenden konnte bis zum entgültigem Verständnis ergründet, erprobt und letztendlich angewendet. Doch bei diesen Tutorials, die offensichtlich die einzige Möglichkeit sind, Lua zu verstehen, gibt es immer wieder Situationen, die auch mit viel Mühe nur schwer nachvollzogen werden können. Seit ich über das Forum, durch Euch diese Gedankenstützen bekommen, bin ich viel weiter gekommen. Doch an einigen Dingen scheitere ich, trotz mühevoller Erprobungen. Um nicht aufgeben zu müssen frage ich Euch, um ein positives Ergebnis zu bekommen. Für Euch sind das möglicherweise Lullerken, doch mir kosten diese Kleinigkeiten oft sehr, sehr viel Zeit, dennoch versuche ich es zu verstehen und umzusetzen.

    Dieter.

  • Kann auf diese Weise die Lok (vorn) vom Zug abgekuppelt und nach dem Umsetzen (hinten) wieder angekuppelt werden?

    Ja, das ist ja der Sinn der Sache (u.a.)

    Lok ist rückwärts am Zug!

    Mach zum Test auf einem Gleis drei Kontaktpunkte dicht hintereinander: 1. Soundkontakt mit lua-Funktionsaufruf "ZugHalt" - 2. Soundkontakt mit etwa 5 sec Verzögerung und lua-Funktionsaufruf "Abkoppeln" - 3. Soundkontakt mit etwa 10 sec Verzögerung und lua-Funktionsaufruf "LokWeiter"

    In den "Anlageninformationen" kein Haken bei "Namen behalten" !

    Wenn der Zug die Kontaktpunkte erreicht, hält der Zug an, wird die Lok abgekoppelt und fährt dann weiter.

    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950

  • Danke, danke, jetzt werde ich mich solange damit beschäftigen, bis es funktioniert! Nun wird die Lok weiterfahren, bis zum Fahrtrichtungswendepunkt, die Weichen werden gestellt, dann fährt sie zurück bis zu einem weiteren Wendepunkt und kommt von vorne auf das Zugende zu.

    Jetzt müsste die Zugankopplung programmiert werden.

    Das macht ein entsprechender Kontaktpunkt, der allerdings bei Ankunft des Zuges ebenfalls überfahren wird, er muss bei dieser ersten Berührung unaktiv(?) sein?

  • Das macht ein entsprechender Kontaktpunkt, der allerdings bei Ankunft des Zuges ebenfalls überfahren wird

    Zum Ankoppeln braucht es keinen Kontaktpunkt oder Funktion, das macht die Lok alleine. Du mußt nur in der "Anlageninformation" den Haken bei "sanftes Ankoppeln" setzen.

    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950

  • Da die betreffenden KP ja nur vom ganzen Zug oder der Wendelok ausgeführt werden sollen, gebe ich meinem Zugwagen beim abkoppeln die Route "Wendezug". Nach dem ankuppen in die richtige Richtung bekommt er wieder seine ursprüngliche Route zurück.

    Peter

    Betriebsystemname: Microsoft Windows 11 Pro

    Prozessor:Prozessor AMD Ryzen 7 7700X 8-Core Processor, 4501 MHz, 8 Kern(e), 16 logische(r) Prozessor(en)

    PC:RAM 32 GB, Name NVIDIA GeForce RTX 4070 Ti

    EEP 17 mit allen Plug ins und Patches

    Modelkonverter, Home-Nostruktor 16.0, Modellkatalog, Bodentextur Tool

  • Guten Morgen!

    Danke Kaffeschluerfer, es funktioniert. Jetzt muss ich diesen Zug nach dem Ankuppeln dazu bewegen wieder (rückwärts) abzufahren.

    Dieter

  • Vielleicht komme ich mit SETROUTE() weiter, (wie Wassermann50 angeregt hat). Runde 1 - Speed wird verringert; Runde 2 - Abfahrt über EEPSetTrainSpeed in entgegengesetzter Richtung!

  • Danke, es functioniert!

    Der KP muss sehr genau possitioniert sein, gibt es eine Möglichkeit, dass, wenn die Ankiupplung erfolgt ist, die Rückfahrt eingeleitet wird? Dann wäre alles perfekt.

    Eine weitere wichtige Frage. In der formalen Logik kann ich die logischen Verknüpfungen dadurch erweitern, in dem ich bei den Argumenten weitere Verknüpfungen einfüge. Was muss ich tun, wenn ich bei einer Funktion z.B. bei if, then, else im Rahmen der Argumente eine weitere Funktion verwenden möchte?

    Z.B if

    (.... == x)

    and

    (.... == y)

    then

    if

    (.... == a)

    and

    (... == b)

    then

    EEP......

    else

    EEP......

    end

    end

    end

  • ein end zuviel:

    Code
    if (.... == x) and (.... == y) then
      if (.... == a) and (... == b) then
        EEP_tuwas()
      else
        EEP_tuwasanderes()
      end
    end
    
    -- end

    hier siehst du auch gleich den Vorteil der Formatierung

    :aq_1:

    eep_gogo ( RG3 )

    -------------------------

    Intel i3-540 3,2GHz 8GB, RAID10, HD 6570 1GB, W7/64 Prof., EEP 6-6.1, 10-17.0, HN13+15/16+15/16DEV, TM, "Schiefe Ebene 6 + 8", "Bahn2000", "Faszination der St. Gotthard-Nordrampe"

  • Hallo Dieter,

    du hast ja schon einiges geschafft, :aa_1:

    Für die Weiterfahrt nach dem Ankoppeln lege ich die Kontakte vor die letzte Weiche (die wieder aufs Zufahrtsgleis führt) mit entspr. Zeitverzögerung.

    Dadurch habe ich keine Probleme mit dem zweimaligen Überfahren. Sieht etwa so aus:

    1. Fahrzeugkontakt - Verzögerung 25 sec / Tempo 0 zum Anhalten nach der Weiche

    2. Kontakt mit 30 sec Verzögerung für Rückfahrt zum Ankoppeln

    3. Kontakt mit 70 sec Verzögerung für Abfahrt des ganzen Zuges

    4, ist ein Weichenkontakt um Weiche auf Abzweig zu schalten.

    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950

  • Hallo Kaffeschluerfer!

    Einfach genial! Danke! Hätte ich gleich diese Frage an Euch gestellt, hätte ich mir viele Stunden ersparen können!

    Nochmals vielen Dank!!