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

Ergebnis 1 bis 7 von 7

Thema: 8 Integer Werte vergleichen

  1. #1
    Registriert seit
    09.03.2006
    Beiträge
    137
    Danke
    19
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe acht Integervariablen in einem Datenbaustein. Die Werte der Variablen können 0, 1, 2, 11,12,13,14,15,16 annehmen. Die Werte können in den acht Integervariablen in beliebiger Reihenfolge und Menge vorkommen.

    Meine Aufgabenstellung ist, herauszufinden, ob sich in den acht Integervariablen zwei oder mehr gleiche Werte befinden. Andersherum ausgedrückt: Ich muss sicherstellen, das in den acht Integerwerten alle Werte ungleich sind.

    Gibt es eine elegantere Möglichkeit als jeden Integerwert mit jedem zu vergleichen?

    Gruß HarryH
    Zitieren Zitieren 8 Integer Werte vergleichen  

  2. #2
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Nö, nur die Art und Weise wie du es machst kann elegant sein.
    Die SPS kann immer nur mit 2 Zahlen gleichzeitig arbeiten.
    Mehr kannst du also nicht vergleichen.

    Gruß wolder
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ich würde die Werte sortieren (Suche hier im Forum nach "Sortieren" oder auch "Bubble Sort"). Danach braucht man nur noch in aufsteigender Reihenfolge nachsehen, ob zwei Werte gleich sind.

    1. Sortieren.
    2. Vergleichen, ob Wert1 <> Wert 2, Wert 2 <> Wert 3 ...

    Sind zwei Werte gleich, kann man Abbrechen, da die o.g. Bedingung dann nicht erfüllt ist.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #4
    Registriert seit
    12.05.2010
    Beiträge
    32
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hallo Harry,
    platzsparend geht das mit einem doppelten LOOP / FOR. Soll das in AWL oder SCL programmiert werden?

    Gruß,
    Kaulquappe

  5. #5
    Registriert seit
    01.12.2009
    Ort
    Rosenheim
    Beiträge
    31
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Alternativ könnte man auch 9 Bits definieren, eins für jeden Wert, da es ja recht wenig Werte sind. Dann einfach vor jedem Durchlauf alle 9 ablöschen und die 8 Int Werte abfragen.
    Also z.b. Int1 =0 (erstes Bit abfragen ob gesetzt, wenn nicht erstes Bit setzen).
    Int2 = 0 -> erstes Bit abfragen ob gesetzt. Bit ist schon gesetzt -> 2 gleiche werte -> dann einfach die gewünschte Reaktion.

    Nicht die eleganteste Lösung, aber für 9 Werte durchaus realisierbar und auch wesentlich schneller als z.B. Bubblesort.

    Gruß
    Matthias

  6. #6
    Avatar von HarryH
    HarryH ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.03.2006
    Beiträge
    137
    Danke
    19
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Danke für die Anregungen!

    @Kaulquappe
    Muss AWL verwendet werden.

    Gruß HarryH

  7. #7
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich bin zwar nicht Kaulquappe, aber ja. Der Loop-Befehl geht nur in AWL oder SCL.

    Mit FUP könntest du auch mit Sprüngen arbeiten, was in etwa gleich wäre, nur viel schwerer und unübersichtlicher.

    Gruß wolder
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

Ähnliche Themen

  1. Antworten: 27
    Letzter Beitrag: 07.04.2011, 22:56
  2. integer 32Bit in integer 16 Bit wandeln
    Von slk230-power im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 09.11.2009, 22:35
  3. Integer in Hex
    Von snowkopp im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 22.09.2009, 20:42
  4. Werte in einem DB suchen und vergleichen
    Von Kodan im Forum Simatic
    Antworten: 48
    Letzter Beitrag: 25.02.2009, 18:06
  5. Umwandlung Integer(32bit) in Integer(16bit)
    Von Kojote im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.08.2005, 10:56

Lesezeichen

Berechtigungen

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