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

BlrUsr

У меня четыре вопроса

  1. Приведите настройки FUSE для этого привода

  2. Может кто-нить юзал этот двигатель DYNAMO SLIVEN PIK 8 - 6/2.5 36V 0.30 Nm 1600 min-1

  3. Почему программа ServoTurning - соединяется, а дальше при любом действии (timeout)

  4. Открытый проект на dsPIC30f4012h members.shaw.ca/swstuff/dspic-servo.html - будет ли серва быстрее чем на ATMEGе

Сергей_ps

Я на chipboom прошивал у него побитного доступа нет, Я на новом компе и конфиги не сохранил, примерно так- см. личку.
ЕПРОМ прошить не забыл? у меня зпустился без проблем, двжок вроде от эпсона, в соседнем посте упоминался.
А энкодер у тебя какой?

BlrUsr

EEPROM прошил - проверил - все идентично.
В качестве энкодера хочу использовать оптическую линейку (немецкую) . У нее точность 1 микрон. Или энкодер - 1000 на импульсов, как раз
под шаг моего винта получается 1 микрон дискретность.
Еще вопрос : безшунтовой измеритель тока двигателя.

arisov77

Для BlrUsr: А по какой схеме собирали, начём связь по RS-232?
Есть 2 варианта программы ServoTuning. Одна из них вер. 0.1.1.0 у меня больше глючила (вылетала), чем 1.0.0.0.

Для imilcnc (Будет ли так добр “художник” чтобь дал нам source code для ServoTuning.exe): скорее всего надо обращаться к Alexander A. Karsakbayev, а не к Художнику (Дмитрий Жабин), т.к. авторские права на ServoTuning вроде принадлежат ему. (Правой кнопочкой мыши и посмотреть свойства ServoTuning.exe в закладке Версия).
Не авторство Художника также косвенно подтвердила моя личная переписка с одним из участников форума, который лично общался с Дмитрием.

BlrUsr

Собирал на maxe232/ самое интерестное ,что в терминале при вкл выводится Servo controller V (вроде так)
Может командами через терминал можно задать значения пид. (такие ли они как у чена)

ServoTuning ver 1.0.0.0.

И еще вопрос :
Какая max скорость будет на моем станке : Шаг винта 1мм, енкодер 1000 им/об, двигатель DYNAMO SLIVEN PIK 8 - 6/2.5 36V 0.30 Nm 1600 min-1, сервопривод Художника.

Датчики тока, действие которых основано на эффекте Холла - подойдут для постоянника?
Такие у меня есть от старых жестких дисков.

arisov77

Попробуйте уменьшить скорость СОМ-порта (в диспетчере устройств) у меня стоит 9600.

Скорее всего датчики Холла от старого винта не подойдут, т.к. они не датчики тока, а датчики положения ротора. Обычно их 3 шт.

BlrUsr

Все нормально , спасибо . не было экрана, а рядом шаговики и импульсные источники “трещат”

Вопрос про обнуление станка. Как мне использовать маркер в линейке для точного обнуления.
Хотя понимаю , что для большинства хобби применений пойдут и концевики.

В линейке “энкодере”
A , неA
B , неB
R , неR

В сервоприводе художника(чена) показан как дополнительный вход на ATMEGу энкодера Z.
Он как-то влияет на систему?

arisov77
BlrUsr:

В сервоприводе художника(чена) показан как дополнительный вход на ATMEGу энкодера Z.
Он как-то влияет на систему?

Что-то я не нашёл по схеме у Художника доп. вход Z, есть вход Reserved. Я его не пробовал использовать, но судя по прошивке servo_mega8_int.asm – это должен быть вход ограничения движения (при лог.0 на этом входе переход на подпрограмму il_fall). В прошивке servo_mega8.asm этот вход не используется.

emilcnc

“для ServoTuning.exe): скорее всего надо обращаться к Alexander A. Karsakbayev”

помогите связатся с ним …

ICQ 110874072

emilvv@gmail.com

arisov77

emilcnc попробуйте связаться с Карелиным Максимом k2soft.narod.ru/contacts.htm , возможно он поможет. Художник (Дмитрий Жабин) указывает на www.k2soft.narod.ru в качестве домашней страницы www.cnczone.ru/forums/index.php?showuser=10. Или напишите Художнику в личку на форумах www.cnczone.ru и www.sapr2k.ru/index.php, так как с этого форума его изгнали. Кстати интересно за что?

27 days later
Anton_M
arisov77:

«слетала» EEPROM.

Чтоб память не слетала нужно правильно установить Фьюзы - смотрите в низу странички - avr123.nm.ru/02.htm

Anton_M
Anton_M:

Чтоб память не слетала нужно правильно установить Фьюзы - смотрите в низу странички - avr123.nm.ru/02.htm

Полевики советую брать для Н-моста на ток в 5 раз больший чем вам нужен для мотора (ток аппаратной защиты на 50% больше) и на напряжение на 50 % выше чем питание моста.

Микроконтроллер разумно выбрать с аппаратным интерфейсом для квадратурного энкодера - dsPIC30 или 33.

http://www.microchip.com/stellent/idcplg?I…;param=en533540

duritskiy

кто бы отладил и наладил производство недорогих сервоконтроллеров…

ATLab
duritskiy:

кто бы отладил и наладил производство недорогих сервоконтроллеров…

А оно нужно? В объемах, окупающих затраты на развертывание производства и приносящих прибыль и при этом недорогих?
При этом нужно учесть, что сервоконтроллер и двигатель суть “близнецы братья” - параметры одного сильно зависят от другого, что грамотно настроить сервопривод намного сложнее, чем просто подключить ШД…
Кто хочет серво - покупает микроконтроллер UHU и делает сам. Или покупает готовое решение - вместе с двигателем.
А вообще, серво - скорее из профессионального использования, а не хобби, и там недорогой контроллер скорее не нужен. Важнее надежность и качество.

arisov77
Anton_M:

Чтоб память не слетала нужно правильно установить Фьюзы…

Не поможет. На надёжность EEPROM в AtMega8 отвечает только 1 фьюз – BODLEVEL. Он у меня =0, т.е. сброс происходит при 4В, а сбой всё равно происходил. Очень хорошо описаны причины и способы устранения «слёта» EEPROM в книге В.Н. Баранова «Применение микроконтроллеров AVR: схемы, алгоритмы, программы», стр. 154-156. (выкладываю здесь – Reset_EEPROM.rar).
Из-за того, что нет гальванической развязки между МК и двигателем при искрении коллектора очень даже возможен сбой. (При питании 110В осциллограф стоящий рядом с проводами к движку «с ума сходит»). Для бесколлекторников, мне кажется это не так актуально.
Пути уменьшения вероятности слёта я вижу следующие: полная гальваноразвязка МК и выполнить рекомендации указанные В.Н. Барановым, т.е. Brown-детектор, изменение адреса EEPROM после записи и считывания, на адрес не содержащий данных, и мажоритирование. И есть на мой взгляд, самый надежный способ – это совсем отказаться от хранения данных в EEPROM, что я сделал. Хотя в этом способе есть недостаток – неудобство настройки, но надежность превыше всего.

Anton_M:

Полевики советую брать для Н-моста на ток в 5 раз больший чем вам нужен для мотора (ток аппаратной защиты на 50% больше) и на напряжение на 50 % выше чем питание моста.

Спасибо за советы. Об этом ещё писал emilcnc. Я сам до этого дошел после нескольких «бахов» во время своих экскрементов. Один (я уже выше на этой ветке писал) из-за своей ошибки, 2-ой раз - из-за перегрева транзисторов (при токе 1А - IRF740 без радиатора проработали около 30 сек.), 3 раз - из-за резкой смены направления. В принципе при правильном настроенном контроллере и Масh (плавный разгон и торможение в закладке Config/Motor Tuning) можно эксплуатировать сервопривод и без аппаратной защиты, но никто не застрахован от глюков Mach, наезда на препятствие и т.п.
Мне всё-таки пришлось поставить аппаратную защиту (на отдельной маленькой платке), установить радиаторы. На IRF740 c небольшим радиатором (очень хорошо подошёл алюминивый профиль от оконного карниза) и током ограничения около 1А привод можно эксплуатировать. На мой взгляд полевики надо брать с 10 кратным запасом (IRF740, 400V, 10A). При хорошем радиаторе можно, наверное, и 5 кратный запас.
Также выяснилось, что при удержании двигателя (при 1А) 2-ух ватный резистор RC-цепочки подключенной параллельно движку начинает сильно греться, пришлось поставить в параллель 2 шт. МЛТ-2 по 3кОм. Сейчас жду IRFP260N, Nкан 200В 49А, ТО247АС как у UHU. Как их получу буду дальше умощнять, о результатах сообщу позднее. Из-за этого у меня весь процесс затормозился.
При экспериментах (при «высоких» напряжениях) выяснилось, что контроллер чувствителен к наводкам по входу энкодера. Как выяснилось, из-за высокого выходного сопротивления датчиков энкодера. Пробовал щелевые оптопары с нагрузочным резистором 1кОм и экранированный провод – стало гораздо лучше, но ложные всплески всё равно оставались (смотрел по осциллографу). Помогло только расположение буферного усилителя с низким выходным сопротивлением непосредственно около оптопар. Экранированный провод я не стал использовать, но он не помешает.
Фото плат (без дополнений, качество платы не очень, бывает и получше, но как уж получилось…), схему с добавленным узлом контроля тока и внешним усилителем энкодера выкладываю в архиве. Также в новой схеме исправлены некоторые ошибки предыдущей (из-за не внимательности), которые я обнаружил: HL1, HL2 – свето, а не фото-диоды, аноды диодов VD16, VD19 должны «идти» к истокам соответствующих транзисторов. При сборке по моему варианту печатки, надо учесть, что VT2 - BC847 (SOT-23) надо перевернуть «вверх ногами».
R11 идущий на РС2 AtMegи на будущее, хочу сделать ограничение по времени срабатывания токовой защиты. Например, при заклинивании двигателя (при перегрузке) более 5 сек. следует отключение его на 15 сек., затем снова включается на 5 сек. И если перегрузка ещё остаётся, то опять выключить на 15 сек. и так несколько раз. Если перегрузка не будет устранена, то движок отключить совсем. Следующее включение только после выкл.-вкл. питания. Возможно это не и надо. Но это обезопасит двигатель и полевики.

Servo_2.rarReset_EEPROM.rar

13 days later
arisov77

Выходим на международный уровень www.cnczone.com/forums/showthread.php?t=62911.
Пару человек, которые повторили конструкцию или использовали прошивку от Художника (с прерываниями), мне там в личке написали, что у них тоже происходил через некоторое время сбой в работе сервоконтроллера.

chkmatulla

ATLab писал: “При этом нужно учесть, что сервоконтроллер и двигатель суть “близнецы братья” - параметры одного сильно зависят от другого, что грамотно настроить сервопривод намного сложнее, чем просто подключить ШД…”
Я подключаю любые движки к своим контроллерам UHU и никаких проблем не встречал. Разве что, для идеальной характеристики меняю величины PID, в контроллере.
Или мы говорим о разных вещах ?

arisov77

Пока ждал полевики IRFP260 (200В, 49А) переделал прошивки под AtMega88. Я тестировал только на этом МК, но уверен, что после незначительных изменениях в исходниках (см. комментарии) будет работать и с AtMega48. Возможно использование Atmega168 при соответствующем изменение таблицы векторов сброса. Если кому надо могу отдельно сделать исходники под AtMega48/168. Кстати при использовании AtMega88 у меня изменения EEPROM пока ещё не происходило.
В этих прошивках активирован WatchDog (в AtMega8, я забыл про него). Тоже если кому надо, могу выложить исходники с активированным WatchDog под AtMega8.
Также в исходниках есть отключенный «кусок» кода для увеличения Dead-Time, который мне на cnczone.com предложил китайский товарищ cbcb128. Но я его не стал использовать, т.к. в IR2184 есть уже аппаратный Dead-Time (500ns). Этот кусочек лучше использовать если драйвер выполнен, например как у Elm Chan.

Наконец получил IRF260, думал, что уж с ними греться ничего не будет. Ни тут-то было – через 20-30 сек. при удержании двигателя и срабатывании токового ограничения на уровне 1,5А транзисторы нагревались так, что «рука не терпит». Какие я только радиаторы не вешал, хотел уже вентилятор вешать. Однако заметил, что если токовое ограничение увеличить до 2А и при нагрузке движка 1,5А (удерживал двигатель и ServoTuning в режиме ШИМ прибавлял постепенно ток), то ничего не греется. Решил попробовать во время перегрузки отключать транзисторы не по SD в IR2184, как у UHU и у меня в первоначальном варианте, а входу IN. В результате – транзисторы перестали греться! Нагружал 3А (больше, имеющийся у меня двигатель, не потребляет) – транзисторы чуть тёпленькие.
Я думаю, что это произошло по следующей причине: когда ограничение тока происходит по SD-входу, то при лог. 0 на этом входе происходит полное закрытие всех транзисторов и в этот момент ЭДС самоиндукции «потекёт», например от +Motor -> левый верхний внутренний А-К диода полевика -> через низкое внутреннее сопротивление источника питания –> А-К диода нижнего правого полевика -> - Motor (как бы происходит шунтировании ЭДС двигателя на источник питания через внутренние диоды транзисторов). В этом случае на каждом транзисторе (диоде) «падает» около 0,6В.
Если же ограничение тока производиться по входу IN, то при лог.0 на этом входе верхние транзисторы закрываются, а нижние открываются и ЭДС мотора шунтируется через их низкое сопротивление каналов. При этом напряжение на транзисторах выделяется гораздо меньше. Соответственно и нагрев меньше.
Возможно нагрев уменьшился из-за чего-то другого. Было бы интересно это узнать.
Вариант схемы с изменениями и исходники для AtMega88 в архиве.

Servo_Mega88.zip

mura

Скажите плс, какой номинал R8?

arisov77

Все 3 выкладываемые мною схемы пересмотрел – везде чётко написано R8 - 10кОм, но можно поставить любой от 1кОм до 100кОм.
В последнем варианте нашёл, что на схеме отсутствует позиционное обозначение R11.