bError) THEN IF bError THEN Step := Step +1; ELSE Step := 20; END_IF END_IF 20: StationsStatus[FirstCassette].SellectedRecipeAutomatic := TrayJob.FlowName; IF NOT StationsStatus[FirstCassette].Ist.Busy THEN CMD[FirstCassette] := CloseInCMD; StationsStatus[FirstCassette].Soll.AutoStart := TRUE; Step := Step +1; END_IF 21: IF CASSETTE_MAIN[FirstCassette].TrayFeeder.TrayNumber > 0 THEN ForLoopFrom := 1+ (CASSETTE_MAIN[FirstCassette].TrayFeeder.TrayNumber)*100; ForLoopTo := 100+ (CASSETTE_MAIN[FirstCassette].TrayFeeder.TrayNumber)*100; FOR i := 1 TO ForLoopTo DO IF CASSETTE_MAIN[FirstCassette].Signal.Wafer[i].WaferStatus = WaferForProccess THEN IF NOT StationsStatus[FirstCassette].Ist.Busy THEN CMD[FirstCassette] := CloseInCMD; StationsStatus[FirstCassette].Soll.AutoStart := TRUE; END_IF RETURN; END_IF END_FOR Step := 30; END_IF 30: IF bEmpty THEN Step := 35; RETURN; END_IF IF TrayIndex < LastTray THEN TrayIndex := TrayIndex + 1; Step := Step +1; ELSE Step := 35; END_IF 31: IF CASSETTE_MAIN[FirstCassette].TrayFeeder.GetTray( SlotNr := TrayIndex, bOutError => bError) THEN Step := 21; END_IF 35: IF CASSETTE_MAIN[FirstCassette].TrayFeeder.EndOfLot() THEN Step := Step +1; END_IF 36: IF NOT StationsStatus[FirstCassette].Ist.Busy THEN Step := 40; END_IF 40: IF CASSETTE_MAIN[FirstCassette+1].TrayFeeder.EndOfLot() THEN Step := 50; END_IF 50: TrayJob.Start := FALSE; TrayBatch := TRUE; Step := 0; END_CASE]]>