Code
- ----->> HBF Bahnsteigaufzuege bewegen
- ----->> Variablen
- AufzCounter = 1 -----<< Laufvariable für Aufzüge
- ----->> Variable für HBF Bahnsteigaufzuege bewegen. Dabei bedeutet
- ----->> lift = 0 -> Aufzug Kabine unten (abwärts)
- ----->> lift = 1 -> Tür UG auf
- ----->> lift = 2 -> Tür UG zu
- ----->> lift = 3 -> Aufzug Kabine oben (aufwärts)
- ----->> lift = 4 -> Tür OG auf
- ----->> lift = 5 -> Tür OG zu
- lift = 0 -----<< Status für Fahrstuhl
- rndAufzID = 1 -----<< Zufallszahl für Fahrstuhl
- AufzID = {5, 6, 113, 114, 115, 116, 117, 118, 119, 120} -----<< In dieser Tabelle die ID(s) der Aufzuege eintragen
- AufzZustand = {} -----<< Inhalt in welchem Zustand der Fahrstuhl ist
- anzAufzID = #AufzID -----<< Anzahl Aufzüge in der Liste
- -----------------------------------------------------------------
- -- HBFBahnsteig-Aufzüge in Startposition bringen
- -- Fahrstuhl nach oben, untere Tür geschlossen und obere geöffnet
- -----------------------------------------------------------------
- function HBFBstgAufzuegeReset()
- if lift == 0 then
- for i = 1, anzAufzID do -- fuer alle Aufzuege in der Liste
- EEPStructureAnimateAxis("#"..AufzID[i].."_Aufzug_Bstg 1-2_Str_MS2","Tuer OG", 10 ) -- Tuer OG auf
- EEPStructureAnimateAxis("#"..AufzID[i].."_Aufzug_Bstg 1-2_Str_MS2","Tuer UG", -10 ) -- Tuer OG zu
- EEPStructureAnimateAxis("#"..AufzID[i].."_Aufzug_Bstg 1-2_Str_MS2","Aufzug-Kabine", 10 ) -- Aufzug auf
- h, position1 = EEPStructureGetAxis("#"..AufzID[i].."_Aufzug_Bstg 1-2_Str_MS2","Aufzug-Kabine") -- Position abfragen Aufzug-Kabine
- if position1 > 99 then -- wenn oben
- lift = 4 -- Zustand neu setzen
- AufzZustand[i] = lift -- Zustand in Tabelle schreiebn
- end
- end
- end
- end
- function HBFBstgAufzugAufwaerts(x) -- wird in der EEP Main 1x/Sek aufgerufen
- lift = AufzZustand[x] -- Zustand des Aufzug auslesen
- if lift == 2 then -- wenn Aufzug unten ist
- EEPStructureAnimateAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2","Aufzug-Kabine", 10 ) -- Aufzug aufwärts
- h, position1 = EEPStructureGetAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2","Aufzug-Kabine") -- Position abfragen Aufzug-Kabine
- if position1 > 99 then -- wenn oben
- lift = 3 -- Zustand neu setzen
- AufzZustand[x]= lift -- Zustand in Tabelle schreiebn
- end
- end
- end
- function HBFBstgAufzugAbwaerts(x) -- wird in der EEP Main 1x/Sek aufgerufen
- lift = AufzZustand[x] -- Zustand des Aufzug auslesen
- if lift == 5 then -- wenn Aufzug oben ist
- EEPStructureAnimateAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2","Aufzug-Kabine", -10 ) -- Aufzug runter
- h, position1 = EEPStructureGetAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2","Aufzug-Kabine") -- Position abfragen Aufzug-Kabine
- if position1 < 1 then -- wenn unten
- lift = 0 -- Zustand neu setzen
- AufzZustand[x]= lift -- Zustand in Tabelle schreiebn
- end
- end
- end
- function HBFBstgAufzugTuerOGAuf(x)
- if lift == 3 then -- wenn Aufzug oben ist
- EEPStructureAnimateAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2", "Tuer OG", 10 ) -- Tür auf
- h, position1 = EEPStructureGetAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2", "Tuer OG") -- Position abfragen Tür
- if position1 > 99 then -- wenn auf
- lift = 4 -- Zustand neu setzen
- AufzZustand[x]= lift -- Zustand in Tabelle schreiben OG
- end
- end
- end
- function HBFBstgAufzugTuerOGZu(x)
- if lift == 4 then -- wenn Aufzug oben ist
- EEPStructureAnimateAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2", "Tuer OG", -10 ) -- Tür zu
- h, position1 = EEPStructureGetAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2", "Tuer OG") -- Position abfragen Tür
- if position1 < 1 then -- wenn zu
- lift = 5 -- Zustand neu setzen
- AufzZustand[x]= lift -- Zustand in Tabelle schreiben OG
- end
- end
- end
- function HBFBstgAufzugTuerUGAuf(x)
- if lift == 0 then -- wenn Aufzug unten ist
- EEPStructureAnimateAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2", "Tuer UG", 10 ) -- Tür auf
- h, position1 = EEPStructureGetAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2", "Tuer UG") -- Position abfragen Tür
- if position1 > 99 then -- wenn auf
- lift = 1 -- Zustand neu setzen
- AufzZustand[x]= lift -- Zustand in Tabelle schreiben OG
- end
- end
- end
- function HBFBstgAufzugTuerUGZu(x)
- if lift == 1 then -- wenn Aufzug unten ist
- EEPStructureAnimateAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2", "Tuer UG", -10 ) -- Tür zu
- h, position1 = EEPStructureGetAxis("#"..AufzID[x].."_Aufzug_Bstg 1-2_Str_MS2", "Tuer UG") -- Position abfragen Tür
- if position1 < 1 then -- wenn zu
- lift = 2 -- Zustand neu setzen
- AufzZustand[x]= lift -- Zustand in Tabelle schreiben OG
- --print ("Lift: ", lift, " LiftID : ", rndAufzID," id : ", AufzID[rndAufzID], " UG Zu ")
- end
- end
- end
- function HBFBstgAufzugAktivieren(x) -- wird in der EEP Main 1x/Sek aufgerufen
- lift = AufzZustand[x]
- if lift == 0 then -- Aufzug unten -> Tür UG öffnen
- HBFBstgAufzugTuerUGAuf(x)
- elseif lift == 1 then -- Aufzug unten -> Tür UG schließen
- HBFBstgAufzugTuerUGZu(x)
- elseif lift == 2 then -- Tür UG geschlossen -> Aufzug aufwärts (hoch fahren)
- HBFBstgAufzugAufwaerts(x)
- elseif lift == 3 then -- Aufzug oben -> Tür OG öffnen
- HBFBstgAufzugTuerOGAuf(x)
- elseif lift == 4 then -- Aufzug oben -> Tür OG schließen
- HBFBstgAufzugTuerOGZu(x)
- elseif lift == 5 then -- Tür OG geschlossen -> Aufzug abfwärts (runter fahren)
- HBFBstgAufzugAbwaerts(x)
- end
- print ("aktiver Aufzug :", AufzID[x], " Lift : ", lift)
- end
- HBFBstgAufzuegeReset()
- function wait(seconds)
- local start = os.time()
- repeat until os.time() > start + seconds
- end
- function EEPMain()
- ----->> HBF Bahnsteigaufzuege bewegen
- ----->> BEGIN
- AufzCounter = AufzCounter + 1
- if AufzCounter % 5 == 1 then -- je Sekunde den aktiven Aufzug wechseln
- rndAufzID = math.random(anzAufzID) -- aus der Liste einen zufälligen Aufzug auswählen
- HBFBstgAufzugAktivieren(rndAufzID)
- end
- ----->> ENDE
- ----->> HBF Bahnsteigaufzuege bewegen
- return 1
- end
Hallo @All
Irgendwie sehe ich den Fehler nicht.
In EEPMain wird jede Sekunde ein neue Fahrstuhl per Zufall ausgewählt. Function HBFBstgAufzugAktivieren(rndAufzID) ruft den Zustand aus der Tabelle AufzZustand ab und speichert das in der Variablen lift.
Es werden die einzelnen Schritte anschließen abgearbeitet. Nachdem aber lift wieder null ist sollte wieder eins kommen und das tut er nicht.
Seht ihr den Fehler von mir ? Ich bin wahrscheinlich blind vom suchen.
g
Dirk