Autor Thema: Timer mit Start- und Endezeit: day_timer  (Gelesen 7041 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline wolfii

  • Newbie
  • *
  • Beiträge: 6
    • Profil anzeigen
    • E-Mail
Timer mit Start- und Endezeit: day_timer
« am: 26. Juni 2009, 14:46:54 »
Hallo miteinander,

vielleicht kann das jemand brauchen:

In der oscat-lib gibts einen Timer-Baustein, den man mit Starttermin und Laufzeit füttert. Für manche Anwendungsfälle war mir ein Timer lieber, den ich mit Start- und Endezeit adressieren kann (beispielsweise brennt unsere Aussenbeleuchtung mit diesem Baustein ab Sonnenuntergang+10min bis zu einer festen Zeit nachts). Liegt die Endezeit vor der Startzeit, geht der Timer davon aus, dass er über Mitternacht laufen soll. Hier also der Quellcode für day_timer

FUNCTION_BLOCK day_timer
VAR_INPUT
   DT_IN: DT;
   starttime: TOD;
   endtime: TOD;
END_VAR
VAR_OUTPUT
   outval: BOOL;
END_VAR
VAR
   currenttime: TOD;
   last_check: TIME := T#0s;
   tx: TIME;
END_VAR


(*
Output is set to TRUE if DT_IN is in between START and END. IF START > END it is
assumed that the timer is meant to run over midnight.
*)
tx := DWORD_TO_TIME(T_PLC_MS());

IF tx - last_check <= T#100ms THEN
   RETURN;
END_IF;

currenttime := DT_TO_TOD(DT_IN);

IF starttime < endtime THEN
   IF currenttime > starttime AND currenttime < endtime THEN
   outval := TRUE;
   ELSE
   outval := FALSE;
   END_IF
ELSE
   IF currenttime > starttime OR currenttime < endtime THEN
   outval := TRUE;
   ELSE
   outval := FALSE;
   END_IF
END_IF
last_check := tx;

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: Timer mit Start- und Endezeit: day_timer
« Antwort #1 am: 26. Juni 2009, 21:25:57 »
hallo wolfii

danke, deine anregung wurde in die ToDo Liste aufgenommen.

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Timer mit Start- und Endezeit: day_timer
« Antwort #2 am: 19. Juli 2009, 14:42:26 »
in der nächsten release 310 findest du eine funktion timecheck
die macht genau das was du suchst