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

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

Thema: OK-Flag mit TIA in SCL

  1. #1
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich suche das OK-Flag zum Einsatz bei SCL im TIA-Portal (V11.2).
    Bei STEP7 muss das OK-Flag zuerst in den Compiler-Optionen aktiviert werden. Dann kann es im Programmcode eingesetzt werden. Im TIA-Portal habe ich diese Option noch nicht gefunden.
    Irgendwie muss es aber gehen!?
    Zitieren Zitieren OK-Flag mit TIA in SCL  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Die Funktion heißt jetzt "ENO automatisch setzen" in den Bausteineigenschaften.

    In SCL kannst du ENO ganz einfach mit
    Code:
    ENO := true;
    setzen.

    Bei gesetzter Option "ENO automatisch setzen" funktioneren die meisten Operationen in SCL wie in FUP, d.h. der EN/ENO zieht sich durch die verschalteten Bausteine, Funktion wird unter Umständen durch die zusätzlichen Prüfungen langsamer.

  3. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Earny (13.08.2014)

  4. #3
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Und mit
    Code:
    IF ENO THEN ...
    abfragen.

    Wenn du von einer Funktion oder einem Funktionsbaustein ein ENO brauchst, dann sieht das bei TIA etwa so aus
    Code:
    myFC( para1 := wert, ENO => #tmpBOOL )
    oder
    Code:
    myFC( para1 := wert, ENO => ENO )
    Ersteres geht sogar, wenn "ENO automatisch setzen" nicht sitzt

    'n schön' Tach auch
    HB

  5. Folgender Benutzer sagt Danke zu HelleBarde für den nützlichen Beitrag:

    Martin Glarner (01.12.2015)

  6. #4
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Geht die Auswertung des Wertes von ENO auch in dem Baustein, indem der Fehler passiert? Mir ist das lieber, als die Auswertung des Fehlers im aufrufenden Baustein.
    Mit dem OK-Flag in SCL bei STEP7 ist das möglich.

  7. #5
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Klar

    angenommen du hast eine Rechnung:
    Code:
    a := b+c
    dann kannst du danach

    Code:
    IF NOT ENO THEN
        "Nothalt" := true;
    END_IF
    schreiben. Dazu muss das Attribut am Baustein sitzen. Die Voreinstellung bei SCL ist jedoch keine Überlauferkennung bei der Arithmetik.

  8. Folgender Benutzer sagt Danke zu HelleBarde für den nützlichen Beitrag:

    Earny (14.08.2014)

  9. #6
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Funktioniert bei mir leider doch nicht.

    Ich habe folgendes Beispiel:

    Code:
    "MD_30":=BCD16_TO_INT("EW_16")**BCD16_TO_INT("EW_18");
    IF NOT ENO THEN "MD_30":=0; END_IF;
    Ich rechne a**b (Potenzieren). Dabei kann es leicht zum Zahlenüberlauf kommen. MD_30 ist ein Real. Im EW_16 und EW_18 stehen max. dreistellige BCD-Zahlen.
    Beim Zahlenüberlauf müsste 0 im MD_30 stehen. Steht aber 1.#INF00e+000 drin.
    Es spielt keine Rolle, ob der Haken bei "ENO" sitzt oder nicht. Ich meine den Haken in Extras - Einstellungen - PLC-Programmierung - SCL...

    Wäre ich in STEP7, würde ich das ENO durch OK ersetzen. Das funktioniert dann. Beim Zahlenüberlauf steht dann 0 im MD_30, wenn bei Compiler-Optionen das OK-Flag gesetzt ist.

  10. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Was hast du denn für eine CPU? 300/400, 1200 oder 1500?

    Laut Doku soll bei einer Migration eines SCL Programmes OK durch ENO ersetzt werden. Dann sollte es ja schon genauso funktionieren.

    Probier doch mal was der ENO-Ausgang in FUP/KOP bei so einer Operation ausgibt.

  11. #8
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Ist ein CPU314C-2DP.
    Ich werde mal das S7-Projekt mit dem OK-Flag nach TIA migrieren. Mal schauen, ob das dann geht.

  12. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Bei der 300er kann man sich ja zum Glück noch ansehen was für ein AWL-Code der Compiler erzeugt.
    Ich habe mal vergleichen:

    1) Step 7 V5.5 SP4
    Code:
    {SetOKFlag := 'y'}
    
    FUNCTION FC1 : VOID
    
    VAR_INPUT
        a : REAL;
        b : REAL;
    END_VAR
    
    VAR_OUTPUT
        o_k : BOOL;
    END_VAR
    
    VAR_TEMP
        r : REAL;
    END_VAR
    
    BEGIN
    r := a ** b;
    o_k := OK;
    END_FUNCTION
    erzeugt:
    Code:
          SET   
          SAVE  
          =     L      4.1
          L     #a
          LN    
          SPO   I007
          SPA   I008
    I007: CLR   
          =     L      4.1
    I008: L     #b
          *R    
          SPO   I009
          SPA   I00a
    I009: CLR   
          =     L      4.1
    I00a: EXP   
          SPO   I00b
          SPA   I00c
    I00b: CLR   
          =     L      4.1
    I00c: T     #r
          CLR   
          U     L      4.1
          =     #o_k
          SAVE  
          BE
    2) TIA Portal V11 SP2 Upd 4
    Code:
    FUNCTION "TestOkFlag" : Void
    { S7_Optimized_Access := 'FALSE' }
    VERSION : 0.1
       VAR_INPUT 
          "a" : Real;
          "b" : Real;
       END_VAR
    
       VAR_OUTPUT 
          "o_k" : Bool;
       END_VAR
    
       VAR_TEMP 
          "r" : Real;
       END_VAR
    
    
    
    BEGIN
    	#r := #a ** #b;
    	#o_k := ENO;
    END_FUNCTION
    mit gesetzter Option "ENO automatisch setzen" erzeugt:
    Code:
          SET   
          SAVE  
          =     L      4.0
          =     L      6.0
          L     #IN0
          L     #IN1
          TAK   
          LN    
          SPO   M001
          SPA   M002
    M001: CLR   
          =     L      6.0
    M002: *R    
          SPO   M003
          SPA   M004
    M003: CLR   
          =     L      6.0
    M004: EXP   
          SPO   M005
          SPA   M006
    M005: CLR   
          =     L      4.0
          =     L      6.0
    M006: T     #TEMP3
          CLR   
          U     L      4.0
          =     #OUT2
          CLR   
          U     L      4.0
          SAVE
    Wenn du nur den Zustand des Endergebnisses abfragst sollte es keinen Unterschied geben.
    Bei Step7 fließt in das OK-Flag aber der Zustand der Zwischenergebnisse mit hinein. Das landet beim TIA-Portal in L6.0 und wird dann nicht weiter verwendet, keine Ahnung was die sich dabei gedacht haben. Vielleicht generiert eine neuere Version oder ein anderes SP oder Update auch wieder völlig anderen Code. Die TIA V11 würde ich auch nicht produktiv einsetzen (persönliche Meinung: V12 und V13 auch nicht).

  13. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Earny (14.08.2014)

  14. #10
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dann heißt das wohl, dass die Funktionalität des OK-Flags im TIA nicht mehr existiert.

Ähnliche Themen

  1. TIA Gutes Buch für Einstieg in SCL mit TIA
    Von kami im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 05.07.2014, 16:25
  2. Step 7 SCL - OK-Flag über Compileroption aktivieren
    Von Onkel Dagobert im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 21.11.2013, 09:20
  3. TIA SCL Multiinstanz Beobachten mit Aufrufpfad
    Von swissedition im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 23.11.2012, 11:40
  4. Antworten: 10
    Letzter Beitrag: 13.09.2012, 07:31
  5. TIA V11 SCL Problem mit DB zugriff
    Von epy im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 16.01.2012, 12:39

Lesezeichen

Berechtigungen

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