Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 8 von 8

Thema: Mehrere DInt vergleichen und größt Wert abspeichern

  1. #1
    Registriert seit
    13.06.2008
    Beiträge
    30
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    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
    Zitieren Zitieren Mehrere DInt vergleichen und größt Wert abspeichern  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    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.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.188
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    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
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    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.

  5. #5
    Registriert seit
    22.08.2012
    Beiträge
    99
    Danke
    19
    Erhielt 15 Danke für 14 Beiträge

    Standard

    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.

  6. #6
    Kuni ist offline Benutzer
    Themenstarter
    Registriert seit
    13.06.2008
    Beiträge
    30
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für eure Antworten

  7. #7
    Registriert seit
    04.01.2006
    Beiträge
    133
    Danke
    16
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ich habe das einmal mit -Google nach "Bubblesort" gemacht. Funktioniert heute noch einwandfrei!!

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.188
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von 1schilcher Beitrag anzeigen
    Ich habe das einmal mit -Google nach "Bubblesort" gemacht. Funktioniert heute noch einwandfrei!!
    Nur um DEN einen größten Wert zu finden braucht man nicht alles sortieren.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Step 7 Wert verschieben/abspeichern
    Von terko im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.03.2015, 10:34
  2. Antworten: 27
    Letzter Beitrag: 07.04.2011, 22:56
  3. DB Wert mit Hex Wert Vergleichen?
    Von ibanesch im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.02.2011, 14:32
  4. Uhrzeit synchron Wert abspeichern
    Von PhilippL im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 05.07.2010, 15:02
  5. Float Wert to Dword und dann zu DINT geht das?
    Von mcmatthew im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 11.12.2009, 16:50

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •