(* Main timer *)
ton_PuzzleTimer(IN:= , PT:=tMaxPuzzleTime , Q=> , ET=> );
IF xStartTimer THEN
ton_PuzzleTimer.IN:=TRUE;
END_IF
IF xStopTimer THEN
TempTime:=T#0S;
ton_PuzzleTimer.IN:=FALSE;
(* Store actual time in temp when paused *)
IF xPauseTimer THEN
TempTime:= TempTime + ton_PuzzleTimer.ET;
(* Calculate actual and remaining time *)
ActualPuzzleTime:= TempTime + ton_PuzzleTimer.ET;
tRemainingTime:=tMaxPuzzleTime - ActualPuzzleTime;
(* Process *)