|
Autor
|
Thema: Simulation unterbrechen (1745 mal gelesen)
|
uobeg2 Mitglied
 Beiträge: 4 Registriert: 17.01.2011 emPlant 9.0
|
erstellt am: 17. Jan. 2011 14:15 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich möchte gerne einen externen Optimierer mit meinem Simualtionsmodell koppeln. Dafür simuliert die Simulation eine gewisse Zeit und soll dann eine Datei in einen Ordner schreiben. Der Optimierer überprüft, ob die Datei vorhanden ist und beginnt dann seine Rechnungen (ca. 5 min) und endet damit eine neue Datei in den Ordner zu legen. Wenn diese neue Datei vorhanden ist, soll die Simulation diese einlesen und wieder starten. Wie kann ich meine Simualtion für eine bestimmte Zeit anhalten und dann wieder starten lassen? (Die Simulationszeit soll in dieser Zeit nicht weiterlaufen) Kann mir da jemand helfen? - waituntil existsFile(Name) prio 1 krieg ich nicht zum Laufen (error: "der Ausdruck enthält keine externen Abhängigkeiten" , ich denke das geht nur mit internen Bausteinen/Methoden) - ref(obj).methcall(10) - geht auch nicht, da in diesem Fall die Simulation weiterläuft Habt ihr sowas schon mal gemacht? Habt Ihr Ideen? Bin dankbar für jede Art der Problemlösung! Vielen Dank! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
math4fun Mitglied
 
 Beiträge: 167 Registriert: 12.12.2005
|
erstellt am: 18. Jan. 2011 12:10 <-- editieren / zitieren --> Unities abgeben:          Nur für uobeg2
Hi Uobeg2, Plant Simulation soll beispielsweise 2 Sekunden warten und dann wieder nachsehen, ob der Optimierer fertig ist und eine Datei geschrieben hat. Probiere die Methode sleep aus. Etwa so: repeat sleep(2); until existsFile(Name); ------------------ PM www.math4fun.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uobeg2 Mitglied
 Beiträge: 4 Registriert: 17.01.2011 emPlant 9.0
|
erstellt am: 18. Jan. 2011 17:20 <-- editieren / zitieren --> Unities abgeben:         
Danke math4fun, deine Version funktioniert in folgender Weise: repeat sleep(2,true) until existsFile(pfad); ich habe noch eine zweite Möglichkeit gefunden, auch in Form einer Endlossschleife, die bei den ersten Langzeitsuchvorgängen ein wenig stabiler läuft boole := existsFile("C:\text.txt"); boole := NOT(boole); root.Ereignisverwalter.stop; while boole loop print "noch nicht"; boole := existsFile("Z:\PPlanTimpeGeschrieben2.txt"); boole := NOT(boole); end; root.Ereignisverwalter.start; Vielen Dank!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| | Teamleiter Vertrieb Innendienst Projekte | Wir sind Winterhalter, der Spülspezialist aus Meckenbeuren. Mit über 2.000 Mitarbeitern an über 40 Standorten in aller Welt gehören wir zu den Marktführern der Großküchentechnik. Tag für Tag arbeiten unsere Mitarbeiter am perfekten Spülergebnis. Gehen neue Wege. Setzen Standards im Markt und begeistern Kunden.
- Wir suchen eine engagierte Persönlichkeit, die die eigenständige ...
| | Anzeige ansehen | Leitung, Teamleitung |
|
tsx Mitglied
 
 Beiträge: 103 Registriert: 06.03.2010
|
erstellt am: 18. Jan. 2011 18:20 <-- editieren / zitieren --> Unities abgeben:          Nur für uobeg2
Der Ansatz ist ganz gut, aber machs doch lieber so. Vorteil: Plant Simulation braucht weniger Ressourcen, da die Endlosschleifen nur im Sekundenrythmus checkt, ob die Datei da ist. Code:
is boole:boolean do boole := existsFile("C:\text.txt"); boole := NOT(boole); root.Ereignisverwalter.stop; while boole loop print "noch nicht"; boole := existsFile("Z:\PPlanTimpeGeschrieben2.txt"); boole := NOT(boole); sleep(1); end; root.Ereignisverwalter.start; end;
------------------ Grüße, tsx  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |