Autor
|
Thema: Teile aus Lager an Parallelstation (1198 mal gelesen)
|
R.P. Mitglied
Beiträge: 41 Registriert: 06.10.2014
|
erstellt am: 26. Feb. 2015 08:56 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte ein Pufferlager vor mehreren Maschinen einrichten, aus dem auf einmal mehrere Teile auf einmal durch eine Parallelstation an die Maschinen übergeben werden. Wenn ich richtig liege übergibt der untere Befehl aus dem Lager alle Teile an die Parallelstation? Lager.cont.move(Parallelstation); Kann ich auch einrichten, dass nur eine feste Anzahl z.B. 10 übergeben werden? Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 26. Feb. 2015 09:05 <-- editieren / zitieren --> Unities abgeben: Nur für R.P.
|
R.P. Mitglied
Beiträge: 41 Registriert: 06.10.2014
|
erstellt am: 26. Feb. 2015 10:27 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort. Meine Methode sieht wie folgt aus. is i:integer; do if ?=Lager then -- Warten bis Lager voll ist und Maschine Teile aufnehmen kann if Lager.numMU > Kapazität_Parallelstation then waituntil Parallelstation.operational and Parallelstation.empty prio 1; -- Alle Teile auf einmal übergeben for i:=1 to Kapazität_Parallelstation loop Lager.cont.move(Parallelstation); next; end; end; end; Nach einigen Sekunden Simulation bricht diese ab mit dem Fehler in der Zeile "Lager.cont.move" mit der Meldung "Ein void kann keine methode move empfangen".
Weiß jemand wie ich dies beheben kann? Das Lager hat eine Kapazität von 300 (wird über eine init Methode eingestellt, die Parallelstation hat eine Kapazität von 10). Somit soll später eine batch Produktion mit Lager simuliert werden. Danke im Voraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 26. Feb. 2015 10:42 <-- editieren / zitieren --> Unities abgeben: Nur für R.P.
|
R.P. Mitglied
Beiträge: 41 Registriert: 06.10.2014
|
erstellt am: 01. Mrz. 2015 09:48 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 01. Mrz. 2015 16:51 <-- editieren / zitieren --> Unities abgeben: Nur für R.P.
Ich denke das ist das Problem. In der Eingangssteuerung warten dann eine ganze Menge Methoden und alle versuchen, wenn die Bedingung erfüllt ist, Teile umzulagern. Sie können überprüfen, ob es hier ein Problem gibt. Schauen Sie unter Debugger - Suspendierte Methoden anzeigen, ob mehrals die gleiche Methode suspendiert ist. Lösen können Sie das Problem, indem Sie die Auslagermethode durch einen Generator aufrufen lassen. Sie brauchen dann kein waituntil. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R.P. Mitglied
Beiträge: 41 Registriert: 06.10.2014
|
erstellt am: 01. Mrz. 2015 18:57 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 01. Mrz. 2015 22:54 <-- editieren / zitieren --> Unities abgeben: Nur für R.P.
Sie müssen Die Methode etwas umbauen. Der Generator muss die Methode immer wieder aufrufen und wenn die Bedingung erfüllt ist, muss das Umlagern angestoßen werden. Code:
is i:integer; do if ?=Lager then -- Warten bis Lager voll ist und Maschine Teile aufnehmen kann if Lager.numMU > Kapazität_Parallelstation and Parallelstation.operational and Parallelstation.empty then -- Alle Teile auf einmal übergeben for i:=1 to Kapazität_Parallelstation loop Lager.cont.move(Parallelstation); next; end; end; end;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |