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

Ergebnis 1 bis 9 von 9

Thema: TODausgabe in WinCC

  1. #1
    Registriert seit
    27.01.2009
    Beiträge
    111
    Danke
    26
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Ist es möglich, das TOD Format in WinCC wiederzugeben?
    Gebe die Variable aus der SPS raus nur bei der Ausgabe gibts Probleme.
    Habe die Variable in WinCC als String angelegt.

    MFG Domi
    Zitieren Zitieren TODausgabe in WinCC  

  2. #2
    Domi55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.01.2009
    Beiträge
    111
    Danke
    26
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Das mit dem TOD hab ich mal weggelassen. Bekomme von dem Regler die Restlaufzeit in Sekunden (LONG) auf die S7-313C. Jetzt will ich diesen Wert in WinCC darstellen (hh:mm:ss)! Wie kann ich das am besten realisieren?

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

    Standard

    Du legst die eine globale C-Funktion an. Diese nimmt als Funktionsparameter deinen Sekundenzählwert an und gibt einen String (bzw. einen Zeiger darauf) zurück.

    Im WinCC Stil also z.B. so:
    Code:
    char *DINTsecToHHMMSS(DWORD s)
    {
      char *str = SysMalloc(16);
      sprintf(str, "%2.2d:%2.2d:%2.2d", (s / 3600), (s % 3600) / 60, (s % 60));
      return str;
    }
    3600 Sekunden würden damit als "01:00:00" angezeigt.
    Geändert von Thomas_v2.1 (15.01.2011 um 00:55 Uhr) Grund: 1440 in 3600 geändert, Danke Kai

  4. #4
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von Domi55 Beitrag anzeigen
    Das mit dem TOD hab ich mal weggelassen. Bekomme von dem Regler die Restlaufzeit in Sekunden (LONG) auf die S7-313C. Jetzt will ich diesen Wert in WinCC darstellen (hh:mm:ss)!
    Geht es hier um WinCC oder WinCC flexible?

    Gruß Kai

  5. #5
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Code:
    char *DINTsecToHHMMSS(DWORD s)
    {
      char *str = SysMalloc(16);
      sprintf(str, "%2.2d:%2.2d:%2.2d", (s / 1440), (s % 1440) / 60, (s % 60));
      return str;
    }
    1440 Sekunden würden damit als "01:00:00" angezeigt.
    1 Stunde = 60 Minuten = 3600 Sekunden.

    1 Tag = 24 Stunden = 1440 Minuten

    Da wir die Anzeige hh:mm:ss haben wollen, solltest Du mit 3600 Sekunden rechnen.

    Gruß Kai

  6. Folgende 2 Benutzer sagen Danke zu Kai für den nützlichen Beitrag:

    Domi55 (17.01.2011),Thomas_v2.1 (14.01.2011)

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

    Standard

    Zitat Zitat von Kai Beitrag anzeigen
    Da wir die Anzeige hh:mm:ss haben wollen, solltest Du mit 3600 Sekunden rechnen.
    Oh...Aufmerksamkeits-Test bestanden

  8. #7
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Nachfolgend ein Programmbeispiel für die Umrechnung der Restlaufzeit in der SPS:

    Code:
    FUNCTION FC 100 : VOID
    TITLE =Restlaufzeit
    AUTHOR : Kai
    FAMILY : SPSForum
    NAME : '41874'
    VERSION : 1.0
     
    VAR_INPUT
      Restlaufzeit : DINT ; //Restlaufzeit Sekunden
    END_VAR
    VAR_OUTPUT
      Stunden : INT ; //Restlaufzeit Stunden
      Minuten : INT ; //Restlaufzeit Minuten
      Sekunden : INT ; //Restlaufzeit Sekunden
    END_VAR
    BEGIN
    NETWORK
    TITLE =Restlaufzeit
    //1 Stunde = 60 Minuten = 3600 Sekunden
    //   
          L     #Restlaufzeit; // Restlaufzeit Sekunden
          L     L#3600; 
          /D    ; 
          T     #Stunden; // Restlaufzeit Stunden
     
          L     #Restlaufzeit; // Restlaufzeit Sekunden
          L     L#60; 
          /D    ; 
          L     L#60; 
          MOD   ; 
          T     #Minuten; // Restlaufzeit Minuten
     
          L     #Restlaufzeit; // Restlaufzeit Sekunden
          L     L#60; 
          MOD   ; 
          T     #Sekunden; // Restlaufzeit Sekunden
     
    END_FUNCTION
    Gruß Kai
    Angehängte Dateien Angehängte Dateien

  9. Folgender Benutzer sagt Danke zu Kai für den nützlichen Beitrag:

    Domi55 (17.01.2011)

  10. #8
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Nachfolgend ein Programmbeispiel für die Umrechnung der Restlaufzeit und die Ausgabe der Restlaufzeit als STRING:

    Code:
    FUNCTION_BLOCK FB 100
    TITLE =Laufzeit
    AUTHOR : Kai
    FAMILY : SPSForum
    NAME : '41874'
    VERSION : 1.0
     
    VAR_INPUT
      DINT_Laufzeit : DINT ; //Laufzeit Sekunden
    END_VAR
    VAR_OUTPUT
      STRING_Laufzeit : STRING  [12 ] := '00 : 00 : 00'; //Laufzeit STRING
    END_VAR
    VAR_TEMP
      INT_Stunden : INT ; //Laufzeit Stunden
      INT_Minuten : INT ; //Laufzeit Minuten
      INT_Sekunden : INT ; //Laufzeit Sekunden
    END_VAR
    BEGIN
    NETWORK
    TITLE =Laufzeit Sekunden -> Laufzeit Stunden, Minuten, Sekunden
    //1 Stunde = 60 Minuten = 3600 Sekunden
    //   
          L     #DINT_Laufzeit; // Laufzeit Sekunden
          L     L#3600; 
          /D    ; 
          T     #INT_Stunden; // Laufzeit Stunden
     
          L     #DINT_Laufzeit; // Laufzeit Sekunden
          L     L#60; 
          /D    ; 
          L     L#60; 
          MOD   ; 
          T     #INT_Minuten; // Laufzeit Minuten
     
          L     #DINT_Laufzeit; // Laufzeit Sekunden
          L     L#60; 
          MOD   ; 
          T     #INT_Sekunden; // Laufzeit Sekunden
     
    NETWORK
    TITLE =Laufzeit Stunden, Minuten, Sekunden -> Laufzeit STRING
    //ASCII-Zeichensatz
    //
    //DEZ 48 = HEX 30 = CHAR '0'
    //DEZ 49 = HEX 31 = CHAR '1'
    //DEZ 50 = HEX 32 = CHAR '2'
    //DEZ 51 = HEX 33 = CHAR '3'
    //DEZ 52 = HEX 34 = CHAR '4'
    //DEZ 53 = HEX 35 = CHAR '5'
    //DEZ 54 = HEX 36 = CHAR '6'
    //DEZ 55 = HEX 37 = CHAR '7'
    //DEZ 56 = HEX 38 = CHAR '8'
    //DEZ 57 = HEX 39 = CHAR '9'
    //   
          L     #INT_Stunden; // Laufzeit Stunden
          ITB   ; 
          SRW   4; 
          L     48; 
          +I    ; 
          T     #STRING_Laufzeit[1]; // Laufzeit Stunden Zehnerstelle
     
          L     #INT_Stunden; // Laufzeit Stunden
          ITB   ; 
          SLW   12; 
          SRW   12; 
          L     48; 
          +I    ; 
          T     #STRING_Laufzeit[2]; // Laufzeit Stunden Einerstelle
     
          L     #INT_Minuten; // Laufzeit Minuten
          ITB   ; 
          SRW   4; 
          L     48; 
          +I    ; 
          T     #STRING_Laufzeit[6]; // Laufzeit Minuten Zehnerstelle
     
          L     #INT_Minuten; // Laufzeit Minuten
          ITB   ; 
          SLW   12; 
          SRW   12; 
          L     48; 
          +I    ; 
          T     #STRING_Laufzeit[7]; // Laufzeit Minuten Einerstelle
     
          L     #INT_Sekunden; // Laufzeit Sekunden
          ITB   ; 
          SRW   4; 
          L     48; 
          +I    ; 
          T     #STRING_Laufzeit[11]; // Laufzeit Sekunden Zehnerstelle
     
          L     #INT_Sekunden; // Laufzeit Sekunden
          ITB   ; 
          SLW   12; 
          SRW   12; 
          L     48; 
          +I    ; 
          T     #STRING_Laufzeit[12]; // Laufzeit Sekunden Einerstelle
     
    END_FUNCTION_BLOCK
    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: jpg VAT.jpg (287,9 KB, 10x aufgerufen)
    Angehängte Dateien Angehängte Dateien

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

    Domi55 (17.01.2011)

  12. #9
    Domi55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.01.2009
    Beiträge
    111
    Danke
    26
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Super Danke für die zahlreichen Unterstützung! Teste heute mal was davon aus! Melde mich dann für welche ich mich entschieden hab!

Lesezeichen

Berechtigungen

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