Autor
|
Thema: umlagern steuern. (860 mal gelesen)
|
Highairman Mitglied
Beiträge: 11 Registriert: 08.12.2011
|
erstellt am: 13. Dez. 2012 14:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich benötige etwas Hilfe bei einer Methode zur umlagerung von BEs. Hier die Methode: is i:integer; do if ?= A then if A.anzahlBEs = 10 then waituntil B.bereit and B.leer prio 1; for i:=1 to 10 loop A.inhalt.umlagern (B); next; end; end; end;
Die Methode funktioniert bei mir soweit. Nun zum Problem:
Wenn meine Simulation durchgelaufen ist, befinden sich noch 3 BEs in "A" Laut Methode lagert er aber nur um, wenn 10 BEs vorhanden sind. Kann mir dort jemand behilflich sein? Stehe bei dem Problem schon einige Stunden auf dem Schlauch. 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: 13. Dez. 2012 14:36 <-- editieren / zitieren --> Unities abgeben: Nur für Highairman
Wo liegt das Problem? Soll A zum Schluss leer sein? Dann könnten Sie die EndSim-Methode benutzen, um den letzten Rest umzulagern. [Diese Nachricht wurde von Bon Simul am 13. Dez. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Highairman Mitglied
Beiträge: 11 Registriert: 08.12.2011
|
erstellt am: 13. Dez. 2012 14:48 <-- editieren / zitieren --> Unities abgeben:
genau, entschuldigung. die letzten BEs sollen auch umgelagert werden. es soll angeblich auch funktionieren, wenn ich eine "globale variable" in die station davor packe und der dann die BEs zählt und ich in der Methode auf die Variable zugreife und das mit "loop" regel, allerdings komm ich da auch nicht weiter. danke. [Diese Nachricht wurde von Highairman am 13. Dez. 2012 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: 13. Dez. 2012 15:28 <-- editieren / zitieren --> Unities abgeben: Nur für Highairman
Sie könnten auch einen Zeitabstand bis zum Ende definieren, in dem Sie alles umlagern: Code:
is i:integer; do if ?= A then if A.anzahlBEs = 10 then waituntil B.bereit and B.leer prio 1; for i:=1 to 10 loop A.inhalt.umlagern (B); next; elseif (ereignisverwalter.ende - ereignisverwalter.zeit) <= 120 then --letzte zwei Minuten waituntil B.bereit and B.leer prio 1; --alles umlagern while(A.belegt) loop A.inhalt.umlagern (B); end; end; end; end;
[Diese Nachricht wurde von Bon Simul am 13. Dez. 2012 editiert.]
[Diese Nachricht wurde von Bon Simul am 13. Dez. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Highairman Mitglied
Beiträge: 11 Registriert: 08.12.2011
|
erstellt am: 13. Dez. 2012 17:13 <-- editieren / zitieren --> Unities abgeben:
Danke für Ihre Hilfe. So funktioniert es. Aber leider habe ich eine solche Umlagerung an mehreren Stellen und muss auch meine Produktion immer wieder neu Anpassen, sodass sich die Durchlaufzeit immer wieder verändert. Gibt es auch eine alternative Lösung? Vielen Dank für Ihre Hilfe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Highairman Mitglied
Beiträge: 11 Registriert: 08.12.2011
|
erstellt am: 13. Dez. 2012 19:33 <-- editieren / zitieren --> Unities abgeben:
ich habe es mal anders versucht: hier die methode, wenn er immer 10 BEs umlagert und am Ende ein Rest in A überbleibt: is i:integer; do if ?= A then if A.anzahlBEs = 10 then waituntil B.bereit and B.leer prio 1; for i:=1 to 10 loop A.inhalt.umlagern (B); next; end; end; end; hier der Versuch, dass er am Ende den Rest von A nach B umlagert. ich habe eine globale Variable "X_Variable" eingefügt, die meine BEs zählt: is i:integer;
do if ?=A then if A.anzahlBEs = 10 then waituntil B.bereit and B.leer prio 1; for i:=1 to 10 loop A.inhalt.umlagern (B); next; elseif X_Variable < 1530 then waituntil B.bereit and B.leer prio 1; while A.belegt loop A.inhalt.umlagern (B); end; end; end; end; leider fügt er dann leider nicht mehr 10 BEs auf einmal um, sondern jeweils einzeln.
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: 14. Dez. 2012 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für Highairman
|
Highairman Mitglied
Beiträge: 11 Registriert: 08.12.2011
|
erstellt am: 14. Dez. 2012 10:35 <-- editieren / zitieren --> Unities abgeben:
|