Step 7 Mehrere DInt vergleichen und größt Wert abspeichern

Kuni

Level-1
Beiträge
39
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

habe mehrere DInt (15 Stück) die ich nun auswerten möchte. Das heißt Alle untereinander Vergleichen und den größt Wert abspeichern.
Kann mir da jemand helfen?!

Danke im Voraus

Gruß Kuni
 
Du vergleichst die ersten zwei Variablen, und speicherst den größeren Wert davon in deiner Ergebnisvariable.
Dann vergleichst du diese Ergebnisvariable mit der nächsten, speicherst davon den größten wieder usw. bis du alle 15 durch hast.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Etwa so (Pseudocode):
Code:
Maxwert := MAX(Wert_1, Wert_2);
Maxwert := MAX(Maxwert, Wert_3);
Maxwert := MAX(Maxwert, Wert_4);
...
Maxwert := MAX(Maxwert, Wert_15);

Mußt Du auch wissen welche Variable den größten Wert enthält?

Harald
 
Etwa so (Pseudocode):
Code:
Maxwert := MAX(Wert_1, Wert_2);
Maxwert := MAX(Maxwert, Wert_3);
Maxwert := MAX(Maxwert, Wert_4);
...
Maxwert := MAX(Maxwert, Wert_15);
Sollte unter SCL von S7 auch in einer Anweisung gehen:
Code:
Maxwert:= MAX (IN1:=Wert_1, IN2:=Wert_2, IN3:=Wert_3, IN4:=Wert_4, ... IN15:=Wert_15)
Bis zu 32 zu vergleichende Werte sind wohl möglich.
 
Falls dir SCL nicht liegen sollte, kannst du das Ganze auch recht elegant in AWL mit einer Schleife lösen. Vorausgesetzt du hat die Daten in einem "Raster" angelegt. Z.B. DB100.DBD200, DB100.DBD204 oder etwas ähnliches. Das Vorgehen ist dabei so wie Thomas beschrieben hat.
 
Zurück
Oben