Re: Timer_1 Problem über Mitternacht

Begonnen von König777, 05. Januar 2018, 17:46:06

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 3 Gäste betrachten dieses Thema.

König777

Hallo,

habe eben festgestellt das Timer_1 (aktuelle building lib) über Mitternacht bei einem Einzelereignis (z.B. Start Mittwoch 23:00 Dauer 2 Stunden) bis 00:00 Uhr funktioniert und nicht darüber hinaus. Diese Problem hatte ein User schon einmal festgestellt (2009).

Siehe http://www.oscat.de/community/index.php/topic,815.msg5040.html#msg5040

Mit der nächsten release Basic 3.21 sollte dies korrigiert werden. Weiß jemand ob es im Timer_1 einen Unterschied zwischen der aktuellen Building lib und der Basic 3.21 lib im Quellcode gibt.

Gruß König


peewit

hallo

in der oscat_basic 3_21 hat der timer1 baustein die revisionsnummer 2.2
in der oscat_building 1_00 hat der timer1 baustein die revisionsnummer 2.2

somit sollte es hier keinen unterschied geben

die letzte änderung laut historie betraf auch einen bug bezüglich "over midnight"


(*
1.12.2006 hm      rev 1.1
   corrected an error with pulse width = 0.

25.12.2006 hm      rev 1.2
   corrected an error when timer overflows.

14.apr 2007 hm      rev 1.3
   corrected an error while while output would not go active when start year would be 1970.
   increase accuracy by checking every 100ms
   added init section to compensate for timer overflow

15.9.2007 hm      rev 1.4
   replaced Time() with T_PLC_MS for compatibility and performance reasons

hm   1. okt 2007      rev 1.5
   corrected an error while output would not stay active over midnight.

hm   17. jan 2008   rev 1.6
   New code with better performance 
   Output is now only active during the time of day it is supposed to
   no pulse is generated at power up

hm   7. oct. 2008   rev 1.7
   changed function weekday to day_of_week

hm   23. oct. 2008   rev 2.0
   new code, added input E, now days can be selected by bits in byte day

hm   6. nov. 2008   rev 2.1
   added default for input EN and input DAY

hm 16. dec 2009   rev 2.2
   fixed a bug over midnight

*)


König777

Hallo Peewit,

ich habe dann die aktuelle Version. Timecheck macht die Aktivierung über Mitternacht hinaus, aber mit der Verundung mit dem Bitmuster geht bei einem Einzeltag und Auschschaltzeitpunkt nach Mitternacht Q auf false.

Q := TIMECHECK(DT_TO_TOD(DTI), START, TIME_TO_TOD(stop)) AND (SHR(BYTE#128, DAY_OF_WEEK(DT_TO_DATE(DTI))) AND DAY) > BYTE#0;

Die Beschreibung in Bezug auf die Einschaltdauer war für mich erst einmal missverständlich. "Die maximale Impulsdauer liegt bei 49 Tage..." für das TIME Format gilt das ja, aber die Einschaltdauer über 24h muss in Kombination mit der Variablen DAY erfolgen. Beispiel Start am Mittwoch um 15:00 Dauer 36 Std.. Endzeit wäre dann  Freitag 03:00. Wenn z.B Mittwoch aktiviert ist und Donnerstag und Freitag nicht schaltet der Timer Donnerstag 00:00 ab.


Gruß König