Deine Plattform für Eisenbahn Simulationen!

Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

Lua-Skript für Bahnhof klappt nicht

hab einen viergleisigen Bahnhof den ich nach einem Video mit LUA betreiben wollte.

wenn Gleis 1 nicht frei wird auf Gleis 2 geschalten, Gleis 2 nicht frei auf Gleis 3, von 3 auf Gleis 4, dies ist dann besetzt, und hier ist das Problem. Gleis4 wird weiter mit Zügen befahren auch wenn ich andere Gleise frei habe.

Im Ereignisfenster ist alle i.O

kann jemand helfen?


Danke
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: klappt nicht

Bin nicht sicher ob es mit dem Skript als Anhang geklappt hat, des halb so nochmal.



Code: Alles auswählen
I=0
clearlog()

print("Hey let's start, EEP Version is: ", EEPVer)

function EEPMain()
    --print("Counter: ",X)
 
    return 1
end
-- HBF Süd ###########################################################

function Werkzeugkasten()
clearlog()  --Ereignisfeld löschen
print(varGleis1)  ---Ausgabe in Ereignisfeld
hResult, varGleis1=EEPLoadData(1)  -- daten in Variable laden
hResult = EEPSaveData(1,"Gleis1 frei")  -- Daten speichern
EEPSetSignal(7,1)  --Signal setzen
EEPSetSwitch(30,1)  -- Weiche stellen
if X=="Gleis1 frei" then  --  'Wenn-Dann' immer mit 'end' abschließen
end -- Abschluss der 'Wenn-Dann' Abfrage(Anweisung)

end
-- HBF Süd ###########################################################
function Ausgabe()
hResult, Einfahrt=EEPLoadData(10)
hResult, Ausfahrt=EEPLoadData(11)
hResult, varZugKommt=EEPLoadData(12)

hResult, varGleis1=EEPLoadData(1)
hResult, varGleis2=EEPLoadData(2)
hResult, varGleis3=EEPLoadData(3)
hResult, varGleis4=EEPLoadData(4)
clearlog()
print(Einfahrt)
print(Ausfahrt)
print(varZugKommt)
print()
print(varGleis1)
print(varGleis2)
print(varGleis3)
print(varGleis4)


end
-- HBF Süd ###########################################################
function Weichen()
hResult, varGleis1=EEPLoadData(1)
hResult, varGleis2=EEPLoadData(2)
hResult, varGleis3=EEPLoadData(3)
hResult, varGleis4=EEPLoadData(4)

if varGleis1=="Gleis1 frei" then
EEPSetSwitch(3,2)
EEPSetSwitch(1,1)
else
EEPSetSwitch(1,2)
end

if varGleis2=="Gleis2 frei" then
EEPSetSwitch(3,2)
EEPSetSwitch(1,2)
else
EEPSetSwitch(3,1)
EEPSetSwitch(2,1)
end

if varGleis3=="Gleis3 frei" then
EEPSetSwitch(3,1)
EEPSetSwitch(2,1)
else
EEPSetSwitch(3,1)
EEPSetSwitch(2,2)
end

if varGleis4=="Gleis4 frei" then
EEPSetSwitch(3,1)
EEPSetSwitch(2,2)
end


end

-- HBF Süd ###########################################################
function ZugKommt()
hResult = EEPSaveData(12,"Zug kommt")
if varGleis1=="Gleis1 frei" or varGleis2=="Gleis2 frei" or varGleis3=="Gleis3 frei" or varGleis4=="Gleis4 frei" then
EEPSetSignal(11,2)
else
EEPSetSignal(11,1)
end
Ausgabe()
end

-- HBF Süd ###########################################################
function ZugDurch()
hResult = EEPSaveData(12,"Kein Zug Kommt")
Ausgabe()
end

-- HBF Süd ###########################################################
function EinfahrtFrei()
hResult = EEPSaveData(10,"Einfahrt frei")

Ausgabe()
end
-- HBF Süd ###########################################################
function EinfahrtBesetzt()
hResult = EEPSaveData(10,"Einfahrt besetzt")
Weichen()

