Esiste anche la funzione SysGetSysTime() che permette la lettura di un tick di sistema che si incrementa ogni uS, in questo caso il programma precedente può essere modificato nel modo.
(* Init the reference time at first program loop. *)
IF SysFirstLoop THEN
RefTimeBuf:=SysGetSysTime(TRUE); (* Save the reference time *)
END_IF;
(* Check if 1 Sec is passed and invert the logic DoOOM00 state. *)
IF (SysGetSysTime(TRUE) > (RefTimeBuf+1000000)) THEN
RefTimeBuf:=SysGetSysTime(FALSE); (* Save the reference time *)
Do00M00:=NOT(Do00M00);
END_IF;
Da notare la chiamata a SysGetSysTime() con la flag FALSE per avere lo stesso tempo utilizzato nel confronto e non perdere i uS di tempo necessari alla esecuzione delle istruzioni di confronto.