# PrgDaylightSaving notwendig?



## dast (2 Dezember 2018)

Liebe Forumsgemeinde,

an meinen beiden WAGO 750 Controllern (880 & 881) synchronisiere ich die Uhr jeweils per NTP.
Das funktioniert so weit auch ohne Probleme.

Die aktuelle UTC-Zeit lese ich dann mittels "SysRtcGetTime(TRUE)" aus und wandle diese dann
mittels "FuDT_LocalTime" in die lokale Zeit um. Dieser Funktion gebe ich weiters meine Zeitzone,
also +1 mit und TRUE für die Sommer-/Winterumschaltung ("xEnableDaylightSaving").
Diese beiden Zeiten speichere ich jeweils in einer Variablen zur weiteren Verwendung ...

Aktuell stimmt das ganze mal, sprich Datum und Uhrzeit für meinen Standort stimmen.
Ist die Lösung so jetzt aber "allgemein" richtig?
Sprich nächstes Jahr nach Umstellung auf die Sommerzeit?

Im Handbuch der Controller steht auch was zur Verwendung des Prg "PrgDaylightSaving" für die
Umstellung von Sommer- bzw. Winterzeit. Ist das jetzt noch notwendig? Oder macht das nicht
die Funktion "FuDT_LocalTime" selber, weil in der Webconfig der Controller hab ich die automatische
 Sommer-/Winterumschaltung ja deaktiviert (auf "manual" und Checkbox "aus").

Blicke da leider noch nicht ganz durch ...

Vielen Dank schon mal und Grüße,
Daniel.


----------



## Mavorkit (2 Dezember 2018)

Hi Daniel,

Ich lasse die Controller über SNTP die Zeit holen, Zeitzone wird händisch im Controller hinterlegt.
Für die Umschaltung Sommer- und Winterzeit benutze ich die Einstellung im WBM.

Das prgDaylightsaving war für die Zeit vor dem Firmware Update 13 (glaub ich), da gab es die Einstellung im WBM noch nicht.
Da musste auch nur auf den Baustein ein true gegeben werden, dann hat das schon geklappt.

Gruß

Mavorkit

Gesendet von meinem SM-G389F mit Tapatalk


----------



## dast (3 Dezember 2018)

Was meinst du mit "Zeitzone wird händisch im Controller hinterlegt"? Im Code selber?

Und bei "Für die Umschaltung Sommer- und Winterzeit benutze ich die Einstellung im WBM."
Stellst du da im WBM auf "Automatic (EU)"?




Ich möchte gerne im Code sowohl die UTC-Zeit, als auch die lokale Zeit haben.
Deshalb synchronisiere ich auch per SNTP und hab im WBM keine Zeitzone eingegeben.
Das mache ich dann beim Umrechnen mit der Funktion "FuDT_LocalTime", indem ich +1 angebe.

Aber was macht die "Daylight Saving Time" Einstellung im WBM genau?
Wird da, wenn aktiviert, automatisch nach dem Synchronisieren +/- 1 Stunde gemacht?
Und wenn ich jetzt bei der Funktion "FuDT_LocalTime" auch noch das "xEnableDaylightSaving"
aktiviere, wie sieht es dann aus?

Möchte das ganze auch zusammen mit dem Funktionsblock "FbWB_CalculateSunriseSunset" zur
Bestimmung von Sonnenauf- und -untergang verwenden. Und dieser FB benötigt die UTC-Zeit und
soweit ich weiß kennt UTC keine Sommer-/Winterzeit ... da würde die Einstellung im WBM jetzt
nicht passen, oder?

Da blicke ich jetzt nicht ganz durch, wie das ganze richtig zu verwenden ist ...


----------



## Mavorkit (3 Dezember 2018)

Hi Daniel,

jetzt weiß ich auch was du genau bezwecken möchtest.

Prizipiell unterstützen die Controller nur SNTP (da wird im unterschied zu NTP keine Zeitzone + Sommer- / Winterzeit mit übertragen). Das heist deine einstellung mit dem SNTP Server und der UTC Zeitzone ist dafür richtig.

Die Sommer- Winterzeitumstellung im WBM greift auf die Systemzeit zu und passt diese an. Ist also in deinem Fall zu deaktivieren.

Die Systemzeit holst du dir ja mit SysRtcGetTime(TRUE) holst du dir die aktuelle Systemzeit (+Datum). Über deinen FuDT_LocalTime kannst du dann über die Angaben in welcher Zeitzone du bist und über den Eingang xEnableDaylightSaving deine Lokale Zeit ermitteln. Der eingang steht hier üb die Zeitumschaltung aktiv sein soll oder nicht (hab es gerade mal zurz getestet), nicht einfach nur eine Stunde mehr Verschiebung. Hier also einfach ein TRUE dran.

Bei dem FbWB_CalculateSunriseSunset musst du dann eine UTC Zeit angeben plus Zeitzone und ob die Sommer/Winterzeit aktiviert ist. Der Sonnenstand wird mit der UTC Zeit berechnet und mit der Zeitzone und der Zeitumschakltung lediglich an die lokale Zeit angepasst (so verstehe ich das aus der Dokumentation WagoBuilding_01_d.pdf, bei Übergabe der lokalen Zeit wird die berechnung nicht passen). Die Längen und Beitenangabe kannst du dir relativ leicht bei Google Maps raussuchen. 

Gruß

Mavorkit


----------



## dast (3 Dezember 2018)

Ok, dann hab ich das eh richtig verstanden!

Bekomme ich dann von FbWB_CalculateSunriseSunset den Sonnenaufgang bzw. -untergang in UTC-Zeit oder lokaler Zeit zurück?
Ich denke in lokaler Zeit, da ich dem FB ja die Zeitzone und "ob Sommerzeit" aktiv ist angeben kann/muss ... oder?
Mit welcher Funktion bekomme ich heraus, ob gerade Sommerzeit ist? Weil das muss ich dem FB ja über "xDST" mitteilen.

Danke und Grüße,
Daniel.


----------



## Mavorkit (3 Dezember 2018)

Hi Daniel,

genau du bekommst die Zeit zurück, deren Zeitzone und Sommer- / Winterzeit du angibst.

Das mit der Sommerzeit ist eine gute Frage. Beim PrgDaylichtSaving gibt es einen Ausgang dafür. Das würde allerdings auch wieder deine Systemzeit verstellen. Vielleicht über eine abfrage, ob die Verschiebung zwischen UTC und lokaler Zeit größer als die Zeitzonenverschiebung ist? Wäre jetzt das einzigste was mir spontan einfällt.

Gruß

Mavorkit


----------



## dast (3 Dezember 2018)

Ok, danke schon mal. Für das Thema mit der Sommerzeit ist es vielleicht am besten ein eigenes Topic aufzumachen ... vielleicht meldet sich ja auch der WAGO Support.


----------

