Autor
|
Thema: Lager Reihen durchsuchen und bestimmte Mengen auslagern (2314 mal gelesen)
|
Mautaban Mitglied
Beiträge: 44 Registriert: 29.09.2014
|
erstellt am: 27. Nov. 2014 10:27 <-- editieren / zitieren --> Unities abgeben:
Hi !In meinem Lager sind die Teile folgendermaßen sortiert 1 2 3... X 1 TeilA TeilB 2 TeilA TeilB 3 TeilA TeilB ... .. Y ICh möchte nun zum Beispiel von Teil A eine bestimmte Menge umladen. Wenn ich das ganze per loop gestalte funktioniert es auch allerdings sind bei der zweiten Anfrage die Lagerplätze leer. Ich bräuchte eine Methode die sozusagen die Reihen durchgeht bis ein Teil gefunen wird und ab dann die geforderte Menge von den folgenen Pläzen entnimmt. Ich habs mit dem finden Befehl probiert allerdings looped die Methode dann das gesamte Lager durch im Prinzip müsste der loop stoppten sobald ein Teil entdeckt wird und sich die Koordinaten merken und dann im nächsten schritt angefangen von dieser Koordinate Z Teile umzulagern. Kann mir irgendjemand einen Tip geben was das angeht?
Grüße!! 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: 27. Nov. 2014 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für Mautaban
Zitat:
im Prinzip müsste der loop stoppten sobald ein Teil entdeckt wird und sich die Koordinaten merken und dann im nächsten schritt angefangen von dieser Koordinate Z Teile umzulagern
also so ungefähr:
Code:
for x:=1 to lager.xDim loop for y:=1 to lager.yDim loop if lager.pe(x,y).inhalt /= void then if lager.pe(x,y).inhalt.name="Teil" then exitLoop 2; end; end; next; next;--start koord x,y for m:=0 to z-1 loop lager.pe(x,y+m).inhalt.umlagern(ziel); wait(0.1); --vielleicht notwendig z.B. bei Puffern next;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mautaban Mitglied
Beiträge: 44 Registriert: 29.09.2014
|
erstellt am: 27. Nov. 2014 14:01 <-- editieren / zitieren --> Unities abgeben:
Hey das ganze funkioniet einwandfrei! Ein Problem taucht allerdings auf. Wenn zBsp nur noch ein Teil im Lager ist aber Z=5 ist also 5 umgelagert werden sollen hält die methode an da man ja VOID nicht umlagern kann. 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: 27. Nov. 2014 14:03 <-- editieren / zitieren --> Unities abgeben: Nur für Mautaban
dann müssten Sie vor dem Umlagern checken, ob der Platz belegt ist Code:
for m:=0 to z-1 loop if lager.pe(x,y+m).inhalt /= void then lager.pe(x,y+m).inhalt.umlagern(ziel); wait(0.1); --vielleicht notwendig z.B. bei Puffern end; next;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mautaban Mitglied
Beiträge: 44 Registriert: 29.09.2014
|
erstellt am: 27. Nov. 2014 14:12 <-- editieren / zitieren --> Unities abgeben:
Stimmt logisch Genauso hab ich das auch schon gemacht im Modell. Bin grad nur so ausgelaugt, dass ich nicht mehr richtig denken kann off topic: Das ganze Simulieren gefällt mir recht gut. Haben Sie einen Tipp bei welchen Firmen Abschlussarbeiten im Bereich Plant Simulation möglich sind? 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: 27. Nov. 2014 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für Mautaban
|
Mautaban Mitglied
Beiträge: 44 Registriert: 29.09.2014
|
erstellt am: 27. Nov. 2014 14:35 <-- editieren / zitieren --> Unities abgeben:
Leider habe ich keine Kenntnisse in SQL oder C++. Sonst hätte ich auch nicht so viele Probleme in Plant Simulation Also von Haus aus Programmierer zu sein ist für viele Unternehmen Vorraussetzung bei SIMPLAN wird zBsp auch eine höhere Programmiersprache vorausgesetzt. Übrigens den Code habe ich jetzt so geschrieben und er funktioniert per Void hats irgendwie nicht so gut geklappt:
Code: for m:=0 to z-1 loop if Lager[x,y].belegt then Lager.pe(x,y+m).inhalt.umlagern(Demontage) else-- wait(0.1) end; next; end;
[Diese Nachricht wurde von Mautaban am 27. Nov. 2014 editiert.] 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: 27. Nov. 2014 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für Mautaban
|
Mautaban Mitglied
Beiträge: 44 Registriert: 29.09.2014
|
erstellt am: 27. Nov. 2014 14: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: 27. Nov. 2014 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für Mautaban
|
Mautaban Mitglied
Beiträge: 44 Registriert: 29.09.2014
|
erstellt am: 02. Dez. 2014 15:58 <-- editieren / zitieren --> Unities abgeben:
Ein PRoblem tritt mittlerweile auf wenn das Modell länger läuft. Das Lager entleert sich und die Methode versucht Lagerplätze anzusprechen welche nicht existieren. Der Fehler lautet folglich "ein "void" kann keine Methode Cont. empfangen" xPosition = 8 und YPosition =100 Von dieser Position an versucht die Mthode wiederum Lagerplätze mit Inhalt anzusprechen die aber nicht existieren. 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: 02. Dez. 2014 18:49 <-- editieren / zitieren --> Unities abgeben: Nur für Mautaban
|