Das inoffizielle Forum zu Eisenbahn.exe Professional 7+

DerLochhofener
Benutzeravatar
Team
Beiträge: 270
Registriert: 28.09.2011, 22:27
Wohnort: Lochhofen
EEP-Version: von 8 - 14

Steuerung einer Drehscheibe per LuA Script

Moin liebe EEPler, kann mir evtl. jemand sagen, bzw. schreiben, wie ich per LuA die Stellung einer Drehscheibe auslesen kann. Hintergrund ist der:
Je nach Stand der Drehscheibe soll ein bestimmtes Ziel per Links oder Rechtsdrehung angefahren werden. Als Bsp.: Die Drehscheibe steht am
ersten Stand und soll per Rechtsdrehung zum 6 Stand und dann per linksdrdehung zum 2 Stand. Hat jemand evtl. eine Idee?
Gruß aus dem schönen Lochhofen in BY

Martin

NB:
Windows 10 Pro
i5, 16MB RAM, Geforce 960m 4GB

Installierte EEP Versionen: 11, 12, 13, 14.1 & PlugIn 1, 15 jeweils die Expertversionen
HomeNos13, PlanEx 3.2; Modellkatalog, Tauschmanager, div. Hilfstools

Meine Meinung zum Modellkoverter: Abschaffen
juergen18
Benutzeravatar
Team
Beiträge: 1300
Registriert: 04.10.2013, 22:43
EEP-Version: 7-14

AW: Steuerung einer Drehscheibe per LuA Script

Hallo Martin,

ich habe zwar nicht Plugin 1, aber ich glaube nicht, dass dies möglich ist, da man ja auch schon früher
nicht feststellen konnte, wo sich die Drehbühne befand oder gibt es eine Funktion "GetAnimateAxis"
oder so ähnlich?
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-15
Laptop: Medion i7-6500U CPU 2.5 - 3.1 GHz, 8 GB DDR3-Speicher, NV Geforce GTX 950M, 2 GB DDR3 Speicher, Win 10 64-Bit

Mein aktuelles Projekt: Erweiterung des Tauschmanagers bis EEP 15 (aktuelle Vesion 3.2.2.2) und ein bisschen Lua
Anleitung für den TM zum Download

Postkartenzähler für den TM: 620
maxithing
Benutzeravatar
Beiträge: 2322
Registriert: 05.06.2011, 15:08
Wohnort: Gangelt
EEP-Version: 6 bis 14 E

AW: Steuerung einer Drehscheibe per LuA Script

Hi,
ja, es gibt den Befehl EEPStructureGetAxis("#zahl_Drehscheibe", "Brücke") 
die kursiv gedruckte zahl ist die "lfd. Nr. die im Modell (Rechtsklick) ausgelesen werden kann.
Diesen kann man in Variablen abfragen. Etwa so:
hResult, Stellung = EEPStructureGetAxis("#zahl_Drehscheibe", "Brücke")

die Variable hResult nimmt hier keinen Stellenwert ein, ist die Drehscheibe vorhanden, dann ist hResult "true" ansonsten "false"
In der Variablen "Stellung" wird dann der aktuelle Winkel der Drehscheibe gespeichert.
Für die Drehung nach der Auswertung entweder EEPStructureSetAxis("#zahl_Drehscheibe", "Brücke", Anzahl_Schritte)
Anzahl_Schritte kann wieder eine Variable sein oder eine natürliche Zahl mit ggf. vorangestelltem "-" Zeichen
Allerdings springt dann die Drehscheibe ohne Animation in die neue Stellung, Vorsicht Schleudertrauma beim Lokführer *HASEL*
Besser also EEPStructureAnimateAxis("#zahl_Drehscheibe", "Brücke", Anzahl_Schritte) .
Dann klappts auch mit dem Lokführer*STOLZ*
Und immer schön an die Anführungszeichen denken.

Gruß
Dieter
Gruß
Dieter (DH1)
----------------------------------------------------------------------------------
Rechner: I7 4x4,0 Ghz, 16 GB Ram, Nvidia GTX 970 mit 4 GB Ram
juergen18
Benutzeravatar
Team
Beiträge: 1300
Registriert: 04.10.2013, 22:43
EEP-Version: 7-14

AW: Steuerung einer Drehscheibe per LuA Script

