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

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

Thema: S5-Timer Istzeit berechnen

  1. #1
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    im Zuge einer Programmumwandlung von S5 nach S7 versuche ich gerade die Istzeit von S5-Timern zu berechnen.
    Ich denke ich hab schon eine brauchbare Lösung, bin aber irgendwie der Meinung das ich das zu kompliziert gelöst habe.
    Gibt es einen einfacheren Weg?

    Code:
          LC    "T 62"                      //Lade Timerwert
          L     W#16#F000                   //Ausmaskieren des Zeitwertes
          UW    
          T     #ZEITBASIS                  //Zeitbasis speichern
    
          LC    "T 62"                      //Lade Timerwert
          L     W#16#FFF                    //Ausmaskieren der Zeitbasis
          UW    
          BTI   
          T     #RESTZEIT                   //Ergebnis in Zwischenvariable kopieren
          L     0
          ==I   
          UN    "T 62"                      //Prüfen ob Timer läuft
          SPB   NOT2                        //Wenn Timer nicht läuft dann Istzeit 0
          L     #SOLLZEIT                    //Lade Sollzeit
          L     W#16#FFF                    //Ausmaskieren der Zeitbasis
          UW    
          BTI   
          L     #RESTZEIT                   //Restzeit von Sollzeit subtrahieren
          -I    
          SPA   END2
    NOT2: L     0
    END2: ITB                               //Zahl in BCD-Format wandeln
          L     #ZEITBASIS                  //Zeitbasis manuell hinzufügen
          OW    
          T     #ISTZEIT                   //Istzeit speichern
    Zitieren Zitieren S5-Timer Istzeit berechnen  

  2. #2
    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 Astralavista Beitrag anzeigen
    im Zuge einer Programmumwandlung von S5 nach S7 versuche ich gerade die Istzeit von S5-Timern zu berechnen.
    ...
    Gibt es einen einfacheren Weg?
    Eventuell die S7-Timer (SFB3 [TP], SFB4 [TON], SFB5 [TOF]) verwenden.
    Bei diesen wird die Zeit direkt in Millisekunden ohne Zeitbasis angegeben.
    Und die Restzeit kann einfach ermittelt werden:
    Code:
         L #Sollzeit 
         L #Abgelaufene Zeit (direkt vom SFB4)
         -D
         T #Restzeit
    Wenn Du aber bei den S5-Timern bleiben willst kann ich nur sagen...
    Zitat Zitat von Astralavista Beitrag anzeigen
    Ich denke ich hab schon eine brauchbare Lösung
    ... Absolut!
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

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

    Astralavista (17.06.2011)

  4. #3
    Astralavista ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard

    Ja klar kenne ich die SFB-Timer.
    "Normalerweise" verwende ich die auch immer oder verwende DINT-Zähler oder sonstwas.
    Aber hier mag ich einfach nicht zu sehr das bestehende Programm umprogrammieren, sondern es nur um ein paar Erweiterungen ergänzen.
    Ok, dann lass ich es so. Habe gedacht es gibt vielleicht ne einfachere Lösung.
    Nicht das irgendjemand mal die Programmzeilen sieht und nen Lachkrampf bekomt weil das evtl. in 4 Zeilen AWL erschlagen wäre

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

    Standard

    Eins noch, wenn Du den Dual Ausgang des Timers nehmen würdest, könntest Du Dir die BCD Wandlung sparen.
    Die Zeitbasis muss aber trotzdem beachtet werden.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  6. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Hallo Astralavista,

    Deine Programmlösung ist schon ganz ordentlich, Du mußt Dich damit nicht verstecken.
    Einen einfacheren Weg gibt es bei S5Timern höchstwahrscheinlich nicht.

    OK, man könnte eine Abkürzung einbauen, doch dann würde die Verständlichkeit des Programms leiden.
    z.B. bei NOT2 brauchst Du nicht nochmal eine 0 laden, die ist noch im Akku, der SPB könnte auch gleich zu END2 oder zum L #ZEITBASIS nach dem ITB springen, die ganze Zeile NOT2 und der SPA darüber könnten wegfallen.

    Das Übertragen des Timerwertes in #RESTZEIT geht wesentlich einfacher, wenn Du den Timerwert mit L statt LC abfragst, so wie Paule schon schrieb.

    Noch ein Tip: bei Wortverknüpfungen kann man die Verknüpfungskonstante direkt an der Operation angeben, statt L W#16#F000 + UW kann man gleich schreiben UW W#16#F000.

    Bei Deinem Programm muß ausnahmsweise mal nicht die Zeitbasis beachtet werden, weil sie ja in #SOLLZEIT, Timerwert und #ISTZEIT jeweils die selbe ist. Es ist so richtig, daß Du die Zeitbasis ohne Ansehen sicherst und dann der #ISTZEIT wieder hinzufügst.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Standard

    Hallo Astralavista
    die Sache gefällt mir, wenn ich darf würde ich deine Zeilen gerne verwenden.
    Welche Datentypen sind dann
    # Restzeit, #Sollzeit #Zeitbasis usw.

    Danke

  8. #7
    Astralavista ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard

    Die Datentypen sind vom Typ WORD.
    Zum Anzeigen in WinCC flex dann einfach Variable auswählen und auf Typ Timer stellen. Dann werden auch je nach Zeitbasis die Werte richtig dargestellt.
    Einziger Nachteil: Hat man einen Timer mit einem recht hohen Zeitwert sieht man diesen systembedingt nur noch in 10s-Schritten zählen.

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

    Standard

    Hallo,
    bei mir geht CPU auf Stop wenn Timer Startet was mache ich Falsch ?
    siehe Anhang
    Danke
    Angehängte Grafiken Angehängte Grafiken

  10. #9
    Astralavista ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard

    Was sagt denn der Diagnosepuffer der CPU?
    Hast du den Instanz-DB zu deinem FB auch in die CPU übertragen?

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

    Gucky_av (21.06.2011)

  12. #10
    Astralavista ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ach so ... die Sollzeit solltest du in einem Global-DB speichern und an den Timer und an den FB übergeben.
    In deinem FB wird die Sollzeit immer leer sein.

Ähnliche Themen

  1. CRC berechnen
    Von H.Scorpio im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 20.01.2011, 18:05
  2. 2^x berechnen
    Von TimoK im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.02.2010, 09:31
  3. K-Zahl im Gas berechnen.
    Von Bender25 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 07.06.2007, 13:56
  4. Gradient berechnen
    Von bismarck im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 28.01.2007, 15:26
  5. Suche Ersatz für IFM TIMER LG ( Logik Timer)
    Von GrafLaugenkotz im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 16.01.2007, 17:02

Lesezeichen

Berechtigungen

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