Сбрасывать, сбрасывать когда?
Если сбрасывать просто по фронту Z, то момент сброса будет зависеть от фактического направления вращения.
Как вариант, можно следить за направлением вращения и искать конкретный фронт в зависимости от направления вращения.
Ну или просто забить, и сбрасывать положение при любом фронте Z (что я и сделал)
Последний раз редактировалось Владимир Ситников; 07.10.2016 в 13:10.
Про Z метку. Привязка к фронтам А и В
Захват-3.png
Условно показан энкодер с одним "импульсом" на оборот.
Учтите, что один импульс - четыре такта изменения сигналов А и В.
Последний раз редактировалось petera; 07.10.2016 в 13:23.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Она всегда именно так выглядит?
Не будет ли того, что "длина Z" равна длине, скажем A?
Да даже если она привязана ко всем фронтам A и B, то всё равно "физический ноль" не может соответствовать сразу обоим фронтам Z метки.
Я и говорю: либо нужно эту погрешность проигнорировать, либо считать всегда один конкретный фронт Z метки (скажем, "левый"), который будет либо RTRIG, либо FTRIG в зависимости от направления вращения.
Указатель нулевой отметки / импульс полного оборота (выход N)
В энкодере, имеющем этот выход, импульс на этом выходе появляется в каждом обороте вала. Функция показателя нуля может использоваться для сброса внешне связанного счетчика или для регистрации начальной (нулевой) позиции.
Сброс счетчика ABZ-энкодера должен происходить при True на всех его трех входах - это будет самый точный "ноль". Фронт значения особого не имеет (во всяком случае для моего применения), но предпочтительнее передний.
За программу спасибо! Не ожидал, что будет так быстро готово. Постараюсь на следующей неделе воплотить всё это в железе, но правда на столе. Заодно проверю свой вариант решения "стандартными" средствами.
Не совсем понятно назначение выходной переменной counter в блоке PRU_ABZ_ENCODER. Если это просто счет импульсов, то оно без надобности. Вполне достаточно детектора истинного нуля и регистра показаний.
Последний раз редактировалось Sulfur; 07.10.2016 в 13:33.
В самом энкодере всегда сбрасывают по обоим сторонам Z.
А в программе управления, зная направление вращения - учитывают это при расчёте положения
Тролль-наседка, добрый, нежный и ласковый
Привязана к фронтам А и Б, как на рисунке
Условно показан энкодер с одним "импульсом" на оборот.
Учтите, что один импульс энкодера - четыре такта изменения сигналов А и В.
Захват-1 (1).png
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg