Hallo Forum,
ich habe für ein Lager ein Regalbediengerät mit Hilfe einer Einzelstation nachgebildet, da für mich nur die Zeiten relevant sind. Über einen Generator wird eine Methode aufgerufen, die 2Tische (Einzelstationen) mit BEs aus dem Lager versorgen soll. Einen Ausschnitt der Methode habe ich unten angeführt für den Fall, dass beide Tische leer sind. Dabei sind:
-Auftragsliste: Tabelle mit erstellten Aufträgen
-Tabelle RBG_Standort[2,1],[3,1]:aktueller Standort RBG (wird in BestFahrzeit zur Ermittlung der Zeiten benötigt)
-RBG_Standort[2,3],[3,3],[2,4],[3,4]: Standorte der Tische
Leider wird nur das 1.BE umgelagert. Dies lässt sich umgehen indem das 2.BE über eine 2.Einzelstation umgelagert wird(d.h.über ein RBG2), was
jedoch keine sehr elegante Lösung ist. Ich vermute deshalb der Fehler besteht darin, dass die Methode zu einem Zeitpunkt abläuft, und ein Einzelplatz zu diesem Zeitpunkt nur einmal belegt werden kann. Das 2.Problem ist, dass die Zeiten für das RBG zwar ermittelt, aber
nicht abgearbeitet werden.(Zeit auf dem Ereignisverwalter bleibt unverändert) Was habe ich bei der Erstellung der Methode prinzipiell
falsch gemacht?
Gruß Björn
is
x1pos,x2pos,y1pos,y2pos:integer;
Pal1, Pal2 :string;
do
Pal1:= Auftragsliste[2,1];
Pal2:= Auftragsliste[3,1];
if current.tisch1.belegt=false and current.tisch2.belegt=false
then
for x1pos:=1 to regal.xdim loop
for y1pos:=1 to regal.ydim loop
if Regal[x1pos, y1pos].inhalt.name=Pal1 then
RBG_Standort[2,7]:=x1pos;
RBG_Standort[3,7]:=y1pos;
exitloop 2;
else exitloop;
end;
next;
next;
for x2pos:=1 to regal.xdim loop
for y2pos:=1 to regal.ydim loop
if Regal[x2pos, y2pos].inhalt.name=Pal2 then
RBG_Standort[2,8]:=x2pos;
RBG_Standort[3,8]:=y2pos;
exitloop 2;
else exitloop;
end;
next;
next;
RBG.Ruestzeit:=BestFahrzeit(x1pos,y1pos);
RBG_Standort[2,1]:=RBG_Standort[2,7];
RBG_Standort[3,1]:=RBG_Standort[3,7];
Regal[x1pos, y1pos].inhalt.umlagern(RBG);
RBG.Bearbeitungszeit:=BestFahrzeit(RBG_Standort[2,3],RBG_Standort[3,3])+2*Uebergabezeit;
RBG_Standort[2,1]:=RBG_Standort[2,3];
RBG_Standort[3,1]:=RBG_Standort[3,3];
RBG.inhalt.umlagern(Tisch1);
RBG.Ruestzeit:=BestFahrzeit(x2pos,y2pos);
RBG_Standort[2,1]:=RBG_Standort[2,8];
RBG_Standort[3,1]:=RBG_Standort[3,8];
Regal[x2pos, y2pos].inhalt.umsetzen(RBG);
Regal.Inhaltsliste(Inhaltsliste);
RBG.Bearbeitungszeit:=BestFahrzeit(RBG_Standort[2,4],RBG_Standort[3,4])+2*Uebergabezeit;
RBG_Standort[2,1]:=RBG_Standort[2,4];
RBG_Standort[3,1]:=RBG_Standort[3,4];
RBG.inhalt.umlagern(Tisch2);
RBG.Erholzeit:=BestFahrzeit(0,1);
RBG_Standort[2,1]:=RBG_Standort[2,5];
RBG_Standort[3,1]:=RBG_Standort[3,5];
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP