PDA

Просмотр полной версии : Круговой энкодер



Виктор_Л
13.12.2008, 10:05
Применил в программе подмодукль энкодера в качестве кругового энкодера, Range 40000.

L_REAL:INT;

L_REAL:=ENCODER;

При вращении энкодера в прямом направлении L_REAL равна показаниям энкодера, при вращении в обратном направлении, после перехода через ноль, энкодер принимает значения 40000, 39999 и т. д., апеременная L_REAL как принимает значения дополнения до 65556 к показаниям энкодера, причем с отрицательным знаком. Почему это происходит и каким образом это обойти?
Контроллер ПЛК_100.Р-М, target_2.02, PLC_100_2.03.0.

Виктор_Л
13.12.2008, 14:57
Ошибка была в обЪявлении переменной. Вместо INT надо UINT.