Ausgabe()
end
-- HBF Süd ###########################################################
function Gleis1Frei()
hResult = EEPSaveData(1,"Gleis1 frei")
EEPSetSignal(29,1)

Ausgabe()
if varZugKommt=="Zug kommt" and Einfahrt=="Einfahrt frei" then
EEPSetSignal(11,2)
end
end
-- HBF Süd ###########################################################
function Gleis1Besetzt()
hResult = EEPSaveData(1,"Gleis1 besetzt")

Ausgabe()
end


-- HBF Süd ###########################################################
function Gleis2Frei()
hResult = EEPSaveData(2,"Gleis2 frei")
EEPSetSignal(28,1)

Ausgabe()
if varZugKommt=="Zug kommt" and Einfahrt=="Einfahrt frei" then
EEPSetSignal(11,2)
end
end
-- HBF Süd ###########################################################
function Gleis2Besetzt()
hResult = EEPSaveData(2,"Gleis2 besetzt")

Ausgabe()
end
-- HBF Süd ###########################################################
function Gleis3Frei()
hResult = EEPSaveData(3,"Gleis3 frei")
EEPSetSignal(27,1)

Ausgabe()
if varZugKommt=="Zug kommt" and Einfahrt=="Einfahrt frei" then
EEPSetSignal(11,2)
end
end
-- HBF Süd ###########################################################
function Gleis3Besetzt()
hResult = EEPSaveData(3,"Gleis3 besetzt")

Ausgabe()
end
-- HBF Süd ###########################################################
function Gleis4Frei()
hResult = EEPSaveData(4,"Gleis4 frei")
EEPSetSignal(26,1)

Ausgabe()
if varZugKommt=="Zug kommt" and Einfahrt=="Einfahrt frei" then
EEPSetSignal(11,2)
end
end
-- HBF Süd ###########################################################
function Gleis4Besetzt()
hResult = EEPSaveData(4,"Gleis4 besetzt")

Ausgabe()
end

-- HBF Süd ###########################################################
function AusfahrtFrei()
hResult = EEPSaveData(11,"Ausfahrt frei")


Ausgabe()
end
-- HBF Süd ###########################################################
function AusfahrtBesetzt()
hResult = EEPSaveData(11,"Ausfahrt besetzt")


Ausgabe()
end
-- HBF Süd ###########################################################
juergen18
Benutzeravatar
Team
Beiträge: 1335
Registriert: 04.10.2013, 22:43
EEP-Version: 7-16

AW: klappt nicht

Hallo Jan, sowas löst man nicht mit einem so langen Skript in Lua, sondern mit einer Fahrstraße, die sich selbst den Weg sucht
und auch die Weichen schaltet. Nicht böse gemeint von mir, aber Deine Lösung ist wesentlich zu aufwendig.

Es gibt hier auch einen Workshop von mir, da habe ich auch dieses Thema aufgegriffen:

LUA & Scripting

LUA & Scripting
Dies ist mit Lua, einfach mal schauen, was Du davon gebrauchen kannst.
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-16
Laptop: Acer Predator Helios 500 CPU Intel i9 bis 4.1 GHz, 32 GB Speicher, NV Geforce GTX 1070, 8 GB Speicher, Win 10 64-Bit

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

Postkartenzähler für den TM: 692
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: klappt nicht

Vielen Dank

werd es mal mit Fahrstraßen ausprobieren, trotzdem wurmt es mich da in dem YouTube Video von Gerdox EEP LUA Steuerung eines Bahnhofs in der Praxis

https://www.youtube.com/watch?v=Bw52cPPULfA

es funktionierte.


Gruß Jan aus Panketal
juergen18
Benutzeravatar
Team
Beiträge: 1335
Registriert: 04.10.2013, 22:43
EEP-Version: 7-16

AW: Lua-Skript für Bahnhof klappt nicht

Ich habe jetzt mal kurz das Skript überflogen und gleich am Anfang gibt es einen Ausdruck, der nichts ausführt:

