(SensorID : integer; Bug : boolean)
is
kode:string;
objekt
bject;
do
--anhalten
@.angehalten:=true;
-- objekt aus sensorliste lesen
objekt:=self.~.sensorListe[1,sensorID];
-- was ist zu tun?
kode:=self.~.prozess[2,self.~.schritt_var.wert];
-- mögliche Kombi unload - load - walk
-- unload - walk
-- load - walk
if kode = "unload" then
-- wenn beladen , teil auf virtPlace zwischen-ablegen
if @.belegt then
@.inhalt.umlagern(self.~.virtPlace);
end;
waituntil objekt.bearbeitungFertig prio 1;
objekt.bearbeitungFertig:=false;
@.statUnloadingTime:=@.statUnloadingTime+self.~.prozess[3,self.~.schritt_var.wert];
wait(self.~.prozess[3,self.~.schritt_var.wert]);
objekt.inhalt.umlagern(@);
self.~.schritt_var.wert:=self.~.schritt_var.wert+1;
kode:=self.~.prozess[2,self.~.schritt_var.wert];
if kode="walk" then
@.angehalten:=false;
self.~.schritt_var.wert:=self.~.schritt_var.wert+1;
else
-- load and walk
@.statLoadingTime:=@.statUnloadingTime+self.~.prozess[3,self.~.schritt_var.wert];
wait(self.~.prozess[3,self.~.schritt_var.wert]);
if self.~.virtPlace.belegt then
self.~.virtPlace.inhalt.umlagern(objekt);
end;
self.~.schritt_var.wert:=self.~.schritt_var.wert+2;
@.angehalten:=false;
end;
elseif kode = "load" then
-- teil ablegen und dann weitergehen
waituntil objekt.leer and objekt.bereit prio 1;
@.statLoadingTime:=@.statUnloadingTime+self.~.prozess[3,self.~.schritt_var.wert];
wait(self.~.prozess[3,self.~.schritt_var.wert]);
@.inhalt.umlagern(objekt);
self.~.schritt_var.wert:=self.~.schritt_var.wert+2;
@.angehalten:=false;
end;
-- wenn der Prozess fertig ist, bei 1 neu beginnen
if self.~.schritt_var.wert > self.~.prozess.yDim then
self.~.schritt_var.wert:=1;
end;
end;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP