-
модуль круговой энкодер
... а какое собственно быстродействие у модуля? есть задача - нужен счетчик с определением направления за счета....
настроен круговой энкодер, на выводы которого подается две последовательности, сдвинутые на некоторое время... переменная читается в цикле и разность текущих и предыдущих показаний, т.е. приращение, аккумулируется в переменной.... кроме того смотрю саму переменную энкодера.....
..... с работой модуля проблемы, относительно устройчивый счет только на очень низкой скорости, и кроме того, приращение по 2 единицы счета... бывают и выпадения....
прошивка 2.03, 2.05, 2.07 ..... аналогичные результаты.... фильтрация -1
.....
-
приращение 2 импульса на фронт, это так. Какой энкодер? сколько шагов на оборот?
-
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 фронтам. 10 импульсов на оборот - это механический получается? Тогда обязательно фильтрацию.
Т.к. полоса входов до 10 кГц, а для энкодера её надо делить на 5, реально, при энкодере со сдвигом фазы 90 гр. максимальная частота 2 т.импульсов с секунду. У Вас сдвиг 5-10 градусов, соответственно разделите на 9-18 раз.
Не "софтверные" энкодеры делаются на плисине или жесткой логике и это отдельный, дорогой модуль расширения обычно. Или отдельные, не универсальные входы. На универсальных приходится чем-то жертвовать.
ПЛК1хх не предназначен для создания систем перемещения. ПЛК для систем перемещения стоят минимум на порядок дороже.
-
Ну если софтовый - тогда все понятно. Просто из описания это неочевидно )) ведь скажем, модуль "генератор" имеет свое железо, почему бы не добавить еще один реверсивный счетчик для энкодера?
Вот только про 4 фронта я не очень понял. Обычно одна последовательность опорная - у нее используются фронты, а вторая последовательность знаковая - у нее анализируется уровни в момент фронтов на первой.
У Вас похоже реализована попытка поднять разрешение энкодера в два раза и идет анализ всех фронтов.... дело хорошее, только это сразу тащит повышенные требования с сдвигу последовательностей и пользователь может удивиться, почему его энкодер с паспортом на 100 импульсов оборот выдает 200 импульсов ! )))) (это то меня больше всего и подкосило, с быстродействие можно понять, помехи выловить .... но почему удваиваются показания! )))....
.... тогда еще вопрос по энкодеру..... работа модуля зависит от длины цикла контроллера?
-
Своё железо генератора - это таймер процессора. Вы видели процессоры с аппаратными энкодерами внутри? Я нет. ПЛИС - удовольствие совсем другого уровня цен.
Энкодер считает независимо от цикла, но данные в канале обновляются только в начале каждого цикла.
-
в самом АРМ-е наверно его нет, но у вас стоят же периферийные PIC-и... не знаю как у вас прорисована архитектура, но на своем любимом MSC-51 я могу поднять 2 - 3 почти аппаратных энкодера с полосой до 100 кГц точно... а уж если ставить чипы Далласа с ядром MSC-51.... правда это не совсем бюджетно.
.... кстати, плис не такая и дорогая штука, как все бояться )) особенно когда рядом есть процессор для инициализации.
С энкодером все понятно, спасибо за помощь.
-
Пики для другого. 100 кГц - это если ничего другого процессор делать не будет. А как он будет сообщать о значениях - добавление любого протокола связи - снижение ГАРАНТИРОВАННОГО времени опроса входов в несколько раз. К сожалению, простыми средствами 100 кГц не получишь.
-
Понял, что данная серия не предназначена для управления перемещениями, но не понял для каких случаев необходим софтовый энкодер?
-
Вставляешь энкодер в шит и управляешь через него какой-нибудь уставкой или делаешь мини-HMI. Очень удобно.
Энкодеры бывают и не на 100 кГц. Во многих случаях 1000 имп. в сек. хватает для контроля тех. процессов.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума