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

nycodim

ну хз. я с разных компов пробовал - результат был один, но всё равно спасибо за потверждение, я только после этого решил попробовать IE.

6 months later
crashzoom

Сделал сервопривод, не могу запустить. Прошил прошивкой Servo_AtMega88_CompInt_Modif. При запуске устройства, если крутнуть немого двигатель, он начинает крутиться в одну сторону, пока не сработает ошибка.
Когда в программе ServoTuning устанавливаю на серво режим скорость. Все нормально, срабатывает удержание. А при переключении в режим позиция начинает крутиться в одну сторону.
Что это может быть и как с этим бороться?
Не пойму как работать с программой. Как установить настройки и записать их в иипром? Не могу найти коррекцию ошибки.

ukr-sasha

Попробуйте поменять местами сигналы энкодера А и В.

crashzoom

Пробовал, тоже самое, только в обратную сторону. При включении сервопривода сразу начинает крутиться и срабатывает ошибка. В проге сервотюнер, в режиме позиция тоже самое.

11 days later
dominatoress
crashzoom:

Пробовал, тоже самое, только в обратную сторону. При включении сервопривода сразу начинает крутиться и срабатывает ошибка. В проге сервотюнер, в режиме позиция тоже самое.

У меня почти тоже самое, конструктив чеховский, прошивка из сообщения 305. атмега48-20, стабильной работы добиться не могу, при настройке датчиков по методу Арисова: 00-01-11-10, почти всегда начинает вращатся после включения, если же установить их по схеме: 01-10-01-10, то двигатель удерживает с сопротивлением свое положение, при подаче команд с mach3,

  • или - двигатель отрабатывает( работает во время нажатия) но всё равно крутится в одну сторону. Пока не одолел.
crashzoom
dominatoress:

У меня почти тоже самое, конструктив чеховский, прошивка из сообщения 305. атмега48-20, стабильной работы добиться не могу, при настройке датчиков по методу Арисова: 00-01-11-10, почти всегда начинает вращатся после включения, если же установить их по схеме: 01-10-01-10, то двигатель удерживает с сопротивлением свое положение, при подаче команд с mach3,

  • или - двигатель отрабатывает( работает во время нажатия) но всё равно крутится в одну сторону. Пока не одолел.

Я так понял и плата такая же как в сообщении 305?
Где можно почитать по настройки датчиков по методу Арисова. Я так и не понял с 0 и 1. У меня обычный энкодер на 2000 стоит. Буду уменьшать, чтоб поц не насиловать. Со своей проблемой я разобрался.
Надо проверить сначала через Servo tuner на всех режимах и если все заработает нормально, то можно уже и подключать к мачу и копать дальше.

dominatoress

Плата из сообщения 198.
Про энкодер из сообщения 274: . Если в одну сторону позиционирование точное, а в другую – с большой, всегда непостоянной погрешностью и в программе ServoTuning при считывании текущей позиции величина перемещения совпадает с заданной, то неисправность может оказаться в энкодере. У меня такое было с самодельным энкодером, в качестве датчиков в котором я использовал 2 щелевые оптопары оптопары PRI-246 www.rtcs.ru/hwsubtype.asp?id=195 (подобные оптопары можно найти в 3,5” дисководах). Я случайно немного изменил расстояние между оптопарами и произошел сдвиг фаз между каналами.
Для настройки расстояния между оптопарами я использовал индикатор на 2 светодиодах (с буферным «усилителем» на CD4093 или К561ТЛ1) и при вращении диска энкодера добивался «стандартной» комбинации: 00 <-> 01 <-> 11 <-> 10 и так «по кругу» (0 – не «горит», 1 – «горит»).

crashzoom:

У меня обычный энкодер на 2000 стоит. Буду уменьшать, чтоб поц не насиловать. Со своей проблемой я разобрался.

Интересно, как вы разобрались с этой проблемой, распишите пожалуйста, теперь на всех режимах у вас в Servo tuner работает нормально? У меня нормально только в ШИМе и КРут. Мом. нормально, а в скорости и позиции нет стабильности. Энкодер-от принтера?

crashzoom

Энкодер kipia.ru/upload/iblock/ec9/ep50s.jpg такой примерно, покупной.
У меня проблема - помеха гуляла и на опторазвязке импульсы иногда проскакивали.
Если на скорости и непорядок, то возможно энкодер шалит. На скорости на самых малых оборотах как ведет себя?
На выходах с энкодера форма сигнала прямоугольная или фронт может завален?

dominatoress

Ну если у вас фабричный блок энкодера, вам можно наверное его не настраивать, у меня самодельный(плата) диск на 62 прорези. Конечно он шалит, на скорость в среднем положении "ноль"не останавливается, форма сигнала не совсем прямоугольная и не стабильная.

crashzoom:

При включении сервопривода сразу начинает крутиться и срабатывает ошибка

  • устранили установкой конденсаторов на питающие выводы входной оптопары?
crashzoom
dominatoress:
  • устранили установкой конденсаторов на питающие выводы входной оптопары?

Да, и переразвел землю на плате.

dominatoress
crashzoom:

Да, и переразвел землю на плате.

Установил конденсатор на питающие выводы оптопары-не помогло, после устранения разных косяков состояние как у вас:

crashzoom:

Когда в программе ServoTuning устанавливаю на серво режим скорость. Все нормально, срабатывает удержание. А при переключении в режим позиция начинает крутиться в одну сторону.

Не могли бы вы выложить фотографию как развести “землю” на плате? ,чтобы избежать помех.
По программе:

crashzoom:

Не пойму как работать с программой. Как установить настройки и записать их в иипром? Не могу найти коррекцию ошибки.

Сообщение 41:
Для этого я поступил следующим образом: сначала в контроллер записываю прошивку от Художника, я использовал servo_mega8_int.hex (Flash) и servo_mega8_int.eep (EEPROM). Затем в ServoTuning «гоняю» движок, меняю ПИД-коэффициенты, записываю их на бумагу. Потом полученные десятичные значения перевожу в шестнадцатеричные (по 2 байта). Эти hex в AVRStudio c прошивкой ServoFinishArtistInt.asm или ServoFinishArtist.asm ввожу в подпрограмме LoadPIDParamRAM (там есть комментарии), перекомпилирую и уже конечный (финишный) hex-файл в CodeVision «шью» в контроллер.

Как-то так надо записывать свои коэф-ты в ЕЕПРОМ, вам удалось?

crashzoom

Землю разводить надо от питания отдельно на проц, отдельно на ирки, ну и кондеры по 0.1 фильтровать.
На сколько я понял коэффициенты читаются с первого банка. Надо изменить коэффициенты и сохранить их в первом банке.

dominatoress
crashzoom:

Землю разводить надо от питания отдельно на проц, отдельно на ирки, ну и кондеры по 0.1 фильтровать.

С конденсаторами понятно. Извиняюсь возможно за глупый вопрос, я так понимаю вы отрезали на плате дорожки “минус” к АТмеге и ИРкам в нескольких местах и пустили навесным монтажем провода от общего разъёма питания ХР4 на плате к их минусовым выводам?

crashzoom
dominatoress:

С конденсаторами понятно. Извиняюсь возможно за глупый вопрос, я так понимаю вы отрезали на плате дорожки “минус” к АТмеге и ИРкам в нескольких местах и пустили навесным монтажем провода от общего разъёма питания ХР4 на плате к их минусовым выводам?

Я полностью переразвел плату под детали которые у меня есть. Почти все делал в smd исполнении. Поставил оптопару на степ 6n137, остальное pc817. Ирки поставил в dip корпусе, так как могут вылететь, чтоб удобно было менять. Остальное вроде тоже. Пока для двигателя на 15А 80V хватает. Для более мощных надо ставить опторазвязку перед ирками с проца. Прошивку использую Servo_AtMega88_CompInt_Modif. Осталось все теперь проверить не на стенде, а в боевых условиях.

dominatoress
crashzoom:

