|
Autor
|
Thema: Simulation unterbrechen (1661 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 |

| | (Fach-)Planer / Ausschreiber TGA HLSK (m/w/d) | | Wir sind eins der deutschlandweit führenden Bauunternehmen im Hoch- und Tiefbau. Was uns als Familienunternehmen ausmacht, ist unser hoher Leistungsanspruch. Bei uns geben über 2.000 Mitarbeitende täglich ihr Bestes, um uns, unsere Kunden und die Branche nach vorn zu bringen. Wenn du gemeinsam mit uns wachsen, zu den Besten deiner Branche gehören und die Zukunft des Bauens möglich machen willst, dann kannst du Köster ? und im Gegenzug eine ganze Menge von uns erwarten.... | | Anzeige ansehen | Feste Anstellung |
|
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 |