ЕМС2 и ШД с энкодером

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

А почему не хочешь взять 7i43H там 48 пинов и есть прошивка на 4-channel servo plus 4 step/dir generators. + к ней I/O protector 7I42TA, ИМХО самое то что надо, и не дорого...
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

Нужно еще шпинделем рулить по аналогу 10В.
Я только начинаю осваивать EMC и Mesa потому не совсем понимаю что нужно взять чтобы управлять 4-мя ШД + к ним энкодеры + управление шпинделем + индекс от него + концевики + смена инструмента. На mach3 плазма уже работает. Теперь хотим фрейзер очепушить. Можно было опять на маке сделать, но хочется двигаться вперед и освоить EMC2.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Тогда, если точно не знаешь всех парамеров станка, лучше взять месу с запасом по пинам например 5i20, там будет 72 пина, хватит на энкодеры и на шаговики и еще останется.

А какая будет смена инструмента?
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

А к 5I20 что еще нужно брать?
По смене инструмента пока еще не все понятно. Проект только затевается и быстро не сделается, учитываю что я пока в EMC2 слабо разбираюсь.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Надо "защитную плату" да и все по идее. На пример 7i42 - она на 24 пина, т.е. их надо будет три штуки. Потом от них вывод на шд и энкодеры. Единственное под pwmgen на шпиндель может понадобится еще плата с 0-5 до +-10В.
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

Гармонист писал(а):
намбаван писал(а):на работающем станке не пробовал пока,это ещё впереди :)
Мы все в ожидании результатов затаили дыхание еще с 03 ноя 2011... так как станок?
очень приятно что в теории заработало, но очень хочется увидеть результаты на готовых изделиях - фотки, видео...
здравствуйте!станок работает без обратной связи,вроде все нормально.у меня совсем нет времени заниматься энкодерами.да наверно и мотивации не хватает :oops: вот решу пару гигантских дел и тогда.... :hottabych: :P
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

Стояла задача сделать фрейзер на ШД с энкодерами. Купили Mesa 5i20, 7i33 (для энкодеров и управление частотником) и 7i42 (для ШД, концевиком и т.д.) Настроил все через PnCConf. На тестовой панели двигателя крутятся, энкодер считает правильно. В самой программе при движении очень долгий разгон и торможение. Причем если настраивать мастером без энкодеров, то все работает отлично. Я так понимаю что мастер переводит двигатели из режима stepgen в servo. Подскажите как сделать чтобы двигатели работали в stepgen и при этом отслеживалось положение по энкодеру. hal и ini прилагаю.
Вложения
my.ini
(2.76 КБ) 1097 скачиваний
my.hal
(8.32 КБ) 1120 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Сейчас у тебя все работает без энкодера.

# Step Gen signals/setup
....
Вот ускорение, как-то совсем не много :thinking:
setp hm2_5i20.0.stepgen.00.maxaccel 37.5
....
Положение берется прямо со степген:
net x-pos-fb axis.0.motor-pos-fb <= hm2_5i20.0.stepgen.00.position-fb
Ну и выдается на него.
net x-pos-cmd axis.0.motor-pos-cmd => hm2_5i20.0.stepgen.00.position-cmd


Вообще, если у тебя шаговики, то управляться они будут всегда через stepgen и это без вариантов :). Вопрос как этим степгеном управлять...

Что тебе надо сделать - на каждую ось:
  • Делаем управление скоростью, а не положением:
    setp hm2_5i20.0.stepgen.00.control-type 1
  • Вот эту строчку (команду положения):
    net x-pos-cmd axis.0.motor-pos-cmd => hm2_5i20.0.stepgen.00.position-cmd
    заменяем на команду скорости
    net x-vel-cmd axis.0.motor-vel-cmd => hm2_5i20.0.stepgen.00.velocity-cmd
    хотя это наверное не сработает - что-то я не нахожу пина motor-vel-cmd
    скорее всего вот это сработает:
    net x-vel-cmd axis.0.joint-vel-cmd => hm2_5i20.0.stepgen.00.velocity-cmd
  • И меняем обратную связь, вместо этой строчки:
    net x-pos-fb axis.0.motor-pos-fb <= hm2_5i20.0.stepgen.00.position-fb
    ставим вот такую:
    net x-pos-fb axis.0.motor-pos-fb <= hm2_5i20.0.encoder.00.position
  • Да, еще может понадобится добавить PID...
Хотя погоди у тебя на оси Z уже что-то такое сделано! Как ты ось Z настроил?
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

Оси X и Y сейчас настроены без энкодера, т.к. хотел сравнить что не так и катаются они замечательно. А на ось Z привязал энкодер и она сейчас ускоряется и замедляется очень медленно, но в итоге в заданную позицию встает. Т.е. сначала идет разгон неспешно, затем торможение так же неспешно и так постепенно туда суда становится в заданную позицию.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Добро пожаловать в клуб любителей ПИД :)
ПИД-регулирование. Общие вопросы. #1
Если в двух словах, теперь тебе надо настроить параметры ПИД-регулятора. Проще всего это делать при помощи вот такой панельки:
ПИД-регулирование. Общие вопросы. #71
Ставь все как там написанно и потом выкладывай сюда скриншоты графиков из hal scope
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

А разве без ПИД нельзя? Это же не серва, а шаговый двигатель. Просто нужно чтобы положение отслеживалось по энкодеру.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Смотря, что ты хочешь с помощью энкодера решать... Попробуй сделать как я выше написал... но не уверен, что получится...
Вообще серва - это двигатель с обратной связью = у тебя тоже самое, шаговый двигатель с обратной связью ;).
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

Ок. Спасибо. Буду пробовать. Хотелось бы чтобы оси ходили по энкодеру. Т.е. нужна точность перемещений оси.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Вообще ШД ходят точно и без энкодеров. Если ШД пропускает шаги - это не штатная работа двигателя. Двигатель не должен пропускать шаги.

Если приделать к нему энкодер можно:
1. Контроллировать пропуск шагов - ШД будет работать в прежнем режиме, просто появится обратная связь, при помощи которой можно будет отслеживать реальное значение Following Error и если вдруг оно превысит заданное значение - вырубать станок.
2. Осуществлять контроль за движением при помощи ПИД. Это позволит использовать более жесткие режимы, при которых ШД может начать пропускать шаги - потом он все равно дотянет необходимое расстояние за счет ПИД и энкодера.

Что из этого тебе больше импонирует?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

хммм я вот тут подумал, а может сделать так:
на пин hm2_5i20.0.stepgen.00.position-cmd подавать не просто axis.0.motor-pos-cmd, а
значение axis.0.motor-pos-cmd + hm2_5i20.0.stepgen.00.position-fb - hm2_5i20.0.encoder.00.position тогда любой уход в сторону должен компенсироваться и управление останется по положению... :roll:
Что по этому поводу думаете?
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

Могу попробовать на днях сделать. Только как правильно это описать? И будет в таком случае работать ferror ?
Nick писал(а):2. Осуществлять контроль за движением при помощи ПИД. Это позволит использовать более жесткие режимы, при которых ШД может начать пропускать шаги - потом он все равно дотянет необходимое расстояние за счет ПИД и энкодера.
Я так думаю, что этот вариант самый надежный. Надо разбираться с ПИД регулированием.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

galexey писал(а):И будет в таком случае работать ferror ?
Будет, т.к. на него все равно будет попадать реальная обратная связь.

Тебе по идее надо:
loadrt sum2 count=6

эти строчки после всех addf
addf sum2.0 servo-thread
addf sum2.1 servo-thread
...

setp sum2.0.gain0 1
setp sum2.0.gain1 1
setp sum2.0.offset 0

setp sum2.1.gain0 1
setp sum2.1.gain1 -1
setp sum2.1.offset 0

net sum00 <= axis.0.motor-pos-cmd => sum2.0.in0
net sum01 <= hm2_5i20.0.stepgen.00.position-fb => sum2.0.in1

net sum10 <= sum2.0.out => sum2.1.in0
net sum11 <= hm2_5i20.0.encoder.00.position => sum2.1.in1

net x-pos-cmd <= sum2.1.out => hm2_5i20.0.stepgen.00.position-cmd

и вот это вместо обратной связи:
net x-pos-fb axis.0.motor-pos-fb <= hm2_5i20.0.encoder.00.position

И так для всех осей.
PS попробуй это сначала на одной оси.
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

Как доберусь до станка, обязательно попробую. Спасибо.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Забыл написать: Только аккуратно, блин! :headphones: И чтобы красная кнопка под рукой была, а не в соседней комнате в запертом шкафу и ключи у вахтера! :)
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение galexey »

У нас усе под контролем. Красной кнопки еще нет совсем :-)
Ответить

Вернуться в «LinuxCNC»