INT
Contatore ciclico 2,5ms
Il registro dati funge da contatore ciclico. Il valore di registro viene aumentato di uno ogni 2,5ms (intervallo di conteggio: 0–32767 e -32768–0). Confrontare i valori di registro (v) in due momenti diversi (v1 e v2) per determinare il tempo trascorso (t): t = (v2-v1) x 2,5ms.
Il valore di registro viene aggiornato all'inizio di ogni scansione.
if (NOT bIsInitialized) then
bIsInitialized:=TRUE;
iRingCounter_Old:=sys_iRingCounter_2ms5;
iScans:=1;
else
iRingCounter_New:=sys_iRingCounter_2ms5;
iRingCounterDiff:=iRingCounter_New-iRingCounter_Old;
if (iRingCounterDiff>0) then (* Important to work also for shorter scan times *)
diScanTime_µs:=(INT_TO_DINT(iRingCounterDiff)*2500)/INT_TO_DINT(iScans);
iRingCounter_Old:=iRingCounter_New;
iScans:=1;
else
iScans:=iScans+1;
end_if;
end_if;