Усовершенствованный сервопривод Чена

maxvovk
Zon:

Применить можно что угодно.Только при этом надо уметь писать
программу для этих девайсов.Данная тема интересует очень многих
Просмотров почти 15000. Умеют писать программы процентов пять но
им это не надо и в этом вся проблема.
А посему как я и написал выше таким темам 2-3 года с результатом
почти нулевым.(Перетирание чего лучше применить)

Тема интересует многих, но большинство скорее всего постольку поскольку.
Программы писать умеют дай Бог 1%, и из них почти некому это не надо.
Все скорее всего ждут либо чуда в виде открытого проекта, либо вариант UHU с МК за пару-тройку евро 😃.

ReGet
Zon:

видео работы двигателя с данным контроллером.

/попускал слюни 😃

ATLab
maxvovk:

Тема интересует многих, но большинство скорее всего постольку поскольку.
Программы писать умеют дай Бог 1%, и из них почти некому это не надо.
Все скорее всего ждут либо чуда в виде открытого проекта, либо вариант UHU с МК за пару-тройку евро 😃.

Imho, это обычное дело и ничего нового в этом нет.
Страсть к халяве свойственна не только нам - это явление интернациональное. Поэтому свободных проектов, аналогичных по качеству коммерческим, не найти (по-крайней мере мне не попадались).
Объяснения элементарны, и обсосаны не один раз.
Взять Вас maxvovk: как все красиво начиналось на чипмакерах, кипение, бурление, все и много … в свисток.
А когда это работа, за которую работодатель платит деньги (ну или свои), которые, в свою очередь, собирается окупить продажами - тогда 100 раз подумаешь, стоит ли начинать, а уж если начал - доведешь дело до логического завершения.
Успешного или нет.

arisov77
arisov77:

……… заметил что при скорости 4000мм/мин и энкодере 120имп/об. и на больших расстояниях, например 10 000мм, выключение движка происходило с опозданием (около 5-8 сек.) (Mach уже импульсы переставал выдавать, а движок всё вращался, но при останове позиционировался точно. При расстоянии 1000мм, когда проверял стабильность позиционирования, я этого не замечал (или не обращал внимания, т.к. смотрел на положение вала, а не на экран). Это может быть сервоконтроллер или не успевает сам двигатель, на слух вроде на максимальных оборотах крутиться. На недельке, выясню это поточнее ….

Со 100% точностью утверждать не буду, но скорее всего двигатель не успевает. Проверял так: в Mach установил скорость = 4000мм/мин и на одном из каналов энкодера измерял частоту = 1278Гц (2556 об/мин). Затем отключил МК («замкнул» вывод Reset на массу) и подал +5В на один из входов IR2184. Частота стала немного больше – 1298Гц (2596 об/мин). Видимо из-за того, что с МК управляется ШИМ это немного ограничивает напряжение на двигателе. Но мой вывод – двигатель работает на максимальных оборотах и поэтому происходит отставание.

Кстати, в А300 нет такого большого буфера, как в этом сервоконтроллере (24 разрядный). Правда не знаю нужен ли он такой, допустим – инструмент заденет за что-нибудь, потом это препятствие исчезнет (уберёт оператор) и сервопривод «попрёт» пока не достигнет нужной позиции и «попрёт» причем на максимальных оборотах. И в этот момент он управления по Step не слушается. Только питание надо обрубать.

chkmatulla

Zon, а нет инфы, где можно купить или заказать платы для А300 ? Хочу, для сравнения с UHU, собрать один комплект А300.

Post deleted.
arisov77
Zon:

Выкладывай.

Исходники под AtMega8 c WatchDog давно готовы, просто не хочется «перекручивать» другую плату под движок, чтобы протестировать. Если не горит то выложу попозже.

Увлекся я что-то этим контроллер. Всё работает, а ещё хочется что-то приспособить. Дописал подпрограмму мажоритирования, измененил адреса EEPROM после записи и считывания, (см. в этой ветке сообщение №61). Протестировал на AtMega88 - всё работает. Хочу добавить концевики ограничения хода. Если успею, то выложу на следующей недели. И под AtMega8 тоже.

ReGet
arisov77:

У меня не хуже работает. Постараюсь как-нибудь видео сделать.

Я не сомневаюсь. Мне сама работа серво-мотора понравилась, ШД отдыхает.
Выложите видео работы станка с серво-моторами, пожалуйста

chkmatulla

Кто- нибудь объясните пожалуйста, что это такое, WatchDog и с чем его едят ?

arisov77
chkmatulla:

Кто- нибудь объясните пожалуйста, что это такое, WatchDog и с чем его едят ?

WatchDog (сторожевой пёс) – в данном случае на работу сервоконтроллера никак не влияет. Он нужен только для увеличения надёжности работы. Допустим микроконтроллер «зависнет» из-за какой нибудь помехи. WatchDog анализирует это и через некоторое время (32мс-в данном случае) «сбрасывает» его в первоначальное состояние. (По аналогии с компьютером: при «зависании» компа», когда ничего уже не помогает - Вы нажимаете кнопочку “Reset”)

alkg

Я не сомневаюсь. Мне сама работа серво-мотора понравилась, ШД отдыхает.

А в чём имено преимушества ?

Constantine
alkg:

А в чём имено преимушества ?

В цене ))) бугога 😁

ReGet
alkg:

А в чём имено преимушества ?

В скорости

10 days later
Gogo55
arisov77:

У меня не хуже работает. Постараюсь как-нибудь видео сделать.

?

arisov77

Ещё пока продолжаю совершенствовать, кое что поменял в схеме, переделываю прошивку под smc3 от Чена, у Художника основа – smc2. А Чен писал, что smc3 более адаптирована для замены шаговых двигателей, судя по сnczone.com её чаще используют и с ней есть выход сигнала ServoError – который можно подать, например на E-Stop в Mache (для отключения в случае большого числа пропуска шагов, например, при «заклинивании» привода).
Как сделаю, протестирую – тогда всё расскажу и покажу, а пока промежуточных результатов не хочется выдавать, хотя от них польза есть, например mura подсказал про быстродействие оптопар.
Кстати из-за них обнаружился ещё один глюк – при высокой скорости во время реверсирования иногда (не всегда) происходил пропуск (переход) шагов. Причем в одну сторону «не доход» на 1 шаг, а в другую переход на 2 шага. При вращении в одну сторону всегда позиционировалось точно (даже при нагрузочных резисторах = 10кОм). Оказалось дело в задержке сигнала Dir (F/R) (получается, что этот сигнал более чувствителен к задержкам, чем Step). При уменьшении нагрузочного резистора до 1кОм пропуски шагов пропали, но при токе светодиода оптрона около 10мА (при 24В и токоограничивающем резисторе = 2,2кОм) падение напряжения на открытом фототранзистора оказалось около 1,2В, что для лог. «0» многовато поэтому необходимо ток через светодиоды оптопар установить в пределах 30-40мА (R= 680 Ом при U=24В).
Этот ток уже близок к максимально возможному (50мА) поэтому для надёжности лучше применить быстродействующие оптопары с током через светодиод около 5-10мА. На мой взгляд оптимально (по цене) применение HCPL-2631 (в Платане 60-90руб.), чем например, HCPL-2231 (200-260р.). Хотя HCPL-2231 по параметрам конечно лучше и с нею выходит уже логический сигнал. Они также отличаются цоколёвкой (3 и 4 в. меняются местами). Максимальной ток через светодиод у HCPL-2631 = 30мA, у HCPL-2231 = 10мА. Рекомендованный ток 6,3-15мА и 1,6-5мА соответственно. Я попробовал более дешёвые и с худшими параметрами HCPL-2531 (HCPL-2231 и HCPL-2631 у меня нет в наличии) – с ними у меня позиционирование нормальное. Пока оставил КР1010 (РС817) – потом при необходимости замёню. Кстати, оптопары можно совсем не ставить, а управлять напрямую с LPT, но тут свои проблемы…

arisov77

Спасибо, это наверное, как раз будет «золотой» серединой.

