Autor Thema: CLK_PRG_2  (Gelesen 6327 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Mudla

  • Newbie
  • *
  • Beiträge: 22
    • Profil anzeigen
CLK_PRG_2
« am: 13. September 2012, 12:01:52 »
Hallo,

ich habe beim Baustein CLK_PRG einen manuellen Auslöser hinzugefügt.
Vielleicht ist der ja auch für andere interessant

Grüße
Mudla

[gelöscht durch Administrator]

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: CLK_PRG_2
« Antwort #1 am: 13. September 2012, 12:43:36 »
hallo

danke für deinen beitrag
man kann das ganze noch ein wenig verkürzen ....

FUNCTION_BLOCK CLK_PRG_2
VAR_INPUT
PT : TIME := t#10ms;
Man : BOOL;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR
init : BOOL;
last : TIME;
tx: TIME;
man_last: BOOL;
END_VAR

(* read system time *)
tx := DWORD_TO_TIME(T_PLC_MS());

(* initialize on startup *)
IF NOT init THEN
init := TRUE;
last := tx - pt;
END_IF;

(* generate output pulse when next_pulse is reached *)
Q := (tx - last >= pt) OR (Man AND NOT man_last);
IF Q THEN last := tx; END_IF;
man_last := Man;

Offline Mudla

  • Newbie
  • *
  • Beiträge: 22
    • Profil anzeigen
Re: CLK_PRG_2
« Antwort #2 am: 13. September 2012, 13:54:40 »
Danke für die Verbesserung, man lernt ja nie aus  ;)

Grüße
Mudla