Aşağıdaki koda benzer kaydırma işlemi yapılabilir. X hareketi +1mm değişikliğinde Y yüksekliğini shift registeri önce kaydırıp, yeni veriyi array_of_reals[0] a basar. X teki değişiklik miktarı n=600 e ulaştığında array_of_reals[599] veri yani 600 üncü mm değeri çıkışa sürekli basılır.
X tarafındaki hassasiyetin array boyunutu değiştirir unutma.
Kod:
IF ( X_mm - OLD_Xmm ) > 1.0 THEN // X Hareketi 1mm değiştiğinde (X hep aynı yönde hareket ediyorsa)
FOR i:=(n-1) TO 0 BY -1 DO // Dataları kaydırma işlemi, en güncel veri array_of_reals[0] da
array_of_reals[ i+1 ]:=array_of_reals[ i ]; // i inci veriyi, (i+1) inci array a kaydır
END_FOR
Y_Yuksekligi := Y_Yuksekligi +10; // Test için Y değerlerini Simüle etmek için bunu ekledim
array_of_reals[0] := Y_Yuksekligi ; // Y Yüksekliğini kaydet
OLD_Xmm := X_mm; // Eski Xmm değerini yenisi ile güncelle (X teki bir sonraki değişimi algılamak için)
END_IF
outShiftRegister := array_of_reals[n-1]; // n-1 inci array'ı çıkışa ver...