Цитата Сообщение от Newcomer Посмотреть сообщение
total := total + WORD_TO_DWORD(newValue - prevValue); дает не верный результат.

total := total + WORD_TO_INT(newValue - prevValue); дает верный результат.
Откуда такой вывод?

WORD_TO_DWORD нужно когда считаем "общее количество проделанных импульсов" (именно такая задача у автора темы) -- тут в prevValue/nextValue нужно брать счётчик.

WORD_TO_INT это когда пытаемся определить "абсолютное положение энкодера", но тогда и в prevValue/nextValue нужно брать не "счётчик", а реально "значение энкодера"

Снимок экрана 2016-10-06 в 16.35.17.png