84 lines
2.0 KiB
Plaintext
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
|