Страница 1 из 1

Направление вращения энкодера

Добавлено: 17 мар 2016, 15:05
bee
Добрый день.
В наличии NI 6343 + энкодер http://www.einformatyka.pl/wobitcompl/d ... M20_en.pdf
Завел сигнал с энкодера на 2 цифровых входа устройства (+ задействовал счетчик для триггирования) получается снимать/записывать сигнал и подсчитывать импульсы.
Встал вопрос об направлении и я завис. Логически понимаю что по опережению одного из каналов, но не могу придумать алгоритм действий для этого.
В данный момент пробую вычислять ширину импульсов и если она больше чем у 2х предыдущих в N раз принимаю за обратное направление - срабатывает если при смене направления на обоих входах логические 0 (рис.1). Также пытался исключать такие широкие импульсы и смотреть по опережению, но опять же срабатывает через раз.
Я понимаю, что данный подход не корректен в большинстве случаев, поэтому прошу помощи у участников форума.
Как можно определить направление вращения?

Re: Направление вращения энкодера

Добавлено: 17 мар 2016, 15:54
IvanLis
bee писал(а):Как можно определить направление вращения?
Посмотрите: http://easyelectronics.ru/avr-uchebnyj- ... koder.html

Re: Направление вращения энкодера

Добавлено: 17 мар 2016, 22:32
Blackman
У Вас же четко видно изменение фазы между сигналами. В начале сигнал красного плота опережает сигнал белого плота на 90 град, а при смене направления вращения уже сигнал белого плота опережает сигнал красного плота на 90 град. Поставьте фазовый детектор и все.

Re: Направление вращения энкодера

Добавлено: 24 мар 2016, 16:32
bee
Всем спасибо за участие.
С фазовым детектором не получилось реализовать, воспользовался подходом, который рекомендовал IvanLis.
Для показанных ранее наборов данных программа справляется с определением направления, но при увеличении частоты опроса датчика происходит сдвиг фаз и соответственно ошибки при обработке.
В приложении - то что получилось на данный момент + наборы данных.

Вопрос : Как избавиться от "сдвига" фаз при сборе данных (как на рис.1)

Re: Направление вращения энкодера

Добавлено: 25 мар 2016, 00:09
Blackman
Этот девайс поддерживает подключение энкодеров напрямую к счетчикам импульсов. Любой пример DAQmx по измерению положения будет работать с этим модулем.
Если хотите сделать на DI Task надо увеличивать Sample rate задачи. Минимальный Sample rate оценивается по следующей формуле: Кол. Имп. на один оборот*Число оборотов в сек макс. * 4. Это значение надо увеличить с учетом ошибки сдвига фазы сигналов энкодера. Для указанного типа энкодера эта ошибка равна 12,5 %. (1/8 периода).