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

Anrry

Я взял бы транзисторы помощнее. 😉

arisov77

Для блока питания можно соединить по схеме:… Диоды можно выбрать с 2 раза меньше максимальным током, т.к. работают по “очереди” - каждый в свой полупериод, но лучше конечно с запасом. Удобно использовать схему б, т.к. диоды можно разместить на общем неизолированном от корпуса радиаторе.

Ток ограничения в контроллере всё равно выбирать надо чуть больше номинального, и если у Вас потребляет 1,9А, то возможно использование IRF740 (400В, 10А).
Не знаю как у UHU, но у меня с 3А - IRF740 немного греються.
И не забывайте при использовании “напрямую” от 220В, надо обязательно использовать гальваническую развязку по LPT и СОМ портах.

GuntisK

Привет Всем! 😃
Собрал вот на макетке данное устроиство на АТМЕГЕ8 +Л298. Перепробовал разные прошивки- остановился пока на SERVO_UART.HEX. В программе SERVOTUNING- графики она строит, в режиме ШИМ тоже что-то меняается. А дальше-ничего. 😦 Немогу запустить чтобы работал с сигналами STEP-DIR. Посоветуите знающие-как все-таки контроллер заставить работать?

arisov77
GuntisK:

Собрал вот на макетке данное устроиство на АТМЕГЕ8 +Л298. Перепробовал разные прошивки- остановился пока на SERVO_UART.HEX. В программе SERVOTUNING- графики она строит, в режиме ШИМ тоже что-то меняается. А дальше-ничего. 😦 Немогу запустить чтобы работал с сигналами STEP-DIR. Посоветуите знающие-как все-таки контроллер заставить работать?

Ну, а сам двигатель при управлении от ServoTuning работает? Если да, то попробуйте отвёрткой или куском провода “потыкать” на выв.32 (PD2) (для корпуса TQPF-32). При этом от вывода желательно всё “отцепить”. Если при “тыкании” движок закрутиться на некоторое время, то проблема в согласовании LPT с контроллером.

GuntisK

В моем случае МК в корпусе PDIP28. Может в этом проблема? Я так понимаю большинство прошивок которые тут были заточены под TQFP-32? Двигатель то крутится (по краине мере старается)- при двиганий курсора на персоналке возможно заставить движок крутится то в одну то в другую сторону. Коеффициенты ПИД то неустановлены…
К LPT неподключал- для проверки пользовался генератором сигналов с TTL уровнями.

arisov77

От типа корпуса ничего не зависит. Установите сначала коэффициенты, погоняйте в режиме позиция. Если не получиться “успокоить” движок, то поменяйте между собою провода от двигателя или сигналы с энкодера А и В. И только потом подавайте сигал на вход Step.
Лучше использовать прошивку Servo_AtMega_TimerInt

GuntisK

Хорошо- попробую! 😉 Потом выложу фотки и видео.

arisov77

Попробовал управлять контроллером от ServoTuning через программатор для мобильников UFS-3 Tornado и утилитку виртуального порта DirectCOM. Разницы между СОМ-портом и через этот программатор по USB не заметил. Работает «шустро», без «вылетов». Значит проблема только c переходником USB на FT232. Бывают ещё переходники на CP2103 и PL2303. Можно также попробовать Data Cable для некоторых мобильников, мне кажется должен подойти от «старых» Siemens, т.к. у них есть Rx и Tx. Они правда работают с уровнями +3,3В, но программатор UFS-3 Tornado тоже с этими напряжениями работает.

Creolka
arisov77:

Для блока питания можно соединить по схеме:…

Спасибо за схемку. так и сделаю. И транзисторы возьму помощнее.

vadik

А вот эта (imafania.boom.ru/servotuning.htm) программа подойдет для настройки сервопривода. Она есть у кого-нибудь?
У меня есть двигатель BLDC c энкодером, хочу его применить. Есть у кого нибудь опыт его использования?
Можно переделать прошивку Чена под такой мотор?

15 days later
arisov77

Вот видео работы данного сервоконтроллера с двумя разными движками и энкодерами под управлением Mach и ServoTuning depositfiles.com/files/…/tseutbpe8 (48.82 Mb). Пока только на столе. На станке, возможно попозже сниму. На станке пока отладил одну ось (весом около 100кг), вторую ось (наверное, 500-1000 кг) пока не настроил (из-за механики - много люфтов и большая неравномерность движения, с 75г. мне кажется, смазку в редукторах даже не меняли). На мой взгляд люфты играют гораздо меньшую роль (их можно программно в Mach немного компенсировать), чем разного рода «затирания». Контроллер не успевает этого обрабатывать и появляются «рывки». Поэтому и важно быстродействие. Об этом где то давно писал maxvovk. Для плазмо(газо)резки возможно это не так «страшно», как например для фрезера. На «отлаженной» оси вместе с небольшими «затираниями» при скорости 4000мм/мин (даже секундомером замерял) с энкодером 240имп/об. на расстоянии 2 м. при «гонянии» «туда-сюда» портал всегда возвращался на место. Но в одну сторону всегда был «недоход» около 0,1мм, это уже видимо из-за люфтов (в Mache ещё не компенсировал).
Вместе с второй осью на небольшой скорости (300мм/мин) круг получается ровный и точный (чертилкой на листе металла).

pluto96

Доброго времени суток!
А у Вас нет нет видео о работе серво в режиме Step/Dir?
И какой прогой управляете?

arisov77

А Вы выше пост читали? Написано под управлением Mach и ServoTuning. А если подробнее, то на видео 1 движок под управлением Масh в режиме Step/Dir с изменённым Screen (есть ошибка - в окне “Скорость” не мм/мин, а об/мин). Движок на 220В, поэтому выше 2500 об/мин от 110В не выдаёт. Второй движок СЛ-369 (“старенький” серводвигатель с параллельным возбуждением, 110В) на видео - под управлением ServoTuning.

pluto96
arisov77:

А Вы выше пост читали? Написано под управлением Mach и ServoTuning. А если подробнее, то на видео 1 движок под управлением Масh в режиме Step/Dir с изменённым Screen (есть ошибка - в окне “Скорость” не мм/мин, а об/мин). Движок на 220В, поэтому выше 2500 об/мин от 110В не выдаёт. Второй движок СЛ-369 (“старенький” серводвигатель с параллельным возбуждением, 110В) на видео - под управлением ServoTuning.

Пардон, старость не в радость😁

1 month later
1 month later
arisov77

Начну с того, что изготовленные мною 2 сервоконтроллера успешно работают более месяца (по нескольку часов в рабочие дни).
Но для успешной работы пришлось в процессе монтажа-наладки устранить 2 программных «глюка». Первый проявлялся в виде кратковременного останова движения во время быстрых перемещений (4м/мин) и был быстро устранён – увеличением времени срабатывания WatcgDog таймера до 125ms. («Подсмотрел» у UHU rcopen.com/forum/f110/topic40457/185 rev 2.17, видимо у него это тоже происходило в первых версиях).
Второй «глюк» изрядно мне «потрепал нервишки». Проявлялся в виде перехода в режим “ServoError”, причём это могло как во время движения, так и во время «стоянки», но чаще всего (в 95%) в момент начала первого движения после включения питания. Мог и сразу без движения, после подачи питания. Проявлялось всё это очень редко - 3-5 раз(а) в день (иногда «везло»-было чаще), а иногда вообще ни разу не было. Происходило это в обоих приводах, независимо друг от друга.
Путём написания различных тестовых подпрограмм и считыванием информации в этот момент ServoTuning выяснилось, что происходила ошибка из большого рассогласования заданного и фактического положений (в подпрограмме +/-20000 Step). Исключение этой подпрограммы анализа рассогласования дало бы только то, что привод «ускакал бы семимильными шагами» 😃 к новой позиции. А если учесть что рассогласование в этот момент достигало несколько миллионов шагов, то «поля» может и не хватить.
Также выяснил, что такое количество «ложных» шагов выдавали цепи энкодера. Причём эти шаги всегда имели отрицательное значение. С «таймерной» прошивкой рассогласование было существенно меньше (20 000-30 000шагов), что косвенно подтверждает, что с прошивкой с прерываниями по компаратору сервопривод будет «шустрее».
Установка различных конденсаторов в цепях энкодера не помогла. Пробовал в подпрограмме обработке прерывания от компаратора ANA_COMP ввести программную фильтрацию (трёхкратный опрос и проверка на равенство с предыдущим состоянием) – тоже не помогло. Задержка при включении тоже не помогает.
Что конкретно помогло, я так до конца и не понял, т.к. нормальная работа стала возможной только после «группового» изменения в программе (переустановка в первоначальной инициализации, сброс флага прерывания от компаратора, очистка некоторых регистров, …). Кстати у UHU тоже была перестановка последовательности инициализации (rev 2.16). Интересно как потом Uli их обновлял, тем кому уже продал старые?
Предположительно помогла очистка регистров zl и zh. Выяснять конкретную причину не стал (из–за недостатка времени). Так что просто выкладываю новую, исправленную прошивку под AtMega88 с опросом энкодера по прерываниям от компаратора. В ней также исправлены несколько замеченных мною багов, которые на работу сервоконтроллера никак не влияли. В исходнике есть их описание и настройки под мои приводы.
Если, всё таки найдутся желающие повторить, то для повышения быстродействия в подпрограмме ANA_COMP можно отключить программную фильтрацию (переписать из предыдущей версии прошивки). Она хоть и не помогла в борьбе с «ложным» ServoError, но т.к. у меня энкодер с низким разрешением (240имп/об), то я её оставил («кашу маслом не испортишь»).
Самое главное из-за чего собственно я и начал переделку прошивки – «слёта» EEPROM ни разу не было!
По прошивке вроде всё, если кому надо скомпелирую c этими изменениями под AtMega8 и под AtMega88 с опросом энкодера по таймеру или без “программной фильтрации” по входу энкодера, но без 100% гарантии работоспособности, т.к. проверить не на чем. Если что не так, опишите «симптомы», исправлю и снова Ваше тестирование.

К сожалению, в схеме токового ограничения обнаружил свою ошибку. electronix.ru/forum/index.php?showtopic=58750
В момент когда открыты два нижних транзистора ток самоиндукции от двигателя «замыкается» через эти транзисторы «минуя» токоизмерительный резистор и соответственно контроля тока нет. Это может вывести из строя транзисторы. У меня установлены транзисторы с «запасом», поэтому из-за этого последствий пока нет, надеюсь, что и не будет и переделывать работающий конструктив не буду.

Ещё раз обращаю внимание, что при наличии даже небольшого люфта между валом двигателя и энкодером сервопривод нормально работать не будет. У меня на одной оси люфт есть (который без «сёрьезной» мех. переделке мне не удалось устранить) и в совокупности с изношенной местами передачей шестерня-рейка это вызывает рывки (дёрганья) на медленных скоростях. Эти рывки всегда проявляются в одних и тех же местах относительно рейки. Если в этот момент привод «подпереть» руками, то подача идёт ровно. На другой (многократно тяжелее первой) всё идет плавненько и ровненько. Недавно оператор, который раньше работал на этой газорезательной машине рассказал, что так было и до замены сервопривода. По одной оси рез ровный, по другой – не совсем good. Делаю вывод, что сервоконтроллер не виноват. Пока качество получаемых деталей заказчика устраивает и в случае чего они пообещали сами устранить все люфты.

До снятия видео всё никак «руки не дойдут», это надо опять ехать, снимать кожуха, чтобы показать, что именно эти платы крутят движки…

По поводу глюков с FT232 при работе с сервоконтроллером кое-что написано здесь kazus.ru/forum/topics/14286.html

Кстати, вот появился симпатичный вариант этого сервоконтроллера www.c-n-c.cz/viewtopic.php?t=2395 и www.cnczone.com/forums/showthread.php?t=69640.
Наконец то хоть кто-то повторил. А то я думал, что мне это только одному надо.
Выкладываю оттуда схему с платой.

Jozefp_Scheme+PCB.zipServo_AtMega88_CompInt_Modif.zip

STEPMOTOR

Классно ! А есть вариант платы в формате .lay или .pcb чтобы можно было ее отфрезеровать 😃 ?

arisov77

Пока в таком формате нет. Переведите – будет.
А прикольно придумано чешским товарищем наклеить рисунок с расположением деталей на плату. Никакой шелкографии не надо.
P.S.: Самая первая моя конструкция на печатной плате (в школьные годы) была из книги «Конструкции советских и чехословацких радиолюбителей». 😃

Виктор_Петрович

Живет товарищ в Словакии,недалеко от Украинской границы,если внимательно читать,можно понять что он пишет.А что нужно конкретно перевести?
P.S.Увлекается электроникой и рыбалкой,даже на плате напоминание оставил.

arisov77

Ну, тогда извиняюсь – словацкий товарищ.
Кстати, если в Google выбрать словацкий вместо чешского язык, то переводит гораздо лучше. А этот форум чешский или словацкий? Просто окончание .cz - я почему то подумал, что чешский.
Виктор Петрович – в формате .lay или .pcb люди пока не разговаривают:). Это надо из pdf формата перевести в выше указанные.

Виктор_Петрович

Об этих форматах спрашивал STEPMOTOR,CZ-чешский сайт,автор pajac(паяющий) живет в Словакии,могу Вас познакомить,люди приветливые.Я не понял вопроса,думал надо перевести какой либо текст(пять лет жил там).Layot5 пользуюсь.