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

Ergebnis 1 bis 3 von 3

Thema: IF Schleifen Bedingungen

  1. #1
    Registriert seit
    17.11.2014
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Servus,

    ich sitze grade an einem Problem, konnte über die Forensuche allerdings nichts finden, da ich mir nicht mal sicher bin, ob es überhaupt möglich ist, die Sache in meinem Sinne zu umgehen und wie ich das Problem am Besten erklären kann.
    Ich automatisiere Testabläufe und dort kommt es immer wieder vor, dass es erst in den nächsten Schritt gehen kann, wenn Temperatur oder Drucksensoren ALLE über einem bestimmten Wert liegen.
    Da es eine enorme Schreibarbeit ist, dies alles immer wieder aufzurufen, wollte ich mal fragen, ob es nicht einen sehr simplen weg gibt, dies zu realisieren.
    Bsp:
    ich habe 7 Temperatursensoren mit ellenlangen Namen, die alle >= 85 Grad sein müssen,
    meine IF Zeile sieht dann ungefähr so aus:
    IF T1 > 85 AND T2 >85 AND T3 >85 .... THEN

    Meine Frage wäre jetzt, ob es eine Möglichkeit gibt, diese irgendwie zusammenzufassen, da es ja überall die selbe Bedingung ist, bspw.:
    IF (T1,T2,T3..) > 85 THEN (so frisst die Wago das nicht, das ist mir klar, es soll nur das Problem verdeutlichen).

    Hat jemand eine Idee?
    Vielen Dank für eure Hilfe und eine schöne Vorweihnachtszeit an Alle
    Zitieren Zitieren IF Schleifen Bedingungen  

  2. #2
    Registriert seit
    28.08.2014
    Beiträge
    21
    Danke
    0
    Erhielt 8 Danke für 8 Beiträge

    Standard

    Hi,
    nimm eine CASE Anweisung und eine Aktion in der Deine Prüfung ist. Also in etwa so:

    Code:
    CASE iState OF
        
        1:    // Do something
            NextStep();
        2:    // Do something
            NextStep();
        
        3:    // Do something
            NextStep();
        
    ELSE
        // ...
    END_CASE
    und in Deiner Aktion die Prüfung:

    Code:
    IF T1 > 85 AND T2 >85 AND T3 >85 .... THEN
        iState := iState + 1;
    END_IF

  3. #3
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    165
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey mach es doch mit eine FOR-Anweisung.
    Code:
    VAR
    Temp:       ARRAY[0..7] OF DINT;
    TempOK:    BOOL := FALSE;
    AllTemp:     BOOL := FALSE;
    i:               INT := 0;
    END_VAR
    
    
    TempOK := FALSE;
    
    FOR i := 0 TO 7 BY 1 DO
         IF Temp[i] < 85 THEN
              TempOK := TRUE;
         END_IF;
    END_FOR;
    
    IF TempOK = FALSE THEN
         AllTemp := TRUE;
    ELSE
         AllTemp := FALSE;
    END_IF;

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 23.05.2014, 09:30
  2. Verschiedene Spannungsebenen in einem Stecker - Bedingungen?
    Von element. im Forum Schaltschrankbau
    Antworten: 9
    Letzter Beitrag: 19.12.2012, 21:46
  3. Antworten: 5
    Letzter Beitrag: 11.09.2012, 16:49
  4. AWL nach FUP (Bedingungen)
    Von win98 im Forum Simatic
    Antworten: 33
    Letzter Beitrag: 01.12.2011, 12:35
  5. fehlende Bedingungen in Visu anzeigen...
    Von delacasa im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 15.05.2006, 09:13

Stichworte

Lesezeichen

Berechtigungen

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