gantry_kins LinuxCNC - зависимые оси

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 01 мар 2012, 19:24

Тема создана по многочисленным просьбам.
Настройка не опробована. Нужен подопытный, для отработки схемы :).

Кинематика gantry_kins нужна для управления станком с несколькими двигателями на одной и той же оси. gantry_kins может быть известна пользователям Mach как подчиненная ось.

gantry_kins позволяет:
  • отдельно выставлять ноли по каждому двигателю
  • использовать разные двигатели на одной оси
  • работать как в режиме всей оси, так и в режиме отдельного двигателя

Установка

Для того, чтобы установить gantry_kins для текущей конфигурации нужно:
  1. настроить параметры всех двигателей, это можно сделать при помощи stepconf или pncconf, по 1 оси на 1 двигатель, т.е. при станке XYZ со спаренными двигателями по Х нужно настраивать станок XYZA.
  2. заменить текущую кинематику на gantry_kins
    открываем файл .hal и ищем строку содержащую loadrt trivkins и удаляем ее.
    вместо нее пишем:
    # Загружаем кинематику:
    Код: Выделить всёРазвернуть
    loadrt gantrykins
    # Настраиваем связь осей и двигателей
    setp gantrykins.joint-0 0
    setp gantrykins.joint-1 1
    setp gantrykins.joint-2 2
    setp gantrykins.joint-3 0
  3. Меняем названия осей, открываем файл ini и в каждой секции [AXIS_N] прописываем название оси например
    Код: Выделить всёРазвернуть
    ...
    [AXIS_0]
       NAME = X1
    ...
    ...
    [AXIS_1]
       NAME = Y
    ...
    ...
    [AXIS_2]
       NAME = Z
    ...
    ...
    [AXIS_3]
       NAME = X2
    ...

Управление

В Axis должен появиться переключатель режимов, World mode <=> Joint mode. Режим World это нормальный режим работы станка, т.е. спаренные оси двигаются синхронно. Режим Joint - можно крутить любой двигатель по-отдельности.

Выставление нулей осей. Пока не знаю, может заработает из коробки ... нужны испытания 8-) .
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение rusincor » 01 мар 2012, 19:31

Буду подопытным завтра попробую --- вечером отпишусь

NICK ОГРОМНОЕ СПАСИБО
rusincor
Новичок
 
Сообщения: 2
Зарегистрирован: 29 фев 2012, 18:37
Репутация: 0

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 01 мар 2012, 19:38

Только осторожно и сначала на маленьких скоростях :headphones:!
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Andrey_L » 01 мар 2012, 21:50

Здравствуйте.Gantrykins я давно опробовал,и данная кинематика(X1X2YZ) у меня успешно работает с серво двигателями.Особых багов замечено небыло.Но как всегда в бочке меда присутствует ложка дегтя(( Дело в том ,что по умолчанию EMC находится в режиме Joint это удобно для Home, но если забудешь переключиться в World и подвигать Х с клавы получается Joint error и все сначала т.е. Home итд,хотя если отхоумить и просто загрузить исполняемый файл ,затем Run ,то EMC автоматом переключится в World и все пойдет как по маслу.Вот эта необходимость ручного переключения из Joint в World убивает иногда,особенно когда забудешь и двинешь ось.Девелоперы обещали в будущих релизах сделать World с Gantrykins по умолчанию,и Joint только на время Home.Но пока тишина,а ведь большинство Milling машин портальные(gantry). Tom Easterday поборол это (правда не совсем как хотелось бы) следующим способом:
......And speaking of gantry machines that should just always be in World mode unless you intentionally do otherwise….

Peter Jensen, whom I am working with on our gantry machine, put this quick hack into the Axis code (2.4.7) so that if one defines DEFAULT_TO_WORLD_MODE=1 in the .ini file, Axis will come up into World mode by default. It has made things much less prone to error for us.

I also patched it into 2.5 and it works as well.

YMMV,

4027a4028
> DefaultToWorldMode = inifile.find("DISPLAY", "DEFAULT_TO_WORLD_MODE") or 0
4119a4121,4126
>
> # Boot in world mode
> if ( float(DefaultToWorldMode) != 0 ) :
> commands.toggle_joint_mode(0)
>
>
Я понял,что в исходниках AXIS нужно дописать несколько строк,правда я еще не разобрался в каком месте исходника это нужно сделать((
Господа,тема действительно очень нужная.Отпишитесь у кого какие наработки и мысли по этому поводу))
Аватара пользователя
Andrey_L
Кандидат
 
Сообщения: 68
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение aftaev » 01 мар 2012, 22:11

если этой примочки небыло как работали со спаренными движками? Неужели в ЕМС небыло предусмотрена синхронная работа движков?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 26164
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 4010
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Andrey_L » 01 мар 2012, 22:34

Примочка эта в EMC уже давно, и ,по большому счету, с шаговиками она не столь важна : инвертируй Dir pin для X2, а Step X2 возьми со Step pin X1 и будет счастье,конечно,портал не будет выравниваться по обеим сторонам,но это можно решить Ladder ( к примеру),а вот с серво системой засада получается нужна только GantryKins...
Аватара пользователя
Andrey_L
Кандидат
 
Сообщения: 68
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 01 мар 2012, 22:53

Andrey_L писал(а):Я понял,что в исходниках AXIS нужно дописать несколько строк,правда я еще не разобрался в каком месте исходника это нужно сделать((Господа,тема действительно очень нужная.Отпишитесь у кого какие наработки и мысли по этому поводу))

правильно понял, исходник Axis, он же выполняемый файл лежит в /usr/bin/axis
Соответственно, чтобы его отредактировать выполняем или
sudo nano /usr/bin/axis или
grsudo gedit /usr/bin/axis &
Ищешь эти строчки и меняешь их. Строки должны быть около 4027 строки и 4119 строки.
Мы же вроде с тобой пробовали решить эту проблему через hal, так и не получилось?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Andrey_L » 01 мар 2012, 23:17

Nick,через Hal у меня не получилось к сожалению,вылазило куча каких то ошибок, то пин не существует,то ваще модули не грузятся((,мы пытались запретить двигать портал с клавы в World.Тебе большое спасибо за помощь в этом,хотелось бы решить этот трабл кординально.И еще,если я правильно понял,AXIS написан на Phyton или на чем то подобном то и компилить заново не надо?))Но вот опять же ,если ,к примеру ,работать в TkEMC то опять приехали...
Аватара пользователя
Andrey_L
Кандидат
 
Сообщения: 68
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 02 мар 2012, 00:07

Да, axis написан на Tcl, компилировать не надо будет.
Да, придется все интерфейсы модифицировать.
Проще добить решение на hal.

Надо проверить, будет ли работать jog если выставить пин jog-enable для нужной оси в 0.
Скажем пишем в консоли
halcmd setp axis.2.jog-enable 0
проверяем в halmeter, что он стал false и пробуешь подвигать в ручном режиме второй осью.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение rusincor » 03 мар 2012, 09:48

Andrey_L писал(а):Примочка эта в EMC уже давно, и ,по большому счету, с шаговиками она не столь важна : инвертируй Dir pin для X2, а Step X2 возьми со Step pin X1 и будет счастье,конечно,портал не будет выравниваться по обеим сторонам,но это можно решить Ladder ( к примеру),а вот с серво системой засада получается нужна только GantryKins...


Добрый день можно поподробней как это с ШД сделать а именно выравнивание портала по 2-м датчикам
rusincor
Новичок
 
Сообщения: 2
Зарегистрирован: 29 фев 2012, 18:37
Репутация: 0

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Andrey_L » 04 мар 2012, 17:42

Если честно,то в железе эту идею я не воплотил.Задумка была сделать это на микросхемах логики и использовать вход Enable драйверов оси портала.То есть наехал на концевик -сигнал на Enable( стоп мотора),ждем сигнала со второго концевика,опять сигнал на Enable,съезд с концевиков обоих двигателей.
Последний раз редактировалось Andrey_L 04 мар 2012, 18:07, всего редактировалось 1 раз.
Аватара пользователя
Andrey_L
Кандидат
 
Сообщения: 68
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 04 мар 2012, 17:52

По идее, кода все будет настроенно как выше сказано, включаешь world mode и делаешь home. Если он выровняет только одну сторону, то включаешь joint моде и выравниваешь портал делая home дла каждой стороны, только предварительно нужно сделать home для всего портала, иначе его может сильно перекосить.

Честно говоря не знаю как он работает, может он сразу выставит обе стороны.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Andrey_L » 05 мар 2012, 21:04

Nick, вопрос такой,если можно)) Попытался заморочиться с дописанием скрипта Axis , и вот что выплыло: sudo cat axis | nl > my_axis и строчек в нем
всего 3613 где ж мне найти 4119 :D ,может это в моей 2.5 версии так? обязуюсь больше глупых вопросов не задавать)
Вот еще вспомнил если в консоли $ halcmd setp axis.2.jog-enable 0 , проверяю в Hal-метр там FALSE всё правильно,а ось бегает на ура((
Аватара пользователя
Andrey_L
Кандидат
 
Сообщения: 68
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 05 мар 2012, 21:53

Andrey_L писал(а):Nick, вопрос такой,если можно)) Попытался заморочиться с дописанием скрипта Axis , и вот что выплыло: sudo cat axis | nl > my_axis и строчек в немвсего 3613 где ж мне найти 4119 ,может это в моей 2.5 версии так? обязуюсь больше глупых вопросов не задавать)

Ищи по вхождению строки либо в nano Ctrl+W, либо тупо сделай sudo chown user:user axis и редактируй спокойно в Gedit.
Andrey_L писал(а):Вот еще вспомнил если в консоли $ halcmd setp axis.2.jog-enable 0 , проверяю в Hal-метр там FALSE всё правильно,а ось бегает на ура((

Хреново, тогда можно сделать так, чтобы станок уходил в авост при включенном ручном режиме в joint mode.


Кстати а и правда, как портал хоумится, сразу оба края до срабатывания датчиков или потом нужно одну из сторон в joint mode хоумить?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Andrey_L » 05 мар 2012, 22:34

Хоумится станок сразу оба края до срабатывания датчиков и исключительно в Joint,так как процедура хоума может быть только в этом режиме,в противном случае ругается на мировой режим.
Да по вхождению в nano находит нужные номера строк,попробую отпишусь.Nick , а что значит...станок уходил в авост при включенном ручном режиме ....
очепятка?)
Аватара пользователя
Andrey_L
Кандидат
 
Сообщения: 68
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 05 мар 2012, 23:05

ну можно взять два пина, что в ручном режиме и что в режиме joint, т.е. is-manual и is-joint их в and2 запихать и вывод в estop. Т.е. как только включил ручной режим и если находишься в joint mode то сразу авост, но похоже не выйдет, если homing делается в joint...
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение glaz » 31 май 2012, 20:52

Попробовал я подключить и настроить этот модуль в версии 2.5 ,
Хоумится только в Join режиме, причем каждую ось отдельно.
в World режиме обе оси идут синхронно нормально, вот только в этом режиме не работает ручное управление осями, ругается и просит перейти в Join режим :)
Ну а в Join то каждая ось вращается отдельно.. вообщем неудобоваримо.

Мож я че не так сделал, мастером конфигурацию создал(опыта пока нету), указал "XYZA"
потом в ini исправил тип оси "A" на LINEAR ну и остальные параметры выставил такие же как для "X" (по оси Х у меня 2 ШД), кроме конечно порядкового номера поиска home.
В hal файле указал загружать модуль кинематики gantrykins, и указал какие оси сопрячь(0и3).
Пины управления на каждый драйвер конечно указаны отдельные, как и Home датчикам.

PS: Остается мысль использовать две конфигурации, с gantrykins загружать только для выравнивания портала, потом выгружать и загружать обычную ( портал то останется выравненным т.к. драйвера в удержании будут - сигнал enable драйверам не подключаю)
glaz
Кандидат
 
Сообщения: 55
Зарегистрирован: 06 фев 2012, 13:02
Репутация: 7

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 01 июн 2012, 10:27

glaz писал(а):вот только в этом режиме не работает ручное управление осями, ругается и просит перейти в Join режим

А как именно ругается? можешь скриншот сделать?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение glaz » 09 июн 2012, 17:04

Привет Ник, вот только добрался до гаража.
Станок был включен, каждая ось нашла свой home, потом переведен в режим сочленений.
Через MDI интерфейс перемещается отлично, но когда пытаешься управлять стрелками вылазиет ошибка.
Hal и Ini тож приаттачил.
Вложения
gantry_kins LinuxCNC - зависимые оси ручное-перем-реж-сочл.png
скрин
мой-станок1.hal
рфд
(4.07 Кб) Скачиваний: 374
мой-станок1.ini
ini
(2.28 Кб) Скачиваний: 364
glaz
Кандидат
 
Сообщения: 55
Зарегистрирован: 06 фев 2012, 13:02
Репутация: 7

Re: gantry_kins LinuxCNC - зависимые оси

Сообщение Nick » 09 июн 2012, 18:06

Не, он говорит другое, он говорит, что ошибка следования такого-то joint-а превысила допуск на следование траектории fferror.
А когда появляется ошибка сразу как начинаешь двигаться?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1328
Заслуга: Developer
Медальки:

След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Ale2, Alex2x, Argon-11, Bing [Bot], Сергей Саныч, Cvazist, dtblack, evgenkravtsov, frezeryga, geanet, Google [Bot], Google Feedfetcher, GRUserman, Hanter, kfz, Lafayette, nevkon, Nixon, Nonstopich, nva-tuning, parlaq, Piligrym, PKM, Гагарин, Redmn, Rezus666, ruskama, sas_75, SeReGa Sh, sima8520, simplify, Smlua, Tonykei, ua3nbw, ultrus, Umnik, valera321, viael, visor, vit_rus, Yahoo [Bot], Yandex [bot], Питерский, Валерий

Поделиться

Reputation System ©'