ParamManagerScripts/backend/script_groups/TwinCat/.example/CLOCK_SIGNAL.EXP

84 lines
2.0 KiB
Plaintext

(* @PATH := '\/TASK0_VOID' *)
(* @SYMFILEFLAGS := '59392' *)
PROGRAM Clock_Signal
VAR
mSec_100 : INT;
mSec_10 : INT;
mClock_1s : BOOL ;
mONS : R_TRIG ;
mTemp : BOOL ;
mInc : INT ;
END_VAR
(* @END_DECLARATION := '0' *)
gCPU_Counts ;
gSystem_Time;
mSec_100 := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 100;
(*Sec_10 := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/1000000) MOD 10;*)
gMinInSeconds := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 60;
gTime_sec := UINT_TO_REAL (gMinInSeconds) + INT_TO_REAL (mSec_100) / 100;
IF mSec_100 < 50 THEN
gClock_1s := TRUE ;
ELSE
gClock_1s := FALSE ;
END_IF
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 5 < 3 THEN
gClock_50ms := TRUE ;
ELSE
gClock_50ms := FALSE ;
END_IF
gClock_60ms := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 6) ;
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 10 < 5 THEN
gClock_100ms := TRUE ;
ELSE
gClock_100ms := FALSE ;
END_IF
gClock_200ms := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/1000000) MOD 2) ;
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 50 < 25 THEN
gClock_500ms := TRUE ;
ELSE
gClock_500ms := FALSE ;
END_IF
(*IF TRUNC (UDINT_TO_REAL (gCPU_Counts.cpuCntLoDW) / 1000000) MOD 10 < 5 THEN
gClock_1s := TRUE ;
ELSE
gClock_1s := FALSE ;
END_IF
*)
gClock_2s := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 2) ;
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 10 < 5 THEN
gClock_10s := TRUE ;
ELSE
gClock_10s := FALSE ;
END_IF
gClock_20s := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000000) MOD 2) ;
IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000000) MOD 6 < 3 THEN
gClock_60s := TRUE ;
ELSE
gClock_60s := FALSE ;
END_IF
mONS(CLK:=gClock_60s) ;
IF mONS.Q THEN
mInc := mInc + 1 ;
IF mInc>3 AND mInc<6 THEN
gClock_120s := TRUE ;
ELSIF mInc>6 THEN
gClock_120s := FALSE ;
mInc := 0 ;
END_IF
END_IF
END_PROGRAM