Autor
|
Thema: Fahrzeug startet nicht vor 6:00 Uhr (538 mal gelesen)
|
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 16. Jan. 2008 08:56 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich hab ein Problem das ich mir nicht erklären kann. Ein Fahrzeug soll eine bestimmte Anzahl von Bes aufnehmen und erst ab einem bestimmten Zeitpunkt losfahren, die Daten kommen aus einer Excel Datei. Funktioniert auch alles ausser das Fahrzeug soll vor 6:00 Uhr losfahren. Hier mein Quellcode:
Code:
is Gb,i:integer; StartZeit:time; do StartZeit:=Str_to_time(Fahrplan[1,1]); Print StartZeit; Gb:=Fahrplan[2,1]; If @.Status="Leer" then For i:=1 to Gb loop waituntil Lager.belegt prio 1; Lager.Inhalt.umlagern(@) next; @.Status:="Beladen"; @.dreheBild; @.dreheBild; Waituntil Ereignisverwalter.Zeit = StartZeit prio 1; @.rueckwaerts := true; end; If @.Status="Beladen" then for i:=1 to Gb loop @.inhalt.umlagern(KundeLager); next; @.Status:="Leer"; @.dreheBild; @.dreheBild; Fahrplan.EntferneZeile(1); @.rueckwaerts:=false; end;end;
Hier der Inhalt der ExcelDatei: 4:0:0.0 | 10 6:0:0.0 | 10 8:0:0.0 | 15 10:0:0.0 | 5 12:0:0.0 | 10 14:0:0.0 | 15Vllt. sieht ja jemand das Problem. Der Ereignisverwalter ist auf die Startzeit 0:0:0.0 eingestellt. MFG Patrick
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Jan. 2008 09:38 <-- editieren / zitieren -->
wo sind denn "@.anhalten" bzw. "@.fahren" in Deiner Methode ? ------------------ Der Simulator WSL, Bruxelles |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 16. Jan. 2008 10:06 <-- editieren / zitieren --> Unities abgeben:
Ich setz es durch @.rückwaerts:=true/false in bewegung. Es fährt ja auch wunderbar hin und her, nur leider nicht vor 6. Aber anhalten und fahren ist natürlich eleganter. Da es wirklich nur von einem Ende zum anderen fährt reicht das ja im Moment so. [Diese Nachricht wurde von pom am 16. Jan. 2008 editiert.] [Diese Nachricht wurde von pom am 16. Jan. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Jan. 2008 11:02 <-- editieren / zitieren -->
Code: Waituntil Ereignisverwalter.Zeit = StartZeit prio 1;
Hierzu muss es ein Simulationsereignis geben mit einem Zeitstempel=Startzeit ! Gibt es so ein Ereignis während Deines Simulationslaufes ? Versuchs mal mit >=
------------------ Der Simulator WSL, Bruxelles |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 16. Jan. 2008 11:16 <-- editieren / zitieren --> Unities abgeben:
|
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 16. Jan. 2008 12:50 <-- editieren / zitieren --> Unities abgeben:
Da bin ich zu voreilig gewesen. Hab jetzt kontrolliert wann die BEs bzw. das Fahrzeug ankommt. Es kommt um 6:0:0.0 Uhr an, obwohl es um 4:0:0.0 losfahren sollte und ein Fahrtweg von 0 sec hat.... Mir kommt es vor als wenn die Simulationszeit von 0 Uhr bis 2 Uhr normal läuft un dann einen sprung auf 6 Uhr macht. Was könnte der Grund dafür sein? Die eM-Plant Version ist 7.5.5 MFG Patrick [Diese Nachricht wurde von pom am 16. Jan. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Jan. 2008 14:53 <-- editieren / zitieren -->
Du kennst das Prinzip der ereignisorientierten bzw. diskreten Simulation, oder ? Ereignisse werden in einer sog. Ereignisliste (s. auch Ereignisverwalter) chronologisch eingereiht und entsprechend abgearbeitet. Das ist korrekt so und hat nichts mit der Version zu tun. Wenn Du um Punkt 6:00h ein Fahrzeug starten willst, so solltest Du ein Ereignis fuer diesen Zeitpunkt generieren z.B. via "methaufr...." ------------------ Der Simulator WSL, Bruxelles [Diese Nachricht wurde von Simulator am 16. Jan. 2008 editiert.] |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 16. Jan. 2008 15:20 <-- editieren / zitieren --> Unities abgeben:
Das es Zeitsprünge während des Simulationslaufes gibt ist mir bekannt. Das erklärt aber nicht weshalb ein Ereignis übersprungen wird, auf welches eine bereits aufgerufene Methode wartet. Das Problem war/ist das ein "Waituntil" Befehl nicht als Ereignis erkannt und deswegen übersprungen wird. Dann versuch ich es auf einen anderen Weg. Danke für die Hilfestellung Patrick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Jan. 2008 16:33 <-- editieren / zitieren -->
Zitat:
Das erklärt aber nicht weshalb ein Ereignis übersprungen wird, auf welches eine bereits aufgerufene Methode wartet.
Doch das erklärt alles !!!! Mit waituntil ereignisverwalter.zeit=6:00h wartet das System auf die Erfüllung der Bedingung "Ereignisverwalter.zeit = 6:00h" und reiht nicht ein Ereignis um 6:00h ein. Wenn allerdings kein Ereignis für 6:00h eingereiht wurde, wird die waituntil-Bedingung nie erfüllt. Zitat:
Das Problem war/ist das ein "Waituntil" Befehl nicht als Ereignis erkannt und deswegen übersprungen wird.
Dies ist auch kein Problem, da der waituntil-Befehl grundsätzlich keine Ereignisse einreiht - wieso auch? das kannst mit methaufr s.Hilfe ------------------ Der Simulator WSL, Bruxelles
[Diese Nachricht wurde von Simulator am 16. Jan. 2008 editiert.] |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 17. Jan. 2008 10:47 <-- editieren / zitieren --> Unities abgeben:
Ich hab alles mal umgeschrieben. Jetzt hab ich aber ein anderes Problem. Die Methode und das Modell ist als Screenshot angehängt. In der Console sieht man das Problem das ich jetzt habe. Geplante Startzeit 4:00h Losgefahren um ca. 4:0h. i.O. Geplante Startzeit 8:00h Losgefahren um 12:0h. ?? Was ist hab ich falsch gemacht? MFG Patrick
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 17. Jan. 2008 11:19 <-- editieren / zitieren -->
4h + 8h = 12h , oder ? der Zeitwert in "methaufr" verzögert den Methodenaufruf, ist also ein relativer- und kein absoluter Wert (s. Hilfe)!!!!
------------------ Der Simulator WSL, Bruxelles |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 17. Jan. 2008 11:24 <-- editieren / zitieren --> Unities abgeben:
|