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

Ergebnis 1 bis 5 von 5

Thema: SCL Schleife steigt nicht aus

  1. #1
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen Kollegen,

    ich such mir seit 2 Tagen nen Wolf, warum das mit TIA mit einer 1200er nicht geht und mit einer 315 auch nicht, und im V5.5 schon.
    Die Sinnhaftigkeit sei mal dahingestellt. Ich habe ein Array[1..50, 1..10] of bool. Das 1-50 sind die Anzahl der Warenträger. 1-10 das Register der Fehlversuche. Wenn ein WT einen Fehler verursacht, soll auf die entsprechende WT-Nummer auf Position 1 true geschrieben werden. (zB Warenträger 2, Zelle 1).
    Verursacht der selbe WT im nächsten Durchlauf wieder einen Fehler, soll die Zelle 2 HI gesetzt werden.

    Register.PNG


    Code:
    FOR #l := 1 TO #WT_Anz_max BY 1 DO                                                            // Durchlaufe Warenträgernummer
        IF NOT #Fehler_auf_WT[#l] AND NOT #SR_FM THEN                                              // Wenn nicht schon ein aktueller Fehler drauf ist
            IF #WT_Nummer = #l AND #Schreibe_Daten AND #Schreibe_Daten_WT_hat_defekt AND #WT_an_Station THEN
                FOR #j := 1 TO 10 BY 1 DO                                                        // Durchlaufe Anzahl der Fehler (max 10)
                    IF NOT #WT_Defekt[#l, #j] THEN                                                 // Ist noch kein Fehler drauf
                        #WT_Defekt[#l, #j] := true;                                               // Setze dieses Bit HI
                        EXIT;                            // Springe raus (sonst würde alles sofort vollgeschrieben)
                    END_IF;
                END_FOR;
                #Fehler_auf_WT[#l] := true;          // Merker, dass nur ein Mal pro Durchlauf geschrieben werden kann
                #Lese_Daten_WT_hat_defekt := true;    // Merker nach aussen, damit Bearbeitungsstation gleich gar nicht anfängt
            END_IF;
        END_IF;
    END_FOR;
    Nun läuft die Schleife durch, und sucht nach einem noch nicht HI gesetzten Bit. If geht rein, und setzt eben dieses Bit. EXIT verlässt bedingungslos die FOR-Schleife - theoretisch. Im V5.5 geht das so!
    Im TIA füllt er mir alle 10 Bits in einem Durchlauf an.

    Mit der Anweisung "Schleife sofort verlassen" brechen Sie die Bearbeitung einer FOR-, WHILE- oder REPEAT-Schleife, unabhängig von Bedingungen, an beliebiger Stelle ab. Die Programmbearbeitung wird nach dem Abschluss der Schleife (END_FOR, END_WHILE, END_REPEAT) fortgesetzt.
    Die Anweisung hat Auswirkung auf die Programmschleife, die die Anweisung unmittelbar umgibt.
    Das steht in der Hilfe.
    Kann mir bitte jemand sagen was ich falsch mache?
    Danke im Voraus!
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort
    Zitieren Zitieren SCL Schleife steigt nicht aus  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hallo,

    Die innere Schleife wird mit Exit verlassen.
    danach wird immer

    #Fehler_auf_WT[#l] := true;

    die äußere Schleife erhöht #l um 1

    die erneute Abfrage
    IF NOT #Fehler_auf_WT[#l]

    bezieht sich doch jetzt auf #l (+1)

    Also Fehler_auf_WT[#l] nach END_FOR wird doch nie beachtet

  3. #3
    Avatar von Manfred Stangl
    Manfred Stangl ist gerade online Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard

    Hallo,
    als Ergänzung: da gibt es den SR_FM Das soll quasi eine Flanke sein, die danach durch
    SR_FM := Schreibe_Daten gesetzt wird. SR_FM ist im statischen Bereich, wird aber im InstanzDB nicht HI. bei V5.5 allerdings schon.
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort

  4. #4
    Registriert seit
    09.01.2012
    Beiträge
    466
    Danke
    25
    Erhielt 38 Danke für 35 Beiträge

    Standard

    Ich sehe nirgends das dieses SR_FM gesetzt wird.

    Aber mal angenommen:

    SR_FM ist gesetzt, so wird niemals etwas in das WT Defekt geschrieben, einen Zyklus später jedoch wird diese Schleife normal durchlaufen und es wird jedes erste bit [i,0] gesetzt.

    Beim nächsten nächsten Zyklus wird dann [i,1] gesetzt.

    Nach 500Zyklen hast alle Bits gesetzt und es ist wahrscheinlich keine 50ms gegangen.

  5. #5
    Avatar von Manfred Stangl
    Manfred Stangl ist gerade online Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hab´s denke ich gefunden. Es scheitert am Durchlauf. Wenn ich den FB von außen mit einer Flanke versorge geht es. Ich werde mich mal mit so einer internen Flanke beschäftigten.
    Danke so weit mal
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort

Ähnliche Themen

  1. Step 7 PB steigt sporadisch aus
    Von Hoffe69 im Forum Simatic
    Antworten: 28
    Letzter Beitrag: 28.05.2015, 19:00
  2. Step 5 S5-100U steigt immer wieder aus.
    Von NicoMaster1989 im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 18.06.2014, 13:04
  3. Profinet steigt aus
    Von sven im Forum Feldbusse
    Antworten: 6
    Letzter Beitrag: 13.03.2012, 09:31
  4. LWL steigt zeitweise aus
    Von Wilhelm im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 18.03.2010, 20:54
  5. sps steigt bei 35°C aus!
    Von Anonymous im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 04.07.2005, 17:09

Stichworte

Lesezeichen

Berechtigungen

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