Помогите разобраться со следующим вопросом:
У Чена опрос состояния энкодера происходит по прерываниям от таймера через каждые 12мкс (83кГц). У UHU подглядел, что у него сигналы с энкодера идут на запараллеленые РВ0 (AIN0) || PD5 (OC1/T1) и PB1 (AIN1) || PD4 (T0). По всей видимости опрос происходит по прерываниям от компаратора (AIN0+ и AIN1-). Пытаюсь проанализировать, но никак у меня не получается, чтобы при любом изменении на входах компараторов было прерывание. Допустим, в худшем случае, из-за разбросов параметров внешнего компаратора LM339 на входах внутреннего будут следующие напряжения и на выходе - состояния :

  1. AIN0=4V, AIN1=0.6V, Out=1 – первое положение энкодера
  2. AIN0=4V, AIN1=3,95V, Out=1 - второе положение (нет прерывания)
  3. AIN0=0,55V, AIN1=3,95V, Out=0 - третье положение (есть прерывание)
  4. AIN0=0,55V, AIN1=0,6V, Out=0 - четвёртое положение (нет прерывания)

Тогда получается, что UHU используется, что-то другое. Хотелось бы услышать предположения, варианты алгоритмов опроса энкодера.

stano4nek

Господа специалисты, подскажите как натраивать параметры в Servotuning
#1, #5, #6, Kf, Kp, Ki, за что каждый параметр отвечает? Не могли бы вы доступно двумя словами написать и неотправлять к теории по ПИД регуляторам?
С чего начать расчет? Как прикинуть эти параметры?
Есть у меня мотор и энкодер на какое-то количество импульсов/оборот и …
Cпасибо!

arisov77
stano4nek:

Господа специалисты, подскажите как натраивать параметры в Servotuning
#1, #5, #6, Kf, Kp, Ki, за что каждый параметр отвечает? Не могли бы вы доступно двумя словами написать и неотправлять к теории по ПИД регуляторам?
С чего начать расчет? Как прикинуть эти параметры?
Есть у меня мотор и энкодер на какое-то количество импульсов/оборот и …
Cпасибо!

Если Вы собрали сервоконтроллер, то настроить его можно и без досканальных теоретических знаний. Я не думаю, что все, кто использует UHU или подобный контороллер обладают такими познаниями.
Когда всё подключите, запустите ServoTuning и там уже начинайте всё подряд менять. При наведении курсора мышки на окно задания параметра выскакивает подсказка о его наименовании. Лучше начать со второго 2 параметра (усиление, обратная связь по скорости). Добиться чтобы двигатель не «дёргался». Если двигатель после всех манипуляций не хочет останавливаться – поменяйте местами провода от движка или сигналы от энкодера (А и В).
После устранения «дёрганья» 1, 3 и 4 параметрами добивайтесь оптимизации разгона, торможения и точного позиционирования. 4 параметр влияет на мощность. 6 параметр у меня мало на что влияет.

chkmatulla

Все подряд менять рискованно. Особенно на подключенном к станку движке. Начинать нужно всегда с настройки двигателя, механически отсоединенного от станка. Возможны очень сильные толчки, которые могут привести к поломке кинематики и т. п.
Попробую вкратце описать, что на что влияет и как настраивать. Предел пропорциональности, чем меньше ( в процентах от диапазона измерения ) тем нервознеее система. Понятие меньше, в случае контроллера UHU означает что нужно увеличить число, в настройках. Т.е. предел пропорциональности 1000, это больше чем 2000. Если вал двигателя, после вывода из устойчивого состояния, начинает дрожать, дергаться или вибрировать, значит предел слишком мал, нужно увеличить. Можно рассчитать, на сколько именно но, я думаю многим проще будет настраивать на ощупь. Нормально, когда вал приходит в состояние покоя с затухащими колебаниями. Поэтому начинать нужно с максимального предела, уменьшая его до появления колебаний. Как только колебания появились, немного возвращаемся назад.
Время интегрирования, или, как его называют киповцы, время изодрома, нужно чтобы при маленьких отклонениях истинной величины от заданной, регулятор мог так же хорошо отрабатывать. Чем больше этот параметр, тем плавнее система приходит в равновесие. Оптимально, когда система совершает два полупериода перерегулирования. Выражаясь языком артиллеристов, перелет, недолет, попадание.
Дифференциальная составляющая работает по скорости нарастания параметра. Если параметр резко изменился, воздействие будет резче. Если слабо то, воздействие будет тоже мягче.
Это очень удобно наблюдать на экране, после воздействия на вал двигателя. Если есть нужда, могу попробовать снять примеры поведения системы, в процессе настройки.