Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: модуль круговой энкодер

  1. #1

    По умолчанию модуль круговой энкодер

    ... а какое собственно быстродействие у модуля? есть задача - нужен счетчик с определением направления за счета....
    настроен круговой энкодер, на выводы которого подается две последовательности, сдвинутые на некоторое время... переменная читается в цикле и разность текущих и предыдущих показаний, т.е. приращение, аккумулируется в переменной.... кроме того смотрю саму переменную энкодера.....
    ..... с работой модуля проблемы, относительно устройчивый счет только на очень низкой скорости, и кроме того, приращение по 2 единицы счета... бывают и выпадения....
    прошивка 2.03, 2.05, 2.07 ..... аналогичные результаты.... фильтрация -1
    .....

  2. #2

    По умолчанию

    приращение 2 импульса на фронт, это так. Какой энкодер? сколько шагов на оборот?

  3. #3

    По умолчанию

    encoder 16bit
    encoder type -RING
    range - 99


    датчик висит на валу и выдает 10 импульсов на оборот. формируется 2 перекрывающиеся последовательности со сдвигом на 5-10 градусов, т.е. квадратурный энкодер

    при вращении вала логично предположить что переменная принимает значения 0 ... 1 .... 2 ..... 3 ... итд, на деле происходит : 0 ... 2 ... 5 ... 7 ... включенный параллельно счетчик counter 16bit считает правильно
    цикл быстрый

    вытаскивание приращения выполняется конструкцией:

    count_delta := count_signum - count_old;
    count_old := count_signum;

    где count_signum - переменная энкодера

    обработка переполнения (переход 99 - 0 и 0 - 99) делается отдельно и корректно )))

    при низких скоростях вращения (0.3-1 об/сек) count_delta должна принимать по идее значения 0 и 1.... однако проскакивают и 2 и 3 и 4



    в результате подпрыгов пришлось по энкодеру только определять направление, а счет брать с простого счетчика..... но энкодер может и потребоваться...... кстати, на линейном энкодере проблемы не заметил (хотя может просто не успел) ....

    да... почитав сайт узнал что энкодер гарантируется только до 1 кгц .... получается он софтовый? и годиться только ручку подключить?????
    Последний раз редактировалось Дмитрий Артюховский; 24.03.2009 в 17:45.

  4. #4

    По умолчанию

    Энкодер выдаёт импульсы по всем 4 фронтам. 10 импульсов на оборот - это механический получается? Тогда обязательно фильтрацию.

    Т.к. полоса входов до 10 кГц, а для энкодера её надо делить на 5, реально, при энкодере со сдвигом фазы 90 гр. максимальная частота 2 т.импульсов с секунду. У Вас сдвиг 5-10 градусов, соответственно разделите на 9-18 раз.
    Не "софтверные" энкодеры делаются на плисине или жесткой логике и это отдельный, дорогой модуль расширения обычно. Или отдельные, не универсальные входы. На универсальных приходится чем-то жертвовать.
    ПЛК1хх не предназначен для создания систем перемещения. ПЛК для систем перемещения стоят минимум на порядок дороже.

  5. #5

    По умолчанию

    Ну если софтовый - тогда все понятно. Просто из описания это неочевидно )) ведь скажем, модуль "генератор" имеет свое железо, почему бы не добавить еще один реверсивный счетчик для энкодера?

    Вот только про 4 фронта я не очень понял. Обычно одна последовательность опорная - у нее используются фронты, а вторая последовательность знаковая - у нее анализируется уровни в момент фронтов на первой.
    У Вас похоже реализована попытка поднять разрешение энкодера в два раза и идет анализ всех фронтов.... дело хорошее, только это сразу тащит повышенные требования с сдвигу последовательностей и пользователь может удивиться, почему его энкодер с паспортом на 100 импульсов оборот выдает 200 импульсов ! )))) (это то меня больше всего и подкосило, с быстродействие можно понять, помехи выловить .... но почему удваиваются показания! )))....

    .... тогда еще вопрос по энкодеру..... работа модуля зависит от длины цикла контроллера?

  6. #6

    По умолчанию

    Своё железо генератора - это таймер процессора. Вы видели процессоры с аппаратными энкодерами внутри? Я нет. ПЛИС - удовольствие совсем другого уровня цен.
    Энкодер считает независимо от цикла, но данные в канале обновляются только в начале каждого цикла.

  7. #7

    По умолчанию

    в самом АРМ-е наверно его нет, но у вас стоят же периферийные PIC-и... не знаю как у вас прорисована архитектура, но на своем любимом MSC-51 я могу поднять 2 - 3 почти аппаратных энкодера с полосой до 100 кГц точно... а уж если ставить чипы Далласа с ядром MSC-51.... правда это не совсем бюджетно.
    .... кстати, плис не такая и дорогая штука, как все бояться )) особенно когда рядом есть процессор для инициализации.

    С энкодером все понятно, спасибо за помощь.

  8. #8

    По умолчанию

    Пики для другого. 100 кГц - это если ничего другого процессор делать не будет. А как он будет сообщать о значениях - добавление любого протокола связи - снижение ГАРАНТИРОВАННОГО времени опроса входов в несколько раз. К сожалению, простыми средствами 100 кГц не получишь.

  9. #9
    Privodchik
    Гость

    По умолчанию

    Понял, что данная серия не предназначена для управления перемещениями, но не понял для каких случаев необходим софтовый энкодер?

  10. #10

    По умолчанию

    Вставляешь энкодер в шит и управляешь через него какой-нибудь уставкой или делаешь мини-HMI. Очень удобно.
    Энкодеры бывают и не на 100 кГц. Во многих случаях 1000 имп. в сек. хватает для контроля тех. процессов.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •