Вычислить положение квадратурного кодера
Блок управления двигателем/декодеры датчиков
Блок квадратурного декодера вычисляет положение квадратурного кодера. Блок использует текущее значение счетчика кодера и значение счетчика кодера в предыдущем индексном импульсе для вычисления углового положения квадратурного кодера (и ротора) в градусах, радианах или на единицу.
На этом рисунке показан диск квадратурного кодера с двумя каналами (QEPA и QEPB) и индексным импульсом (QEPI):

В этом примере таймер, управляемый QEP, увеличивается на четыре для каждой щели:

Блок вычисляет угловое положение (в счетчиках) квадратурного кодера как:
При вращении кодера по часовой стрелке:
Если ,
Idx)
Если Cnt и направление вращения вала не изменяется,
Idx)
Если Cnt и направление вращения вала изменяется на противоположное,
− Cnt)
При вращении кодера против часовой стрелки:
Если ,
− Cnt)
Если Cnt и направление вращения вала не изменяется,
− Cnt)
Если Cnt и направление вращения вала изменяется на противоположное,
Idx)
При сбросе параметра External index count импульс Idx сбрасывает значение Cnt на ноль, поэтому:
Cnt
где:
- угловое положение квадратурного кодера в счетчиках.
- это количество счетчиков в одном цикле вращения квадратурного кодера.
Блок вычисляет выходной сигнал, как:
щель) (в градусах)
на щель) (в радианах)
щель) (в единицах измерения)