Autor
|
Thema: Reihenfolge INIT Methoden (3372 mal gelesen)
|
RostigerNagel Mitglied Student

 Beiträge: 23 Registriert: 27.03.2006 eM-Plant 7.5.5 Win2k
|
erstellt am: 19. Mai. 2006 12:46 <-- editieren / zitieren --> Unities abgeben:         
Hallo, weiss jemand wie die Reihenfolge der Abarbeitung der Init Methoden festgelegt ist oder festgelegt werden kann? Problem: Im Root Netzwerk Fabrik befinden sich Unternetzwerke z.b. Lager und Kanban Steuerung. Beim Init Aufruf soll das Lager Initialbefüllt werden und in der Kanban Steuerung die Kanbans in form einer Tabelle erzeugt werden. Das Problem ist, dass zuerst die Init des Lagers gerufen wird (also BEs erzeugt werden und versuchen einen Kanban zu erwerben) bevor die Kanbans erzeugt werden. Im Moment behelfe ich mir damit die Kanbantabelle bei RESET auf den Startwert zu setzen. Da ich den Experiment Manager nutzen will, wäre es aber sauberer wenn die Kanbantabelle per Init gesetzt würde. Ich habe schon versucht die Kanban Init Methode in der Init Methode des Root Netzwerkes zu rufen...doch siehe da, diese Init Methode wird nach der Lager Init und ebenfalls nach der Kanban Init abgearbeitet. dankbar, Ich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 19. Mai. 2006 13:13 <-- editieren / zitieren -->
Hi, ich vermute mal, die einzelnen init-Methoden werden in der Reihenfolge ihrer Erzeugung im Modell aufgerufen und zwar die zuletzt Erzeugte zuerst ! Du kannst die Reihenfolge beeinflussen, indem Du einfach im Modell ein Subnetz kopierst und das ursprüngliche Subnetz mit dem kopierten Netz austauschst. Dann wird z.B. die init-Routine dieses zuletzt erzeugten Netzes als 1. aufgerufen. Gruss ------------------ Der Simulator [Diese Nachricht wurde von Simulator am 19. Mai. 2006 editiert.] |
RostigerNagel Mitglied Student

 Beiträge: 23 Registriert: 27.03.2006 eM-Plant 7.5.5 Win2k
|
erstellt am: 19. Mai. 2006 14:04 <-- editieren / zitieren --> Unities abgeben:         
Hm... das ist dann doch etwas unpraktisch würde aber gehen. Es wundert mich, dass tecnomatix eine Möglichkeit zum Steuern des Init Ablaufes nicht bedacht hat. Es kann ja schon das eine oder andere mal auftreten, dass x vor y erzeugt werden muss. Und dann immer komplett das Modell umbauen ist ein wenig hinderlich. Danke. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 19. Mai. 2006 14:16 <-- editieren / zitieren -->
Hi, Also bedacht wurde es meines Erachtens schon. Mit einer Wait - Anweisung in der jeweiligen init-Methode kannst Du ja die Anweisungsausführung zeitlich verzögern. Gruss
------------------ Der Simulator |
RostigerNagel Mitglied Student

 Beiträge: 23 Registriert: 27.03.2006 eM-Plant 7.5.5 Win2k
|
erstellt am: 19. Mai. 2006 15:37 <-- editieren / zitieren --> Unities abgeben:         
|

| Architekt (M/W/D) Ausführungsplanung für schlüsselfertigen Modulbau | Wir suchen Menschen wie Sie, die sich mit frischem Denken und tatkräftigem Handeln neuen Herausforderungen in unserem erfolgreichen Familienunternehmen stellen wollen. Bei uns bekommen Sie Freiraum, um Ihre Ideen mutig einzubringen und gemeinsam im Team spannende Aufgaben anzupacken. Mit großer Leidenschaft für modulares Bauen und flexible Raumlösungen gestalten über 1400 Kolleginnen und Kollegen täglich ein Stück Zukunft.... | Anzeige ansehen | Feste Anstellung |
|
Homer Simpson Mitglied
 
 Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 20. Mai. 2006 20:50 <-- editieren / zitieren --> Unities abgeben:          Nur für RostigerNagel
Eine wait-Anweisung ist möglicherweise keine so gute Idee, da man dann ja eine bestimmte Zeit verstreichen lassen muss (und wenn es nur eine hunderdstel Sekunde Simulationszeit ist). Selbst falls "wait 0" auch funktionieren sollte (wobei ich mir da nicht so sicher bin), so werden trotzdem evtl. andere Ereignisse, die zum Simulationszeitpunkt 0 eingereiht sind, vorher abgearbeitet, also bevor die Methode weiterläuft. Es gibt aber noch zwei andere Möglichkeiten, das Problem zu lösen: Erstens könnte man in der Init-Methode eine weitere Methode (hier z.B. namens NachInit) mittels ref(NachInit).neueAufrufkette; ausführen (ich hoffe, die Methode heißt wirklich so). Eine so aufgerufene Methode wird nach allen anderen (Init-)Methoden aber vor dem nächsten Ereignis ausgeführt. Die zweite Möglichkeit besteht darin, eine Init-Steuerung beim Ereignisverwalter einzutragen. Dazu selektiert man den Ereignisverwalter und drückt F3. Dann doppeltklickt man auf die Zeile mit InitSt und gibt in dem sich öffnenden Eingabefeld den Namen der auszuführende Methode ein (z.B. VorInit). Diese Methode wird jetzt vor allen anderen Init-Methoden ausgeführt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |