INT
リングカウンタ2.5ms
このデータレジスタは、リングカウンタとして働きます。レジスタ値が、2.5ms毎に増加します(計数範囲: 0–32767および-32768–0)。レジスタの値(v)を2つの異なる時間(v1とv2)で比較すると、経過値(t)が測定されます。 t = (v2-v1) x 2.5ms
レジスタの値は、各スキャンの先頭に更新されます。
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;