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

Ergebnis 1 bis 7 von 7

Thema: For Schleife SCL

  1. #1
    Registriert seit
    26.11.2007
    Beiträge
    48
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    mein anliegen ist folgendes
    IN SCL schreibe ich in einem FB
    mit PLCM Sim getestet

    FOR i := 1 TO 100 BY 1 DO
    z1:=z1: +1;
    END_FOR;

    Ergebnis Ist
    z1 zählt endlos hoch
    i geht bis auf 100

    meine Eklärung
    FB wird durch OB1 zyklisch aufgerufen--> dadurch wird immer wieder die“ i“ Variable von 0 auf 100 hochgezähltà z1 zählt hoch.
    Frage: Stimmt dies ?
    Dadurch ist aber die For schleife nicht so zu gebrauchen wie ich das sehe.
    Wie löst man die Aufgabe ein Programmteil soll nur X mal durch laufen werden wenn Bedingung erfüllt ist davor, mit einer For schleife ?
    Zitieren Zitieren For Schleife SCL  

  2. #2
    Registriert seit
    21.07.2008
    Beiträge
    1.066
    Danke
    51
    Erhielt 140 Danke für 136 Beiträge

    Standard

    Wie verhinderst du, dass die Schleife nur einmal aufgerufen wird? Jetzt wird ja jeden Zykluss die Forschleife aufgerufen.

    Entweder die Schleife einmal aufrufen (dann z.B. mit einem merker sperren) oder die Z variable beim Schleifenstart auf 0 setzen.

  3. #3
    Registriert seit
    11.12.2009
    Beiträge
    2.113
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Code:
    FOR i := 1 TO 100 BY 1 DO
        
    IF GESUCHT[i] := KÄSEKUCHEN THEN
        POS_KÄSEKUCHEN:=i;
    EN_IF;
    
    END_FOR;
    Vielleicht sollte man soetwas so lösen?

    Du hast ja schon dein i als Zählvariable!

    Grüße

    Marcel

  4. #4
    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

    Dann doch lieber:

    Code:
    IF du_sollst_zaehlen THEN
       FOR i := 1 TO 100 BY 1 DO
          z1:=z1 +1;
       END_FOR;
       du_sollst_zaehlen := False;
    END_IF;
    Um ducht die For-Schleife zu laufen muß man (am besten mit einer Flanke) "du_sollst_zaehlen" auf True setzen.

    Aber daran denken, keine Temp-Var dafür verwenden!
    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

  5. #5
    Registriert seit
    11.12.2009
    Beiträge
    2.113
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Ja ich hab nicht richtig gelesen!

    Ich habe es so verstanden, dass er die Stelle sucht an der er einen Treffer in der Forschleife hat.

    Grüße

    Marcel

  6. #6
    Registriert seit
    26.11.2007
    Beiträge
    48
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die Beiträge,
    das was mich erschreckt hat ist das, das die For Schleife immer wieder durchlaufen wird anstatt einmal bei einer Flanke beim Aufruf. ( Es muss also zusätzlich was geschaffen werden)
    Der Beitrag von Ralle sehe ich auch als Lösungsweg. Ich dachte ich liege mit diesem Lösungsweg nicht so günstig

  7. #7
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es kommt ja auch immer darauf an, was Du machen willst. Die Lösung von Marcel liefert z.B. den letzten Treffer, falls es mehrere gibt.

    Es kann auch gewünscht sein, dass die Schleife zyklisch nach einem Treffer sucht.

    Wenn man die Formulierung
    ein Programmteil soll nur X mal durch laufen werden wenn Bedingung erfüllt ist
    beachtet, gehört in die Anweisung noch ein Schleifenabbruch mit "EXIT".
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

Ähnliche Themen

  1. Bool Schleife in DB schreiben SCL
    Von Limette im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 02.02.2012, 22:15
  2. While Schleife in ST
    Von Snooky im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 30.11.2010, 21:50
  3. for-Schleife
    Von fai004 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 26.04.2009, 19:14
  4. FOR Schleife
    Von dietere im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 19.01.2008, 02:36
  5. For Schleife in VB 6
    Von godi im Forum Hochsprachen - OPC
    Antworten: 8
    Letzter Beitrag: 14.06.2007, 10:03

Lesezeichen

Berechtigungen

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