oscat.lib > Bestehende Module / Existing Modules

Problem mit CALENDAR_CALC

(1/2) > >>

matt:
Bibliothek: oscat_basic_331_codesys2.lib
calendar_calc Version 1.5 (2.Februar 2011)

Hallo zusammen,
die Berechnung von calendar.night in CALENDAR_CALC scheint nicht korrekt zu funktionieren. Dies wird gemacht:

   utod := DT_TO_TOD(xcal.UTC);
.
.
   xcal.night := utod < xcal.SUN_RISE OR utod > xcal.SUN_SET;

Soweit ich das sehe, liegen SUN_RISE und SUN_SET aber in der lokalen Zeit vor.

Gruß
matt

hugo:
ja du hast völlig recht, das werden wir im nächsten release anpassen

D-Platoon:
Auch wenn das Thema schon fast 10 Jahre alt ist, habe ich soeben auch einen Bug entdeckt:
Es steht da in Zeile 32 folgendes

--- Code: ---sun(latitude := XCAL.LATITUDE, longitude := xcal.LONGITUDE, utc := DT_TO_DATE(xcal.UTC), H := H);
--- Ende Code ---

Der Programmcode wird beim Tageswechsel ausgeführt. Da wir ja aber hier in Deutschland den neuen Tag früher beginnen als UTC, werden die Werte vom Vortag berechnet. Wir hinken also immer um einen Tag hinterher.

Ich hab das bei mir schon geändert. Wäre aber auf jeden Fall auch ein Thema für ein nächstes Release. Dabei die Frage: ist da in absehbarer Zeit was geplant?

peewit:
ok

hast du bei UTC dann dein LOKAL-DATE angegeben ?

kannst du auch deine änderung-vorschlag posten


mattsches:
Änderungsvorschlag:

SUN_TIME, Zeile 5 der Klarheit halber ändern von

--- Code: --- UTC : DATE; (* world time *)
--- Ende Code ---
in

--- Code: --- DAY : DATE; (* date of day to calculate times for *)
--- Ende Code ---

und Zeile 32 in CALENDAR_CALC von

--- Code: ---sun(latitude := XCAL.LATITUDE, longitude := xcal.LONGITUDE, utc := DT_TO_DATE(xcal.UTC), H := H);
--- Ende Code ---
in

--- Code: ---sun(latitude := XCAL.LATITUDE, longitude := xcal.LONGITUDE, day := xcal.LDATE, H := H);
--- Ende Code ---

Dann wird der Baustein weiterhin um Mitternacht Lokalzeit getriggert, rechnet aber die Sonnenstandszeiten für den aktuellen Tag und nicht für den Vortag.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln