CLK_PRG_2

Begonnen von Mudla, 13. September 2012, 12:01:52

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Mudla

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]

peewit

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;

Mudla

Danke für die Verbesserung, man lernt ja nie aus  ;)

Grüße
Mudla