Я полностью переразвел плату под детали которые у меня есть. Почти все делал в smd исполнении. Поставил оптопару на степ 6n137, остальное pc817. Ирки поставил в dip корпусе, так как могут вылететь, чтоб удобно было менять. Остальное вроде тоже. Пока для двигателя на 15А 80V хватает. Для более мощных надо ставить опторазвязку перед ирками с проца. Прошивку использую Servo_AtMega88_CompInt_Modif. Осталось все теперь проверить не на стенде, а в боевых условиях.

Нехило!

cd-print
crashzoom:

Я полностью переразвел плату под детали которые у меня есть. Почти все делал в smd исполнении. Поставил оптопару на степ 6n137, остальное pc817. Ирки поставил в dip корпусе, так как могут вылететь, чтоб удобно было менять. Остальное вроде тоже.

А можно попросить посмотреть разводку. Очень интересно посмотреть разводку силовой части. Заранее спасибо.

dominatoress

Забавно, у меня пока 2 одинаковых платы по Чеху (сообщение198), при тестировании их с одним и тем же двигателем у одной из них такая беда:

crashzoom:

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

А у второй нет проблем- в режиме позиция (режим-который имитирует работы от ПК) нормально срабатывает удержание, и вращение только по команде. Взаимная перестановка микроконтроллеров ничего не дает, поэтому я думаю проблема в дискретной части схемы одной платы, либо в каком-нибудь элементе, при данных обстоятельствах делать переразводку платы делать не хотелось бы, надо разобраться с проблемной платой.

crashzoom:

У меня проблема - помеха гуляла и на опторазвязке импульсы иногда проскакивали.

Хотелось бы узнать:

  1. в какой части схемы появлялась помеха( в какой точке определили помеху осциллографом)?
  2. ваш промышленный энкодер сразу подключается к плате, или через усилитель на CD4093?
crashzoom

Развел землю неправильно, не отделил силовую часть. Осциллографом помеху не видно, вычислил логически. Вытаскивал ирки, помеха исчезала, как только вставлял, помеха шла. Ну а на что наводило, вычислил, что на оптопару. Так как двигатель всегда крутился в одну сторону. Получается при включении ирки не генерят сигнал, но как только немного повернешь вал, ирки начинают генерить, чтоб восстановить исходную позицию, и создают помеху, которая начинает генерить шаги. Как то так.
Промышленный энкодер подключается напрямую.

dominatoress
crashzoom:

Ну а на что наводило, вычислил, что на оптопару. Так как двигатель всегда крутился в одну сторону. Получается при включении ирки не генерят сигнал, но как только немного повернешь вал, ирки начинают генерить, чтоб восстановить исходную позицию, и создают помеху, которая начинает генерить шаги.

Если думать логически, тогда в режиме позиция (режим-который имитирует работу от ПК) сразу начинает крутиться двигатель то помеха идет и по STEP и по DIR каналу, если же от небольшого вращения рукой(задание DIR)-помеха идет только по STEP. Думаю надо попробовать для тестирования изолировать входы STEP и DIR ножки 4, 26 в АТмегу(для Servotuning они не нужны), и если неисправность останется без изменений- тогда будем смотреть выходы -15,16. Также думаю можно пробовать без оптопары, шаг и направление в СерТюн идут через UART.

crashzoom:

При включении сервопривода сразу начинает крутиться и срабатывает ошибка.

Получается двигатель крутится пока не наступает рассогласование более 20000 шагов-и срабатывает ошибка, значит обратная связь на компораторе IC1A, IC1B не выполняет свою функцию.
P.S. Заметил что напряжение на выходе TL783 играет: 11,83-11,84-11,83-11,84В(на исправной плате=const)

ATLab
dominatoress:

…P.S. Заметил что напряжение на выходе TL783 играет: 11,83-11,84-11,83-11,84В(на исправной плате=const)

Скорее, это Ваш мультиметр так “играет” (из-за конечной точности):

  • если на выходе TL783 напряжение 11,83 5 В, а у мультиметра на этом пределе 2 знака после запятой, что он покажет?
  • а если а выходе TL783 напряжение 11,83 49 (11,83 51) В, что он покажет?
    Замеченные Вами 0,01 В составляют всего 0,085 % от измеряемого значения, сравните с точностью Вашего мультиметра. 😁
    “Болтание” последней цифры (младшего разряда) в цифровых приборах - обычное дело.