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

Ergebnis 1 bis 4 von 4

Thema: S7 und UNIX-Timestamp

  1. #1
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich will die S7-Systemzeit in den zugehörigen Unix-Zeitstempel umwandeln.

    Auslesen mit SFC 1 ist klar. Bleibt die leidige Rechnerei.
    Das dürfte zwar kein großes Problem sein (FC), aber ich
    bin heute himmelfahrtsfaul.

    Deshalb die Frage: Gibt es da bereits etwas fertiges ?
    Zitieren Zitieren S7 und UNIX-Timestamp  

  2. #2
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Hallo!

    Nit so faul sein!

    Schau dir mal die Oscat library an. Vielleicht findest dort was brauchbares.

    godi

  3. #3
    argv_user ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Zitat Zitat von godi Beitrag anzeigen
    Hallo!

    Nit so faul sein!

    Schau dir mal die Oscat library an. Vielleicht findest dort was brauchbares.

    godi
    Sonst bin ich nicht so faul, aber heute !

    In Oscat hab ich natürlich vorher schon nachgesehen.

  4. #4
    argv_user ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Aus gegebenem Anlass hier meine, zugegebenermaßen bescheiden dokumentierte Lösung Nummer 2:

    Code:
    FUNCTION FC 112 : VOID
    TITLE =DWORD Get_Unix_Timestamp 
    //Die Funktion errechnet aus der BCD-codierten Systemzeit einer S7-CPU (300,400)
    //den zugehörigen Unix-Zeitstempel (Sekunden seit 1.1.1970)
    //
    //Rueckgabewerte: Unix-Timestamp
    //          oder: 0, falls SFC1 einen Fehler meldet
    AUTHOR : Emig
    NAME : UNIXTIME
    VERSION : 1.0
    
    
    VAR_OUTPUT
      timestamp : DWORD ;    //Rueckgabewert: Unix-Timestamp oder 0
    END_VAR
    VAR_TEMP
      s7clock : DATE_AND_TIME ;    
      s7clock_retval : INT ;    
      datum : DATE ;    
      zeit : TIME_OF_DAY ;    
      sum : DWORD ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =Systemuhr auslesen mit Systemfunktion 1
    
          L     0; 
          T     #timestamp; 
    
          CALL "READ_CLK" (
               RET_VAL                  := #s7clock_retval,
               CDT                      := #s7clock);
    // Error check
          L     #s7clock_retval; 
          L     0; 
          <>D   ; 
          BEB   ; 
    
          CALL "DT to DATE" (
               IN                       := #s7clock,
               RET_VAL                  := #datum);
          CALL "DT to TOD" (
               IN                       := #s7clock,
               RET_VAL                  := #zeit);
    
          L     #datum; // Datum in Sekunden wandeln
          L     L#86400; 
          *D    ; 
          T     #sum; 
    
          L     #zeit; // Zeit in Sekunden wandeln
          L     L#1000; 
          /D    ; 
          L     #sum; 
          +D    ; 
          L     DW#16#259E8160; // UTC(1.1.1990,0:0:0)
          +D    ; 
          T     #timestamp; 
    
    
    END_FUNCTION
    Der eigentliche Trick steckt IMHO nur in der Ermittlung der Konstanten, die zum Schluss noch addiert wird.
    Viel Spaß noch damit.

    Gerald
    Geändert von argv_user (13.10.2009 um 10:31 Uhr)

Ähnliche Themen

  1. OPC Timestamp überschreiben
    Von wapiti im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 25.08.2010, 10:00
  2. Antworten: 0
    Letzter Beitrag: 15.07.2010, 19:01
  3. Antworten: 3
    Letzter Beitrag: 15.03.2006, 19:04
  4. CP343 IT FTP Anbindung an UNIX
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 24.06.2004, 13:13

Lesezeichen

Berechtigungen

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