Devir hesabı için mantık, enkoder degerini okuduğunu varsayarak;
Kod:
TimeClock.IN := NOT TimeClock.Q;
TimeClock.PT := T#10ms;
TimeClock();
IF TimeClock.Q THEN (* 10ms bir örnek al 0.01s TON timer *)
SampleNew_Inc := SampleVal_Inc; (* Enkoder increment değeri *)
Speed := ( (SampleNew_Inc - SampleOLD_Inc)/0.01 )*60.0 ; (* Inc /dk sonucu*)
Speed_RPM := Tur_Inc * Speed; (* 1 Turda tambur ilerleme Increment degeri ile Speed çarp*)
SampleOLD_Inc := SampleNew_Inc; (* Son alınan örneği sakla *)
END_IF
Tur / Incement değerini aşağıdaki videodaki hesaplamadaki gibi hesaplayabilirsin