(* @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