Два быстрых входа заменены на модуль "Fast Encoder". Подсчет импульсов реализован программно через функциональный блок с обработкой прохода через 0.
Вот собственно код:
in_prev := in_now;
in_now := enc_in;
jump := enc_imp / 2;
delta := in_now - in_prev;
IF delta > 0 OR delta < 0 THEN
IF delta > -1 * jump AND delta < jump THEN
acc := acc + delta;
ELSE
IF delta > 0 THEN
acc := acc - enc_imp + delta;
ELSE
acc := acc + enc_imp + delta;
END_IF
END_IF
END_IF
IF reset THEN
acc := 0;
END_IF
enc_out := acc;
Реализовывал по примеру , выложенному на форуме.
В качестве "enc_in" служит %IW0.0




Ответить с цитированием