if X=="Gleis1 frei" then  --  'Wenn-Dann' immer mit 'end' abschließen
   'Hier müsste eigentlich was ausgeführt werden, aber bei Dir passiert hier nichts
end -- Abschluss der 'Wenn-Dann' Abfrage(Anweisung)

Ich schaue mir jetzt aber nicht dieses lange Skript an, wenn, würde ich mich an den Verfasser des Videos wenden,
der findet bestimmt den Fehler sofort, da es sein Skript ist.
Jeder programmiert anders, auch in Lua und der Verfasser weiß am Besten, wo, was falsch ist.
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-16
Laptop: Acer Predator Helios 500 CPU Intel i9 bis 4.1 GHz, 32 GB Speicher, NV Geforce GTX 1070, 8 GB Speicher, Win 10 64-Bit

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

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

AW: Lua-Skript für Bahnhof klappt nicht

Hallo Jan,

in diesem Zusammenhang kann ich Dir auch noch folgende Video Reihe vom Parry36 empfehlen. Klickst Du hier
Gruß aus dem schönen Lochhofen in BY

Martin

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

Installierte EEP Versionen: 11, 12, 13, 14.1 & PlugIn 1, 15.3, Plugin 1, EEP16, jeweils die Expertversionen
HomeNos13, HomeNos15, PlanEx 3.2; Modellkatalog, Modell-Explorer, Tauschmanager,
MA1-Tools, NR1-Tools, div. Hilfstools

Meine Meinung zum Modellkoverter: Endlich abgeschafft
martin51
Kein Avatar
Beiträge: 31
Registriert: 25.04.2017, 17:03
Wohnort: Schruns
EEP-Version: EEP16 Exp. Patch 2

AW: Lua-Skript für Bahnhof klappt nicht

Hallo Jan,

wenn es dich "wurmt", dann schau auf YT das Video noch einmal an.

Gerd hat es dort sehr gut erklärt. Dein Script ist nicht vollständig.

Ein Tipp: Frag doch einfach mal Gerd (Gerdox) ob er dir das Script schickt.

Ich hatte mit ihm Kontakt zu einer Drehscheiben-Steuerung.

Er war sehr hilfsbereit, wir konnten dadurch auch Fehler im Script beseitigen.

Wenn es auch andere (vielleicht auch bessere) Lösungen gibt, nur wenn man sich mit lua beschäftigt, kann man auch was lernen.

Gruß Martin
Desktop: Wortmann Terra: Intel® Core™ i7-8700K CPU 3.7GHz, RAM 32GB, GIGA NVIDIA GTX 1080 Ti 11GB, SSD 256GB, HD 3TB, Windows 10 Pro 64 Bit 1803

EEP16 Exp. Patch 2
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: Lua-Skript für Bahnhof klappt nicht

Danke an alle, werd es beherzigen.


Gruß Jan
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: Lua-Skript für Bahnhof klappt nicht

Ja Goetzich würde natürlich gern verstehen warum es nicht funktionniert. Wie schon von jemanden empfohlen hat es mit Fahrstrassen geklappt.

Aber als reine LUA-Skript fände ich es schöner um mich an die Programmiersprache ranzutasten.


Gruß Jan
juergen18
Benutzeravatar
Team
Beiträge: 1335
Registriert: 04.10.2013, 22:43
EEP-Version: 7-16

AW: Lua-Skript für Bahnhof klappt nicht

Also die Lösung ist, Jan: Ach ne, darf ich nicht verraten.

Gut erklärt, Götz. (Y)
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-16
Laptop: Acer Predator Helios 500 CPU Intel i9 bis 4.1 GHz, 32 GB Speicher, NV Geforce GTX 1070, 8 GB Speicher, Win 10 64-Bit

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

Postkartenzähler für den TM: 692
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: Lua-Skript für Bahnhof klappt nicht

Hallo Götz,

Danke für die investierte Zeit. Hab heut wieder  1 1/2Std. Probiert ohne Verbesserung. Ich fahr die Züge automatisch in den Bahnhof. Es werden alle 4 Gleis besetzt und auch gemeldet. Danach kann ich Gleis 1-3 frei fahren aber der nächst kommende Zug will auf das einzige besetzt Gleis 4. Müsste das LUA-Skript nicht wieder die varGleis1 prüfen.

Bin leider erst am Anfang mit LUA- Programmierung  und find den "einfachen" Fehler nicht.


Grüße aus Panketal
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: Lua-Skript für Bahnhof klappt nicht

Hallo Götz,

ich würde davon ausgehen das LUA die if varGleis für Gleis prüft und dem entsprechend die Weichen schaltet.

aber nach:

Code: Alles auswählen
if varGleis4=="Gleis4 frei" then
EEPSetSwitch(3,1)
EEPSetSwitch(2,2)
end

fängt LUA nicht mit varGleis1 wieder an. Somit bleiben die Weichen so geschaltet, aber warum soweit bin ich noch nicht.

"Kannst du anhand dieser Beschreibung schon erkennen, warum dein Weg auch dann zum Gleis 4 führt, wenn die Gleise 1, 2 und 3 frei sind?" ich erkenn es nicht.

Danke für deine Gedult
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: Lua-Skript für Bahnhof klappt nicht

LUA prüft die Gleise in der if so schnell das es zufällig ist in welches Gleis der Zug einfährt, aber es sollten die Weichen nicht in ein besetztes Gleis gestellt werden.
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: Lua-Skript für Bahnhof klappt nicht

jetzt noch mal.

Code: Alles auswählen
if varGleis1=="Gleis1 frei" then
EEPSetSwitch(3,2)
EEPSetSwitch(1,1)
else
EEPSetSwitch(1,2)
end

warum wird die Abfrage nicht beendet ist nicht der "end" Befehl dafür?
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: Lua-Skript für Bahnhof klappt nicht

jede if- Verzweigung hat ihr end und das letzt nicht eingerückte end ist für die Funktion Weichen.

Aber so ist es in meinem Skrip doch auch?
Jan Metzner
Kein Avatar
Beiträge: 11
Registriert: 04.11.2019, 09:19
EEP-Version: 12 & 16

AW: Lua-Skript für Bahnhof klappt nicht

Guten Morgen Götz,

kann man die nachfogenden if-Verzweigungen nicht abschalten wenn man mit der ersten erfolgreich ein freies Gleis gefunden hat, und nur wenn dies nicht der fall ist die nächste aufrufen. So wie es sich jetzt darstellt wird mein Zug nach der ersten Einfahrt immer ins letzte Gleis geleitet, selbs wenn andere davor frei sind.

Gruß Jan
juergen18
Benutzeravatar
Team
Beiträge: 1335
Registriert: 04.10.2013, 22:43
EEP-Version: 7-16

AW: Lua-Skript für Bahnhof klappt nicht

Hallo Götz, Du hast mich gerade sehr enttäuscht mit dem Satz im Forum:
 
"Dieses Forum ist vielleicht gut genug für ..."

Ich habe auch deswegen den kompletten Beitrag gelöscht.
 
Wenn Du nicht in der Lage bist, mit html-Code umzugehen und es nicht so ist, wie im anderen Forum, dann unterlasse zumindest diese Äußerungen.
Wir müssen uns nicht Anderen anpassen, sondern die User unserem Forum.
 
Außerdem musst Du nicht User aus unserem Forum abwerben, nur um von Deiner Schwäche in html abzulenken. Wir überlegen, Dich zu sperren.
 
Grüße aus Wattenscheid von Jürgen

Ich habe EEP 7-16
Laptop: Acer Predator Helios 500 CPU Intel i9 bis 4.1 GHz, 32 GB Speicher, NV Geforce GTX 1070, 8 GB Speicher, Win 10 64-Bit

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

Postkartenzähler für den TM: 692

Ähnliche Themen

Bahnhöfe kurz und knapp mit Lua
in LUA & Scripting von juergen18 mit 58 Antworten
Video mit Lua Scripten von Parry36
in LUA & Scripting von BR53 mit 0 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!