Danke Dieter, wieder was gelernt, auch ohne Plugin 1. *GOOD*
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-15
Laptop: Medion i7-6500U CPU 2.5 - 3.1 GHz, 8 GB DDR3-Speicher, NV Geforce GTX 950M, 2 GB DDR3 Speicher, Win 10 64-Bit

Mein aktuelles Projekt: Erweiterung des Tauschmanagers bis EEP 15 (aktuelle Vesion 3.2.2.2) und ein bisschen Lua
Anleitung für den TM zum Download

Postkartenzähler für den TM: 620
DerLochhofener
Benutzeravatar
Team
Beiträge: 270
Registriert: 28.09.2011, 22:27
Wohnort: Lochhofen
EEP-Version: von 8 - 14

AW: Steuerung einer Drehscheibe per LuA Script

Hallo Jürgen, Hallo Dieter,

Danke erstmal für eure Antworten.

Mit der Aussage von Dieter werde ich mich mal auseinandersetzen. Jetzt wird mir auch klar, was im Nachbarforum in dem Thread "Drehscheibe steuern mit Lua" gemeint war. So kann man jetzt versuchen, eine Drehscheibe zu steuern in Abhängigkeit wo selbige steht. Dies will ich nämlich machen, mit Hilfe der Schaltmodule von HS1. Mal sehen wie weit ich damit komme. Eine einfache Drehung der Scheibe mit Hilfe der Schaltmdule hatte ich bereits hinbekommen.

Trotzdem nochmals vielen lieben Dank.
Gruß aus dem schönen Lochhofen in BY

Martin

NB:
Windows 10 Pro
i5, 16MB RAM, Geforce 960m 4GB

Installierte EEP Versionen: 11, 12, 13, 14.1 & PlugIn 1, 15 jeweils die Expertversionen
HomeNos13, PlanEx 3.2; Modellkatalog, Tauschmanager, div. Hilfstools

Meine Meinung zum Modellkoverter: Abschaffen
herbertmontie
Kein Avatar
Beiträge: 22
Registriert: 14.01.2017, 17:34
Wohnort: Salzburg
EEP-Version: 13 V4 32bit

AW: Steuerung einer Drehscheibe per LuA Script

Hallo,

ist vielleicht ein bisschen spät (habe erst 1 Woche EEP13 und lerne jetzt zu l"laufen in EEP *KISS*) aber ich habe hier eine Link wie Schritt für Schritt erklärt wird wie man das LUA-SKRIPT für die Buehne scheiben soll/kann

https://www.youtube.com/watch?v=hcrlVTI ... 02nt4A7uSH

LG., Herbert
gonz
Benutzeravatar
Beiträge: 912
Registriert: 12.07.2015, 13:24
Wohnort: Wildemann / Harz
EEP-Version: 15

AW: Steuerung einer Drehscheibe per LuA Script

Gut zu wissen dass das mit der 13 jetzt prima läuft. Ich habe das bei der Adlerkopf Anlage nicht hinbekommen, es gab dort immer Probleme (ich nehme an mit Rundungsfehlern), die ein Ansteuern einzelner Gleise einfach unmöglich machten... Ggf. krame ich das nochmal vor und gucke, ob ich es jetzt hinbekomme...

Vielen Dank für die Infos :)

gonz
Intel i5-4460 3.2GHz | 12 GB RAM | Windows 8.1 64 Bit | GForce GTX 760 | EEP 13.2 Plugin 2
Aktuelle Projekte: Altenau/Harz, Börssum, Goslar, Kl. Mahner nach Gleisplänen von 1920 bis 1961 und Ausgestaltung gem. Epoche III/IV
herbertmontie
Kein Avatar
Beiträge: 22
Registriert: 14.01.2017, 17:34
Wohnort: Salzburg
EEP-Version: 13 V4 32bit

AW: Steuerung einer Drehscheibe per LuA Script

Hallo liebe Leute,

ich habe da mal eine Frage zum Thema Drehscheibe mit LUA steuern bzw. die verschiedene Achsen vom Lokschuppen mit LUA an zu steuern. Ich habe mir vor einiger Zeit Lokschuppen V80NGK30001 (Lokschuppen für 27m Drehscheibe 7,5 Grad).
Das Scenario  sollte ungefähr so aussehen:

1. Die Aussenbeleuchting über das Tor geht an.
2. 2 sec später, die Innenbeleuchtung geht an.
2. 5 sec später, das Schuppentor geht auf.
3. 15 sec später, beim Kamin vorne kommt rauch raus.
4. 30 sec später, die Lichter von der Lok werden eingeschaltet.
5. 1 min später, die Dampflok fährt aus den Lokschuppen.

Ich weiß das man sowas in der "Main" schreiben kann mit ein "Counter" aber ich möchte das ausserhalb der Main in eine function integrieren. Ich weiß das es in Basic man das mit eine FOR...NEXT schleife machen kann. Gibt es auch so etwas in LUA?

Hierunten ist ein Teil von Script. Die letzte 3 Zeilen sollten die Warteschleife sein aber sobald ich Signal 25 Schalte geht die Aussenlampe an, was auch so sein sollte nur der Schornstein fangt dann auch gleich an zu rauchen aber der sollte in diesen fall 10 sec später anfangen zu rauchen.

WER KANN MIR HIER WEITER HELFEN? 


     -- ***** Licht_Tor_25_EIN/AUS *****
    if SignalStatus25 ==1 then 
        EEPStructureSetLight("#333_Rundschuppen_AussenLampe_GK3", true)
    elseif SignalStatus25 ==2 then
        EEPStructureSetLight("#333_Rundschuppen_AussenLampe_GK3", false)
    end
    
    -- ***** Schornstein_Vorne_25_Rauch EIN/AUS *****
  for h=0,51 do
  if h==50 then EEPStructureSetSmoke("#338_Rundschuppen_vorne_Rauchabzug(GK3)",true)
  end  

 
Dateianhänge
Lokschuppen_001.png
Lokschuppen_001.png (576.69 KiB) 1187-mal betrachtet
Lokschuppen_002.png
Lokschuppen_002.png (484.08 KiB) 1187-mal betrachtet
maxithing
Benutzeravatar
Beiträge: 2322
Registriert: 05.06.2011, 15:08
Wohnort: Gangelt
EEP-Version: 6 bis 14 E

AW: Steuerung einer Drehscheibe per LuA Script

aber ich möchte das ausserhalb der Main in eine function integrieren


Hallo,

das ganze innerhalb einer Funktion zu schalten ist eigentlich nicht das Problem. Nur mit EINER for...do wird es ggf. dein EEP ausbremsen, denn allzulange Schleifen halten Lua dann auf.
Warum bei dir der Rauch aufstieg?
versuche mal so schnell bis 50 zu zählen wie Lua das kann

Was aber ginge:

Benutze einen Slot (je Schuppen) in den Du deine Schritte 1 bis 5 als Wert speicherst. und einen weiteren für die aktuelle Zeit (oder den aktuellen Wert von I )

Zu Anfang der Funktion liest Du den Wert des Slots aus. Ist der z.B. 0 dann muss die Aussenbeleuchtung über dem Tor eingeschaltet werden.
Dementsprechend verzweigst Du über if slotwert == 0 then
in den Abschnitt, wo das Licht geschaltet wird.
Am Ende des Abschnitts wird der slotwert um 1 erhöht und zurück geschrieben.
Der aktuelle Wert der Variable I wird nun im Zeitslot gespeichert.
Beim nächsten Aufruf hat der Slot den Wert 1, nun soll die Innenbeleuchtung angehen.
Hier kommt nun der Zeitslot ins Spiel.
Mit if slotwert == 2 then
springst Du in den Abschnitt für die Schaltung der Innenbeleuchtung.
Dort liest Du erst den Zeitslot und vergleichst den gespeicherten Wert mit dem aktuellen Wert von I.
Ist der Wert von I noch nicht um 10 (2 Sekunden * 5) größer als der gespeicherte Wert dann wird der Abschnitt wieder verlassen.
Das ganze wiederholt sich dann für alle Arbeitsschritte.
Natürlich musst Du für diese Form der Steuerung in der EEPMain die Funktion bei jedem Durchlauf aufrufen.

Hier mal ein Scriptbeispiel:
Code: Alles auswählen
------------- Zeitgesteuerte Immobilienschaltung
------------- verwendete Slots =
-- 1      = Arbeitsschritt
-- 10    = Zeitwert (I)
------------- Slots initialisieren
EEPSaveData(1,0)
EEPSaveData(10,0
function Lokschuppen()                                                            -- wird in der EEPMain 5x/Sekunde aufgerufen
   schrittzaehler = select (2,EEPLoadData(1))                                    -- die Variable wird aus dem Slot 1 gelesen (lokale Variable)
   zeitwert = select (2,EEPLoadData(10))                                          -- die Variable wird aus dem Slot 10 gelesen (lokale Variable)
   if schrittzaehler == 0 then                                                      -- trifft fuer den ersten Durchlauf zu
       EEPStructureSetLight("#333_Rundschuppen_AussenLampe_GK3", true)      -- Aussenlicht einschalten
       EEPSaveData(1,1)                                                            -- schrittzaehler um 1 erhöhen und speichern
       EEPSaveData(10,I)                                                            -- den aktuellen Counterwert in Slot 10 speichern
   elseif schrittzaehler == 1 then                                                -- trifft fuer den 2. Durchlauf zu
      if zeitwert +10 <= I then                                                   -- wenn der Wert von I um 10 erhoeht ist (2 Sekunden sind verstrichen)
         ("#338_Rundschuppen_Innenlampe_GK3", true)                           -- Innenlampe einschalten (ggf. bitte den Strukturname anpassen)
         EEPSaveData(1,2)                                                         -- schrittzaehler um 1 erhöhen und speichern
         EEPSaveData(10,I)                                                         -- den aktuellen Counterwert in Slot 10 speichern
      end
   elseif schrittzaehler == 3 then                                                -- trifft fuer den 3. Durchlauf zu
      if zeitwert + 25 <= I then                                                   -- wenn der Wert von I um 25 erhoeht ist (5 Sekunden sind verstrichen)
         ...
         EEPSaveData(1,3)                                                         -- schrittzaehler um 1 erhöhen und speichern
         EEPSaveData(10,I)                                                         -- den aktuellen Counterwert in Slot 10 speichern
      end
   -- usw.
   end
end
Gruß
Dieter (DH1)
----------------------------------------------------------------------------------
Rechner: I7 4x4,0 Ghz, 16 GB Ram, Nvidia GTX 970 mit 4 GB Ram
herbertmontie
Kein Avatar
Beiträge: 22
Registriert: 14.01.2017, 17:34
Wohnort: Salzburg
EEP-Version: 13 V4 32bit

AW: Steuerung einer Drehscheibe per LuA Script

Danke Dieter für dein Beitrag.

Ich verstehe was du Meinst. Ich habe mir die Videos von Gerdox geschaut und sein Script studiert bevor ich mit meiner Drehscheibe angefangen habe.

Ich habe da noch eine Frage. Kann ich das "EEPTageslicht", also alle Umwelteinstellungen, auch mit LUA steuern? Ich möchte mir zb. mit der Systemzeit die "EEPtageszeit" anpassen also wenn es draußen dunkel ist das es dann auf der Anlage auch Dunkel ist.
Ich habe weiß wie man die Systemzeit mit LUA abfragen kann. Ich habe schon mal vor langer Zeit das im Forum nachgefragt...Uhrzeit abfragen mit LUA...

Code: Alles auswählen
I=0
clearlog()
Zeit1 =(os.date("%H, %M, %S"))

function EEPMain()
   Zeit2 =(os.date("%H, %M, %S"))
      if Zeit2 ~= Zeit1 then 
       print("SystemZeit:  ", os.date("%H, %M, %S"))
       Zeit1 = Zeit2
      end
   return 1
end

VG., Herbert

Edit Team: Code Tag ergänzt da so besser lesbar, fürs nächste mal bitte selber machen :)
maxithing
Benutzeravatar
Beiträge: 2322
Registriert: 05.06.2011, 15:08
Wohnort: Gangelt
EEP-Version: 6 bis 14 E

AW: Steuerung einer Drehscheibe per LuA Script

 Kann ich das "EEPTageslicht", also alle Umwelteinstellungen, auch mit LUA steuern?

Hallo Herbert,
das kann ich dir nicht beantworten. Aber ich meine es geht nicht direkt in Lua.
Was aber geht ist die Systemzeit mit der Anlage abzuspeichern. Ein Haken in den Einstellungen...

ob dir das aber hilft wage ich zu bezweifeln.
Gruß
Dieter (DH1)
----------------------------------------------------------------------------------
Rechner: I7 4x4,0 Ghz, 16 GB Ram, Nvidia GTX 970 mit 4 GB Ram
herbertmontie
Kein Avatar
Beiträge: 22
Registriert: 14.01.2017, 17:34
Wohnort: Salzburg
EEP-Version: 13 V4 32bit

AW: Steuerung einer Drehscheibe per LuA Script

Danke Dieter,

war ein Wunschgedanke aber wenns nicht geht ist das auch kein Problem.

vg, Herbert 

Hey Dieter, du kommst aus Gangelt? Das ist doch da wo die AWACS stationiert sind ;)
maxithing
Benutzeravatar
Beiträge: 2322
Registriert: 05.06.2011, 15:08
Wohnort: Gangelt
EEP-Version: 6 bis 14 E

AW: Steuerung einer Drehscheibe per LuA Script

Hallo Herbert,
nicht ganz. AWACS ist in Geilenkirchen, Gangelt ist die Gemeinde westlich davon, aber ich wohne nah genug dran um die Profilrillen in den Fahrwerken zu prüfen ;)

Gruß
Dieter
Gruß
Dieter (DH1)
----------------------------------------------------------------------------------
Rechner: I7 4x4,0 Ghz, 16 GB Ram, Nvidia GTX 970 mit 4 GB Ram
herbertmontie
Kein Avatar
Beiträge: 22
Registriert: 14.01.2017, 17:34
Wohnort: Salzburg
EEP-Version: 13 V4 32bit

AW: Steuerung einer Drehscheibe per LuA Script

Hallo Dieter,

Ja, ich kenne die Ecke sehr gut. Ich habe 39 Jahre in Oirsbeek, Hoensbroek und Heerlen gewohnt. Jetzt Wohne ich schon seit 10 Jahre 25km von Salzburg mitten in die Berge also jeden freien Tag bin ich im Urlaub :).

So, ich schaue mir mal das Video von Götz an wo er die Tabellen in LUA erklärt, kann ich vielleicht auch noch was mit anfangen.
Ich habe nur noch eine Frage wegen die Slots. Wenn ich mich nicht irre dann stehen LUA 1000 Slots zur Verfügung. Kann man auch alle 1000 Slots programmieren oder sind ein par Slots reserviert?

Grüße
Herbert
maxithing
Benutzeravatar
Beiträge: 2322
Registriert: 05.06.2011, 15:08
Wohnort: Gangelt
EEP-Version: 6 bis 14 E

AW: Steuerung einer Drehscheibe per LuA Script

Hallo Herbert,

nein, es gibt keine reservierten Slots.
Ich habe mir angewöhnt, die Slots in jeweils Blöcken für bestimmte Aufgaben zu nutzen.
so sind bei mir in der Regel die Slots 1 bis 300 für Anforderungen im Automatikbetrieb genutzt, die Slots von 301 bis 400 sind "reservierte / besetzte" Weichen, ab 401 sind dann Zielgleise reserviert usw.
Das hilft mir beim Suchen nach Fehlern ;)

Na dann vermisst Du das Limburgische Flachland ja sicher nicht.
Gruß
Dieter (DH1)
----------------------------------------------------------------------------------
Rechner: I7 4x4,0 Ghz, 16 GB Ram, Nvidia GTX 970 mit 4 GB Ram
herbertmontie
Kein Avatar
Beiträge: 22
Registriert: 14.01.2017, 17:34
Wohnort: Salzburg
EEP-Version: 13 V4 32bit

AW: Steuerung einer Drehscheibe per LuA Script

Hallo Dieter,

Danke für die Info. Ja, ist sicher besser um die Slots strukturiert ein zu teilen. Ich habe mir gestern mal den Schuppen in eine Tabelle angelegt da die Immobilienteilen nicht so richtig in eine reihenfolge verlaufen :(.

Nein vermisse das Flachland nicht. Gibt es keine Berge, keine Seen und kein Schnee im Winter (ausser Snowworld in Landgraaf) *HAPPY*.

Grüße,
Herbert

Ähnliche Themen

Preußische Drehscheibe mit 13 Meter und 16 Meter Bühnenlänge
in HG4 - Heinrich Goldmann von Dampfheini mit 5 Antworten
EEP selber erweitern mit LUA-Script ?
in LUA & Scripting von funkheld mit 6 Antworten
Drehscheibe 20m
in GK3 - Günther Kohl von GK3 mit 11 Antworten
Drehscheibe einbauen
in Allgemeines von Steffen mit 2 Antworten
Wir verwenden Cookies, um dir bestimmte Funktionen auf unserer Website bereitzustellen, durch die Nutzung unserer Seite erklärst du dich damit einverstanden das Cookies gesetzt werden. Mehr erfahren? Okay!