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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Schleife in SCL

  1. #1
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    habe in SCL mal folgende Schleife gebastelt:

    Code:
    IF Merker THEN
      FOR index := 25 TO 2 BY -1 DO
         ArrayOfUDT[index] := ArrayOfUDT[index - 1];
      END_FOR;
      Merker := 0;
    END_IF;

    DB10: Array[1..25] of UDT1; Name Test


    Wenn ich jetzt nur den Index[1] im DB10 mit Zahlenwerten vorbesetze, dann würde ich erwarten, dass nach einem Schleifendurchlauf auch der Index[2] mit den Zahlenwerten aus Index[1] belegt ist.

    Dem ist zwar auch so; allerdings sind auch Index[3] bis Index[25] mit den gleichen Zahlen belegt. Warum ist das so?

    Diese sollten doch auch weiterhin alle Null aufweisen.
    LG
    spirit
    Zitieren Zitieren Schleife in SCL  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    weil dein Merker nicht Flankengetriggert ist ... wie oft denn noch?!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    ... aber ich setze diesen doch am Ende eines Schleifendurchlaufes zurück!

    Habe trotzdem mal ne Flanke eingebaut, aber gleiches Ergebnis.
    LG
    spirit

  4. #4
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    So, bin ein kleines Stückchen weiter.

    "Merker" ist in dem FB als IN_OUT deklariert. Wenn ich nun beim Aufruf "Merker" eine boolsche Variable übergebe und diese steuere, dann funktioniert es.

    Allerdings soll es so sein, dass "Merker" im FB selbst auf Status 1 gesetzt wird - und dann klappt es plötzlich nicht mehr; woran liegt das?
    LG
    spirit

  5. #5
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    "Merker" ist in dem FB als IN_OUT deklariert. Wenn ich nun beim Aufruf "Merker" eine boolsche Variable übergebe und diese steuere, dann funktioniert es.

    Allerdings soll es so sein, dass "Merker" im FB selbst auf Status 1 gesetzt wird - und dann klappt es plötzlich nicht mehr; woran liegt das?
    Im FB auch als Stat deklariert? wird er auch wirklich nur einmal auf 1 gesetzt und nicht durch die vorhergehende bedingung immer auf 1 gehalten?
    Das hat definitiv nichts mit der Schleife zu tun sondern dein Merker wird durch irgendwas immer vor der Schleife auf 1 gehalten.

    mfG René

  6. #6
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Hallo René,

    ich habe vor der Schleife ein "Case Schrittkette of" programmiert und da:

    Merker := (Schrittkette = 7);


    Und danach gleich die Schleife:

    Code:
    IF Merker THEN
      FOR index := 25 TO 2 BY -1 DO
         ArrayOfUDT[index] := ArrayOfUDT[index - 1];
      END_FOR;
      Merker := 0;
    END_IF;

    Insofern sollte hier doch der Merker nicht auf 1 gehalten werden, oder?
    LG
    spirit

  7. #7
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Wie oft ist denn (Schrittkette = 7) erfüllt?

  8. #8
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Wie oft ist denn (Schrittkette = 7) erfüllt?
    Na eigentlich nur einmal:

    Code:
    IF Eingang THEN
      Schrittkette := 7;
    END_IF;
    Habe das zu Testzwecken so programmiert ...
    LG
    spirit

  9. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Funktioniert es, wenn Du außen beim FB-Aufruf am IN_OUT eine DB-Variable (DBabc.DBXd.e) statt einem Merker (Mx.y) dranhängst?

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #10
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von spirit Beitrag anzeigen
    Na eigentlich nur einmal:

    Code:
    IF Eingang THEN
      Schrittkette := 7;
    END_IF;
    Habe das zu Testzwecken so programmiert ...
    Und "Eingang" ist eine Flanke?
    Und Schrittkette wird danach wieder auf 0 gesetzt?

  11. Folgender Benutzer sagt Danke zu vollmi für den nützlichen Beitrag:

    spirit (16.10.2014)

Ähnliche Themen

  1. Step 7 Unterschied zwischen IF- Schleife und While-Schleife
    Von Vokal12 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 29.10.2013, 22:52
  2. DBs in Schleife SCL
    Von WinniePooh im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 31.10.2012, 14:00
  3. For Schleife SCL
    Von Gucky_av im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 19.09.2012, 18:58
  4. Bool Schleife in DB schreiben SCL
    Von Limette im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 02.02.2012, 22:15
  5. While Schleife in ST
    Von Snooky im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 30.11.2010, 21:50

Lesezeichen

Berechtigungen

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