Просмотр полной версии : модуль круговой энкодер
Дмитрий Артюховский
24.03.2009, 10:37
... а какое собственно быстродействие у модуля? есть задача - нужен счетчик с определением направления за счета....
настроен круговой энкодер, на выводы которого подается две последовательности, сдвинутые на некоторое время... переменная читается в цикле и разность текущих и предыдущих показаний, т.е. приращение, аккумулируется в переменной.... кроме того смотрю саму переменную энкодера.....
..... с работой модуля проблемы, относительно устройчивый счет только на очень низкой скорости, и кроме того, приращение по 2 единицы счета... бывают и выпадения....
прошивка 2.03, 2.05, 2.07 ..... аналогичные результаты.... фильтрация -1
.....
Филоненко Владислав
24.03.2009, 11:52
приращение 2 импульса на фронт, это так. Какой энкодер? сколько шагов на оборот?
Дмитрий Артюховский
24.03.2009, 17:40
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, 22:23
Энкодер выдаёт импульсы по всем 4 фронтам. 10 импульсов на оборот - это механический получается? Тогда обязательно фильтрацию.
Т.к. полоса входов до 10 кГц, а для энкодера её надо делить на 5, реально, при энкодере со сдвигом фазы 90 гр. максимальная частота 2 т.импульсов с секунду. У Вас сдвиг 5-10 градусов, соответственно разделите на 9-18 раз.
Не "софтверные" энкодеры делаются на плисине или жесткой логике и это отдельный, дорогой модуль расширения обычно. Или отдельные, не универсальные входы. На универсальных приходится чем-то жертвовать.
ПЛК1хх не предназначен для создания систем перемещения. ПЛК для систем перемещения стоят минимум на порядок дороже.
Дмитрий Артюховский
25.03.2009, 14:11
Ну если софтовый - тогда все понятно. Просто из описания это неочевидно )) ведь скажем, модуль "генератор" имеет свое железо, почему бы не добавить еще один реверсивный счетчик для энкодера?
Вот только про 4 фронта я не очень понял. Обычно одна последовательность опорная - у нее используются фронты, а вторая последовательность знаковая - у нее анализируется уровни в момент фронтов на первой.
У Вас похоже реализована попытка поднять разрешение энкодера в два раза и идет анализ всех фронтов.... дело хорошее, только это сразу тащит повышенные требования с сдвигу последовательностей и пользователь может удивиться, почему его энкодер с паспортом на 100 импульсов оборот выдает 200 импульсов ! )))) (это то меня больше всего и подкосило, с быстродействие можно понять, помехи выловить .... но почему удваиваются показания! )))....
.... тогда еще вопрос по энкодеру..... работа модуля зависит от длины цикла контроллера?
Филоненко Владислав
25.03.2009, 14:29
Своё железо генератора - это таймер процессора. Вы видели процессоры с аппаратными энкодерами внутри? Я нет. ПЛИС - удовольствие совсем другого уровня цен.
Энкодер считает независимо от цикла, но данные в канале обновляются только в начале каждого цикла.
Дмитрий Артюховский
25.03.2009, 17:55
в самом АРМ-е наверно его нет, но у вас стоят же периферийные PIC-и... не знаю как у вас прорисована архитектура, но на своем любимом MSC-51 я могу поднять 2 - 3 почти аппаратных энкодера с полосой до 100 кГц точно... а уж если ставить чипы Далласа с ядром MSC-51.... правда это не совсем бюджетно.
.... кстати, плис не такая и дорогая штука, как все бояться )) особенно когда рядом есть процессор для инициализации.
С энкодером все понятно, спасибо за помощь.
Филоненко Владислав
25.03.2009, 20:03
Пики для другого. 100 кГц - это если ничего другого процессор делать не будет. А как он будет сообщать о значениях - добавление любого протокола связи - снижение ГАРАНТИРОВАННОГО времени опроса входов в несколько раз. К сожалению, простыми средствами 100 кГц не получишь.
Privodchik
25.03.2009, 21:58
Понял, что данная серия не предназначена для управления перемещениями, но не понял для каких случаев необходим софтовый энкодер?
Филоненко Владислав
26.03.2009, 09:01
Вставляешь энкодер в шит и управляешь через него какой-нибудь уставкой или делаешь мини-HMI. Очень удобно.
Энкодеры бывают и не на 100 кГц. Во многих случаях 1000 имп. в сек. хватает для контроля тех. процессов.
Sniper007
26.03.2009, 09:54
Да, это тема. Повесить СП270, энкодер и получаем российский аналог Jumo Logoscreen
lunyov_i
07.04.2009, 05:57
Вставляешь энкодер в шит и управляешь через него какой-нибудь уставкой или делаешь мини-HMI. Очень удобно.
Энкодеры бывают и не на 100 кГц. Во многих случаях 1000 имп. в сек. хватает для контроля тех. процессов.
К примеру взял энкодер 800 импульсов на оборот... Овен нормально считывает если только один оборот 10 секунд. Это получается частота 80 гц.... И что делать, если необходимо чтобы был один оборот в секунду?
Пробовал и фильтрацию ставить, но тогда вообще толком не работает...
Энкодер круговой ENA-800-3-N-24... c открытым коллектором...
Николаев Андрей
07.04.2009, 09:35
К примеру взял энкодер 800 импульсов на оборот... Овен нормально считывает если только один оборот 10 секунд. Это получается частота 80 гц.... И что делать, если необходимо чтобы был один оборот в секунду?
Пробовал и фильтрацию ставить, но тогда вообще толком не работает...
Энкодер круговой ENA-800-3-N-24... c открытым коллектором...
И зря это Вы так. 10 Кгц энкодеры не подключите, а вот 2 КГЦ вполне себе работает. А фильтры действительно нужно отключать, что указано в документации.
lunyov_i
07.04.2009, 10:17
И зря это Вы так. 10 Кгц энкодеры не подключите, а вот 2 КГЦ вполне себе работает. А фильтры действительно нужно отключать, что указано в документации.
Я говорю то что есть. Корейский инкрементальный энкодер ENA-800-3-N-24
(от Autonics www.autonics.com) ( выхода - открытый коллектор )
800 импульсов на оборот. Приходится медленно крутить (12-14 секунд ) чтобы за один оборот увидеть 800 импульсов... Если быстрее крутишь то счет практически не происходит....
Но как выяснилось это связано с прошивкой 2.05.07, поменял на 2.07.02 и энкодер стал считать на нечто похожее
на правду...Только не знаю не возникнут ли другие проблемы уже с новой прошивкой 2.07.02....?!
По моему уже вижу эти проблемы - теперь на один оборот вместо 800 импульсов - 3000....
Хотя на прошивке 2.05.07 при каких угодно малых оборотах получал четко 800....
Да.... Баг и Овен видимо надолго братья.....
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot