Benutzung der Datenstruktur CALENDAR

Begonnen von hugo, 09. Februar 2009, 17:40:46

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 8 Gäste betrachten dieses Thema.

hugo

Die Datenstruktur MEZ vom Typ CALENDAR dienst dazu zentral und mit möglichst wenig overhead die kalenderdaten zur verfügung zu stellen und die nötigen periodischen Berechnungen durchzuführen.
In unserem Beispiel lesen wir mittels sysrtcgettime die Systemzeit aus (vorsicht dies ist Zielsystemabhängig und keine Funktion der OSCAT LIB)
Die ausgelesene Zeit wird in die Datenstruktur MEZ von Typ CALENDAR in das Element UTC geschrieben.
der Baustein CALENDAR_CALC wird ebenfalls periodisch aufgerufen und Berechnet aus MEZ.UTC und den für die Zeitzone nötigen Vorgaben alle anderen Elemente der Datenstruktur MEZ.
Die Vorgaben für die zeitzone sind mit der Deklaratioin von MEZ vordefiniert worden.

Beliebige Bausteine hier als Beispiel der BLIND_SHADE koennen dann auf die Datenstruktur zugreifen ohne weitere Berechnungen durchführen zu müssen.

Natürlich ist dieser Mechanismus nicht auf eine Zeitzone beschränkt, es können Beliebig viele Datenstrukturen erzeugt werden.
Bausteine die nur ein Element der Datenstruktur MEZ benötigen können darauf zugreifen üner MEZ.{Element Name} wie dies unser Baustein SYSRTCGETTIME am Ausgang tut
er schreibt die Weltzeit UTC in das Element UTC von MEZ (MEZ.UTC).

Auch für den Anwender in nder programmierung bringt dies Vorteile: ein Element wird ausgewählt indem man den Namen der Datenstruktur Instanz, in unserem Fall MEZ schreibt und dann einen Punkt sobald dieser Punkt gesetzt wird kommt eine Auswahlliste mit allen zur verfügung stehenden Elementen.

[gelöscht durch Administrator]

Omalik

Hallo Hugo

Ich habe eine Frage betreffende diesem Thema. Im Handbuch steht, dass alle Werte Vollautomatisch berechnet werden ausgehend von UTC.
Wenn ich aber nicht UTC Zeit habe (hat ja fast keiner, da noch Sommer- und Winterzeit ins Spiel kommen) ist mir klar dass ich einen Offset  und auch die longitude und latitude definieren muss um alle Parameter der Structur Calendar zu berechnen.  Warum hast du aber noch DST_EN= true definiert. Sollte das nicht berechnet werden?? Oder habe ich was übersehen??

Danke für dein Feedback.




peewit

idee ist folgende

du gibst die utc zeit an und das offset
das ergibt dann die lokale zeit

optional kannst du noch mit DST=TRUE dem baustein erlauben das er auch noch die sommerzeit umschaltung für die lokalzeit mit einbezieht

du sagst damit nur das der baustein die sollerzeit umschaltung selbstständig machen darf, und nicht das nun sommerzeit ist


das beste ist wenn man die sps zeit auf weltzeit stellt, und davon ausgehend sich alle anderen sachen selber bildet !
die uhr mit sommerzeitumstellung laufen zu lassen, bringt bei datum/zeit gesteuerten ereignissen sehr oft problem, das manchmal eine stunde fehlt, bzw doppelt exisitert !

das macht dir aber kein problem wenn du mit weltzeit arbeitest

Omalik

Hallo peewit

Jetzt ist alles klar. Besten Dank!