// Beispiel: Anzahl=5 Startsilo=DB1520
// 5 in Loopcounter schreiben
// 5(Loopcounter) + 1520(Startsilo) - 1 = 1524 --> DB1524 wird zuerst durchsucht
// --> Loop
// 5 + 1520 - 1 = DB1524
// ....
// 1 + 1520 - 1 = DB1520
// Unten: Wenn Loopcounter = 1 wird die Schleife nicht mehr durchlaufen.
L #Anzahl_Silo_DB_Nr
Loop: T #Loopcounter
L #Start_Silo_DB_Nr
+I
L 1
-I
T #Silo_Nr_Loop
// Überprüfung ob das Silo die richtige Materialnummer enthält
AUF DB [#Silo_Nr_Loop]
L #DBW_Ort_Materialnr
SLD 3
LAR1
L DBW [AR1,P#0.0]
L #Vorgabe_Materialnummer
==I
// Wenn das Silo nicht die Materialnummer enthält wird direkt zum Ende gesprungen
SPBN End1
L #Silo_Nr_Loop
T #Silo_1.SiloDB_Nr
L #DBW_Ort_Materialnr
SLD 3
LAR1
L DBW [AR1,P#0.0]
T #Silo_1.Materialnummer
// Wenn das Silo die Materialnummer enthält, wird der Zeitstempel für Entleerbereit eingelesen
L #DBW_Ort_Entleerbereitdat
SLD 3
LAR1
// Jahr
L DBB [AR1,P#2.0]
ITB
T LB 34 // Silo_1.Entleerbereitdatum(Jahr)
// Monat
L DBB [AR1,P#1.0]
ITB
T LB 35 // Silo_1.Entleerbereitdatum(Monat)
// Tag
L DBB [AR1,P#0.0]
ITB
T LB 36 // Silo_1.Entleerbereitdatum(Tag)
// Stunden
L DBB [AR1,P#3.0]
ITB
T LB 37 // Silo_1.Entleerbereitdatum(Stunde)
// Minuten
L DBB [AR1,P#4.0]
ITB
T LB 38 // Silo_1.Entleerbereitdatum(Minute)
// Sekunden
L DBB [AR1,P#5.0]
ITB
T LB 39 // Silo_1.Entleerbereitdatum(Sekunde)
CALL "GT_DT"
DT1 :=#Silo_1.Entleerbereitdatum
DT2 :=#Silo_2.Entleerbereitdatum
RET_VAL:=#Aelter_1_oder_2
U #Aelter_1_oder_2
SPBN _001
// Silo_1 ist älter
CALL "BLKMOV"
SRCBLK :=#Silo_1
RET_VAL:=#SFC_Ret_Val_1
DSTBLK :=#Silo_Ausgewaehlt
SPA _002
_001: NOP 0
// Silo_2 ist älter
CALL "BLKMOV"
SRCBLK :=#Silo_2
RET_VAL:=#SFC_Ret_Val_2
DSTBLK :=#Silo_Ausgewaehlt
_002: NOP 0
CALL "BLKMOV"
SRCBLK :=#Silo_Ausgewaehlt
RET_VAL:=#SFC_Ret_Val_3
DSTBLK :=#Silo_2
End1: NOP 0
L 1
L #Loopcounter
==I
SPB _003
LOOP Loop
_003: NOP 0
L #Silo_Ausgewaehlt.SiloDB_Nr
T #SiloDB