Új hozzászólás Aktív témák
-
moseras
tag
Sziasztok
"Szükségem lenne egy újraindítható timer-re."
Magamnak válaszolok:
A TIME() függvényt kell használni, ezzel a PLC indulása óta eltelt időt kapom meg msec-ben. Erre lehet már timer-t építeni, pl. így:
FUNCTION_BLOCK TP_X
VAR_INPUT
IN : BOOL;
PT : TIME;
END_VAR
VAR_OUTPUT
Q : BOOL;
ET : TIME;
END_VAR
VAR
edge : BOOL;
start : TIME;
tx: TIME;
END_VAR
(*
version 1.2 19. oct. 2008
programmer hugo
tested by oscat
retriggerable edge triggered pulse similar to TP but with a retrigger function
if the pt input is 0 then output is always low.
*)
(* @END_DECLARATION := '0' *)
(* read system_time *)
tx := DWORD_TO_TIME(T_PLC_MS());
(* rising edge trigger *)
IF in AND NOT edge THEN
start := Tx;
IF pt > t#0ms THEN Q := TRUE; END_IF;
END_IF;
edge := in;
IF q THEN
et := Tx - start;
IF et >= PT THEN
Q := FALSE;
et := t#0ms;
END_IF;
END_IF;
(* revision history
hm 4. aug 2006 rev 1.0
original version
hm 17. sep 2007 rev 1.1
replaced time() with T_PLC_MS() for compatibility reasons
hm 19. oct. 2008 rev 1.2
renamed to TP_R to TP_X for compatibility reasons
*)
END_FUNCTION_BLOCKForrás:
[link]Imi.
Új hozzászólás Aktív témák
- AKCIÓ Új Dobozos Macbook Pro dokkoló új ára 70.000 forint
- ThinkPad Hybrid USB -C USB -A Dock 40AF Új ára 80.000 Forint Ingyen szállítás
- Xiaomi Redmi Note 9s 128/6 GB 34.9E !!!
- Új Hp Pavilion 15-eh Fémházas Szuper Laptop 15,6" -30% AMD Ryzen 7 5700U 8Mag 16/1TB FHD MATT
- ATI RADEON RX 480 -8 gb DDR5 256 bit videokártya