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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Unklarheit bei SCL...

  1. #11
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.793
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja ... stimmt ...
    Ich hatte auch zunächst wegen der falschen Einrückung des IF's die falschen Schlüsse gezogen. Man schaut halt erst so "mal eben" drauf und so ist es dann - sorry.

    Ganz generell - ein IF wirkt IMMER bis zum nächsten END_IF.
    Verschaltelte IF's kannst du dir im Grund wie eine Reihenschaltung von Bedingungen vorstellen (also eine UND-Verschachtelung).

    Gruß
    Larry

  2. #12
    petzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Vielen Dank LL für deine Unterstützung!

    Dann ist (zumindest) das jetzt klar...
    Grüße
    petzi

  3. #13
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.311
    Danke
    932
    Erhielt 3.323 Danke für 2.685 Beiträge

    Standard

    Zitat Zitat von petzi Beitrag anzeigen
    D.h. nur wenn der Eingang_1 gerade in dem Zyklus den Status "1" hat, in dem auch der Timerausgang noch den Status "1" hat, kann dem "State_ST_2" der Wert 14 zugewiesen werden.

    Stimmt's so?
    Ich würde es so formulieren:

    Der Timerausgang "actFlag_R23" ist alle 1,5 Sekunden genau 1 Zyklus lang true.
    Nur in diesem Zyklus wird geschaut, ob "Eingang_1" auch 1 (true) ist und wenn ja, dann "State_ST_2" der Wert 14 zugewiesen.
    "Eingang_1" kann genau in diesem Zyklus 1 geworden sein oder auch schon länger anstehen (was viel wahrscheinlicher ist).

    Sowas macht man, um Abläufe zu synchronisieren oder auf feste Zeitraster zu takten.
    In der Elektronik nennt man sowas D-Flipflop.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #14
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von petzi Beitrag anzeigen
    D.h. nur wenn der Eingang_1 gerade in dem Zyklus den Status "1" hat, in dem auch der Timerausgang noch den Status "1" hat, kann dem "State_ST_2" der Wert 14 zugewiesen werden.

    Stimmt's so?
    Sagte ich das nicht schon?
    Zitat Zitat von Paule Beitrag anzeigen
    Mit dem Timer Ausgang wird die Zeit frisch gestartet und der Eingang 1 abgefragt.
    Wenn dieser in diesem Moment High ist wird die Schrittkette auf Schritt 14 gestellt.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  5. #15
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Und hier noch zu meiner ersten Antwort:
    Code:
    //1) Hat denn der Timerausgang "actFlag_R23" überhaupt eine Auswirkung 
    // auf die nachfolgende IF-Anweisung 
     
               curr_time_R23 := S_ODT (T_NO:=T23, 
                                          S:=S5Timer_flag_R23, 
                                         TV:=T#1S500ms,                                                                                 R:=FALSE, 
                                         BI:=biVal_R23, 
                                          Q:=actFlag_R23); 
     
    // nachfolgende IF-Anweisung:
     
            IF  (S5Timer_flag_R23 = false) THEN                                 
                 S5Timer_flag_R23 := true; 
            END_IF;    
     
    // Ich schrieb:
    // Nicht auf die nachfolgende sondern auf die darauf folgende 
    // und das ist diese:
     
            IF  (actFlag_R23 = true) THEN                                              
                 S5Timer_flag_R23 := false;
     
            IF ("Eingang_1"=true)THEN         
                 State_ST_2 :=14 ;     
            END_IF;       
    END_IF;   
     
           IF (E1.0 = true) THEN
           A1.0 := true;  
     
           ELSE
           A1.0 := false;  
           END_IF;
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  6. #16
    petzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi ihr - ich nochmal...

    Also, wie ich schon schrieb, ist mir das Verhalten in dem geposteten SCL-Programm (dank eurer super Erklärung) jetzt klar geworden. Vielen Dank an alle nochmals!

    @Paule: Ja, es war nicht dein Fehler, sondern meiner. Ich hatte das zu diesem Zeitpunkt noch falsch verstanden, sorry.

    Wünsch' euch ein schönes & sonniges Wochenende!
    Grüße
    petzi

  7. #17
    Registriert seit
    01.02.2010
    Beiträge
    345
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Ich würde es so formulieren:

    Der Timerausgang "actFlag_R23" ist alle 1,5 Sekunden genau 1 Zyklus lang true.

    Harald
    Wird eigentlich das Trigger-Flag "S5Timer_flag_R23" dann auch sofort in diesem Zyklus abgeschaltet oder erst im nächsten, also darauffolgenden, Zyklus?


    Danke...
    Grüße
    anne

  8. #18
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    Hi,

    Code:
    IF  (actFlag_R23 = true) THEN                                              
        S5Timer_flag_R23 := false;
     
        IF ("Eingang_1"=true)THEN         
            State_ST_2 :=14 ;     
        END_IF;       
    END_IF;
    In diesem, bzw. sofort.

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  9. #19
    Registriert seit
    01.02.2010
    Beiträge
    345
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ah, ok - danke Daniel!

    Dann erklärt sich die Wartezeit ja im Grunde nur dadurch, dass der Timer bis zum Ablaufen mehrere Zyklen benötigt... hoffe das stimmt so.
    Grüße
    anne

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 17.03.2009, 08:43

Lesezeichen

Berechtigungen

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