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

Ergebnis 1 bis 8 von 8

Thema: Uhrzeitsynchronisation über NTP-Verfahren

  1. #1
    Registriert seit
    29.04.2008
    Beiträge
    13
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Habe in meiner CP 343-1 Uhrzeitsynchronisation über NTP - Verfahren angewählt. Der NTP - Server liefert immer GMT.
    Leider funktioniert die Sommer-Winter Umstellung nicht.
    Die Uhrzeit auf dem HMI wird aktuell um 1 Stunde zurück angezeigt.
    Wie realisiere ich eine funktionierende Sommer - Winter Umstellung.
    (Voraussetzung ist NTP - Verfahren.)
    Zitieren Zitieren Uhrzeitsynchronisation über NTP-Verfahren  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    in der OSCAT-Bibliothek findest du entsprechendes Handwerkszeug ohne viel selber erfinden zu müssen ... wenn du es gern zu Fuß machen möchtest: Kalender angucken, gucken wann Zeitumstellung ist, deine Zeit abfragen, feststellen ob umgestellt werden muß oder nicht, muß umgestellt werden Stunde de- oder inkrementieren ... die Zeit liegt im BCD-Format vor
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    hab mir grad nochmal die OSCAT angesehen, so ergiebig ist sie auf dem gebiet leider nicht, aber vladi hatte mal einen gerettetet code gepostet, hier ist er:

    Code:
    *
    FUNCTION "SomWinterZeit" : VOID
    TITLE =
    //Diese FC benutzt die SFC0 (Set_CLK) und SFC1 (READ_CLK).
    //Funktionsbeschreibung:
    //Die Sommerzeit beginnt am letzten März-Sonntag (Umstellung 2:00 -> 3:00).
    //Die Winterzeit beginnt am letzten Oktober-Sonntag (Umstellung 3:00 -> 2:00).
    //Ausgewertet wird die Tatsache, dass dieser Sonntag ein Datum >24. ist.
    //Diese FC erkennt auch ob die aktuelle Zeit (mit Datum) Sommer- o. Winterzeit 
    //ist. Eine Uhrverstellung wird aber nur beim Durchlaufen der Umstellungszeit 
    //(2:00/3:00) gemacht.
    //
    //Die in_out-Variable #SZ zeigt mit HIGH an, das momentan Sommerzeit ist.
    //
    //Zur Bestimmung, ob das aktuelle Datum in den letzten 7 Tagen des März' bzw. des 
    //Oktobers vor oder nach dem letzten Sonntag ist, wird folgendet Algorythmus 
    //benutzt:
    //Wenn der aktuelle Tag vor dem letzten Sonnntag ist, dann gilt Tag-Wochentag < 24
    VERSION : 0.1
    
    
    VAR_IN_OUT
      SommerZeit : BOOL ;    //Anzeige Somerzeit
      UhrStellen : BOOL ;    
    END_VAR
    VAR_TEMP
      CDT : DATE_AND_TIME ;    
      rv : INT ;    
      Jahr : BYTE ;    
      Monat : BYTE ;    
      Tag : BYTE ;    
      Wochentag : BYTE ;    
      Stunde : BYTE ;    
      HM1 : BOOL ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =Uhrzeit lesen
    
          CALL "READ_CLK" (
               RET_VAL                  := #rv,
               CDT                      := #CDT);
    
    
    NETWORK
    TITLE =
    
          L     LB     0; 
          T     #Jahr; 
    
          L     LB     1; 
          T     #Monat; 
    
          L     LB     2; 
          T     #Tag; 
    
          L     LB     3; 
          T     #Stunde; 
    
          L     LB     7; // Low-Byte = Wochentag
          L     W#16#F; 
          UW    ; 
          T     #Wochentag; 
    
    // Monat <März & >Oktober ?
          L     #Monat; 
          L     3; 
          <I    ; 
          =     #HM1; 
          TAK   ; 
          L     W#16#10; 
          >I    ; 
          U     #HM1; 
          SPB   Wi; 
    // Monat <März & >Oktober ?
          L     #Monat; 
          L     3; 
          >I    ; 
          =     #HM1; 
          TAK   ; 
          L     W#16#10; 
          <I    ; 
          U     #HM1; 
          SPB   So; 
    // Ist März?
          L     #Monat; 
          L     3; 
          ==I   ; 
          SPBN  Okt; 
    
    // Sommerzeit: Umstellung
    // Es ist März! Ist es später als der 24.März?
          L     #Tag; 
          L     W#16#24; 
          >I    ; 
          SPBN  Wi; 
    // Es ist später als der 24.März! Kommt noch ein Sonntag?
          TAK   ; 
          L     #Wochentag; 
          -I    ; 
          L     W#16#24; 
          <I    ; 
          SPB   Wi; 
    // Es ist entweder der letzte So. im März oder danach!
          L     #Wochentag; 
          L     1; 
          ==I   ; 
          SPBN  So; 
    // Ist es 3 Uhr oder später?
          L     #Stunde; 
          L     3; 
          >=I   ; 
          SPB   So; 
    // Ist es 2 Uhr
          TAK   ; 
          L     2; 
          ==I   ; 
          SPBN  Wi; 
    // Aktl. Zeit + 1 Std.
          TAK   ; 
          INC   1; 
          T     LB     3; 
          S     #UhrStellen; 
          SPA   So; 
    // Winterzeit: Umstellung
    // Es ist Oktober! Ist es später als der 24.?
    Okt:  L     #Tag; 
          L     W#16#24; 
          >I    ; 
          SPBN  So; 
    // es ist später als der 24 Okt.
          TAK   ; 
          BTI   ; 
          L     #Wochentag; 
          -I    ; 
          L     24; 
          <I    ; 
          SPB   So; 
    // Es ist entweder der letzte So. im Oktober oder danach!
          L     #Wochentag; 
          L     1; 
          ==I   ; 
          SPBN  Wi; 
    // Ist es vor 2 Uhr
          L     #Stunde; 
          L     2; 
          <I    ; 
          SPB   So; 
    // Ist es jetzt Sommerzeit
          U     #SommerZeit; 
          SPBN  Wi; 
    // Ist es 3 Uhr oder später
          L     #Stunde; 
          L     3; 
          >=I   ; 
          SPBN  So; 
    // Aktl Zeit minus 1 Std.
          TAK   ; 
          DEC   1; 
          T     LB     3; 
          S     #UhrStellen; 
          SPA   Wi; 
    
    So:   S     #SommerZeit; 
          SPA   Uhr; 
    
    Wi:   R     #SommerZeit; 
    
    Uhr:  SET   ; 
    
    NETWORK
    TITLE =Uhr stellen
    
    
    
          U     #UhrStellen; 
          SPBNB _001; 
          CALL "SET_CLK" (
               PDT                      := #CDT,
               RET_VAL                  := #rv);
    _001: NOP   0; 
    NETWORK
    TITLE =Bit reset
    
          U     #UhrStellen; 
          R     #UhrStellen; 
    
    END_FUNCTION
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    HeizDuese (07.05.2008)

  5. #4
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Zitat Zitat von Susi Beitrag anzeigen
    ...
    Leider funktioniert die Sommer-Winter Umstellung nicht.
    Die Uhrzeit auf dem HMI wird aktuell um 1 Stunde zurück angezeigt.
    Wie realisiere ich eine funktionierende Sommer - Winter Umstellung.
    (Voraussetzung ist NTP - Verfahren.)
    Zitat aus der Siemens FAQ
    Das NTP-Verfahren unterstützt keine automatische Umstellung zwischen Sommer- und Winterzeit. Dies ist nicht im Protokoll vorgesehen. Wie Sie die Sommerzeit berechnen können, finden Sie unter folgender Beitrags-ID: 19324378

  6. Folgender Benutzer sagt Danke zu marlob für den nützlichen Beitrag:

    Susi (08.05.2008)

  7. #5
    Registriert seit
    16.11.2007
    Beiträge
    179
    Danke
    11
    Erhielt 53 Danke für 39 Beiträge

    Standard

    Hallo,

    wen´s interessiert hier die Formeln für die Berechnungen der genauen Tage im März und im Oktober für Beginn und Ende der Sommerzeit.

    Formel zur Berechnung des Beginns der europäischen Sommerzeit

    Sonntag (31 - (5*Jahr/4 + 4) mod 7) März um 01.00 Uhr UTC
    (Gültig bis 2099).

    Formel zur Berechnung des Endes der europäischen Sommerzeit

    Sonntag (31 - (5*Jahr/4 + 1) mod 7) Oktober um 01.00 Uhr UTC
    (Gültigkeit wie oben).

    Das Jahr muß zweistellig eingegeben werden also 08 für 2008.

    mfG Jan
    Zitieren Zitieren Sommer <-->Winterzeit  

  8. #6
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Zitat Zitat von Mr.Spok Beitrag anzeigen
    Hallo,

    wen´s interessiert hier die Formeln für die Berechnungen der genauen Tage im März und im Oktober für Beginn und Ende der Sommerzeit.
    ...
    Siemens liefert mit dem Baustein FC61 "BT_LT" aus der Standard Library "Miscellaneous Blocks" ja schon einen fertigen Baustein mit. Warum also selber rechnen. Es sein denn man will das üben

  9. #7
    Registriert seit
    30.04.2008
    Beiträge
    6
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich stand vor einem ähnlichen Problem: Uhrzeit- Synchronisation läuft über einen CP 343-1 perfekt, aber eben nur im NTP- Verfahren.
    Nun gibt es den komfortablen SFC 100: der gestattet sogar die Angabe einer "Ankündigungsstunde". Gibt man vorher die Differenz (hier 2 x 0,5h) ein, dann stellt sich die Uhr unter Beibehaltung der UTC- Zeit genau zur vorher angegebenen Stunde. (Datum muss man aber trotzdem separat berechnen) Das war für mich wichtig, da die Zeit für ein FiFo- Lager genutzt wurde. Auch wenn es sehr unwahrscheinlich ist, dass an diesem bestimmten Sonntag nachts jemand arbeitet - es ergab im Zeitumstell- Bereich unsinnige Lagerzeiten. Daher rechnet das Lager weiter in UTC- Zeit, angezeigt wird aber die korrigierte UTC- SPS- Zeit.
    Unter den SZL´s (132 Index 8 lässt sich der "Sommerzeit- Status" permanent auslesen.
    Klint im ersten Moment kompliziert, ist es aber nicht.
    Genaueres zu dem Baustein SFC 100 liefert (ausnahmsweise) mal die Siemens- Beschreibung.
    Geändert von singsing (07.05.2008 um 12:37 Uhr)

  10. Folgender Benutzer sagt Danke zu singsing für den nützlichen Beitrag:

    Susi (08.05.2008)

  11. #8
    Susi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.04.2008
    Beiträge
    13
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die vielen hilfreichen Tipps. Besonders der Beitrag von marlob mit dem Verweis zur Siemens FAQ hat mir weitergeholfen.
    Wahrscheinlich gibt es mehrere Möglichkeiten die Uhrzeit zu stellen.
    Welche davon ich nutzen werde, muss ich noch prüfen.
    Zitieren Zitieren Danke  

Ähnliche Themen

  1. Was benötige ich um SPS-Achsen zu verfahren?
    Von MichaelHe im Forum CODESYS und IEC61131
    Antworten: 14
    Letzter Beitrag: 20.03.2015, 10:54
  2. Uhrzeitsynchronisation über Netzwerk
    Von holgero im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 13.05.2011, 09:05
  3. Zylinder verfahren lassen
    Von Vauxhall1983 im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 02.09.2009, 15:44
  4. Achse im Handbetrieb verfahren
    Von Drain im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 29.08.2006, 12:28
  5. Antworten: 0
    Letzter Beitrag: 13.04.2005, 00:40

Lesezeichen

Berechtigungen

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