OSCAT Forum

oscat.lib => Modulentwicklung / Module Development => Thema gestartet von: Mudla am 13. September 2012, 12:01:52

Titel: CLK_PRG_2
Beitrag von: Mudla 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]
Titel: Re: CLK_PRG_2
Beitrag von: peewit 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;
Titel: Re: CLK_PRG_2
Beitrag von: Mudla am 13. September 2012, 13:54:40
Danke für die Verbesserung, man lernt ja nie aus  ;)

Grüße
Mudla