|
Autor
|
Thema: Teile aus Lager an Parallelstation (1422 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:         
|

| | Elektrokonstrukteur für Pharmaanlagen (m/w/d) | | Was unsere Kunden von ihren Technologielösungen erwarten? Das nächste Level! Das gelingt unserem Team bei FERCHAU Tag für Tag. Wir suchen dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologien und für alle Branchen von der ersten Idee bis zur serienreifen Produktion. Den technologischen Background bringst du mit deiner Berufserfahrung bereits mit.... | | Anzeige ansehen | Elektrotechnik, Elektronik |
|
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 |