Gantrykins в EMC2

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Gantrykins в EMC2

Сообщение Andrey_L »

Здравствуйте!
Ну, наконец то русскоязычный ресурс на интересующую тему :D
Господа, вопрос такой:
Построил сервоконтроллер на базе EMC2+Motenc(плата I/O)+ amc( серводрайверы)+Magmotor(двигатели щеточные с оптическими энкодерами),
все работает нормально.Станок портальный,на оси Х два движка,следовательно модуль кинематики Gantrykins.Запускаешь,далее Homing по всем осям,
по умолчанию все это происходит в Joint Mode,затем переключаешься в World Mode и можно двигать станок с клавиатуры,но вот засада ,если забыл
это сделать,то есть переключиться из Joint в World Mode и двинуть станок по оси Х с клавы,то разумеется Х1 двинулся,а Х2 на месте и
Crash Machine and Error on X.Посоветуйте,пожалуйста,как от этой засады избавиться.Буду признателен за любые идеи.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Gantrykins в EMC2

Сообщение PKM »

Скорее всего никак. Просто отучиться двигать станок с клавы.
Кстати, мне всегда было любопытно, как происходит Homing портала. Ведь если двигать асинхронно, будет перекос?

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

Re: Gantrykins в EMC2

Сообщение Nick »

Давай конкретизируем задачу, тебе нужно запретить джогить с клавы в Joint Mode?
PKM писал(а):Кстати, мне всегда было любопытно, как происходит Homing портала. Ведь если двигать асинхронно, будет перекос?
Наверное, сначала одновременно двигает обе оси в сторону датчика (считаем, что в начальный момент портал не перекошен), потом при срабатывании первого концевика, тормозим первую ось и догоняем второй.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Gantrykins в EMC2

Сообщение PKM »

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

Re: Gantrykins в EMC2

Сообщение Nick »

Тогда не будет смысла в Gantrykins, он позволяет выровнять слегка перекосившийся портал. Ну и наверное следить за ним по двум энкодерам и прочее. А если только один датчик, то как ты узнаешь, на какой стороне портала он сработал?
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Gantrykins в EMC2

Сообщение PKM »

Я думаю, что Gantrykins нужен только для сервоприводов, чтобы было куда завести датчики обратной связи. А шаговые куда проще подключить на один выход.

Все равно же хоумить нужно одновременно. Оба поехали искать, скорость маленькая, от одного датчика оба и остановились.

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

Re: Gantrykins в EMC2

Сообщение Nick »

Для шаговиков - та же тема, хоумить их нужно по отдельности (точнее сначала вместе, а доводить по-отдельности). Скажем за время работы один из них пропускает шаги, и в итоге портал потихоньку перекашивается. Вот чтобы это исправить и нужен Gantrykins и второй датчик.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Gantrykins в EMC2

Сообщение PKM »

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

Re: Gantrykins в EMC2

Сообщение Nick »

Другое дело, пока станок стоит, один из движков могут сдвинуть, а ты об этом и не узнаешь ;). В результате деталь поплывет...
Точность датчиков может быть и больше.
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: Gantrykins в EMC2

Сообщение Andrey_L »

Можно,конечно,конкретизировать :)
В идеале,было бы неплохо вообще убрать Joint Mode для Gantrykins,что разработчики и обещали сделать в будущих релизах.
Запретить Jog с клавы в Joint Mode,хорошая идея-подскажите,плиз,как? Теперь по порядку:
Motenc вместе с дочерней платой не очень дорого(порядка 1000$),но оно того стоит.Что хреново,поддержка производителя никакая((
Хоумится портал по двум концевикам и точность хоума порядка пяти соток: этому способствует Z канал энкодера(мерили часовым индикатором).
Принцип хоума у меня такой:
при включении станок в Joint Mode( по умолчанию),все "суставы" хоумятся независимо,но в ini я прописал порядок такой,что Joint 0(X1) и Joint 1(X2)
едут к концевикам одновременно.После хоума нужно переключиться в World Mode,и тогда уже двигать портал клавой-
вот тут и засада ,очень часто просто забываешь,дернул -балка в раскорячку,и все заново...
Рассинхрон в работе Х1 и Х2 ,конечно,может быть,но не более 0.06 мм( в ini MIN_FERROR=0.06),далее просто выскочит ошибка.
По этой проблеме я общался с одним буржуем,вот что он ответил:

In joint mode (aka free mode) kinematics are ignored, they are not
taken into account.
Whatever is stated in Your kinematics module, joints are independent
in joint mode. They will be homed separately (according to homing
sequence stated in INI file).
Since I also needed some specific 5-axis stuff for waterjet machine, I
decided to address also the question of gantry simply by permanently
assigning two joints to one axis.
In kinematics module I had:
In inverse kins:
joint[0] = tran.pos->x
joint[1] = tran.pos->x

In forward kins
tran.pos->x = joint[0]


Please note that joint[1] is not considered in forward kinematics.
These lines hardcode joints 0 and 1 to X axis.

Но как он это сделал пока тишина(( Может будут какие идеи? Буду премного благодарен :D
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Gantrykins в EMC2

Сообщение PKM »

Похоже, это был Viesturs - у него водорезка =)
Andrey_L писал(а):Но как он это сделал пока тишина
Судя по всему, отредактировал файл кинематики gantrykins.c и откомпилировал его заново. Ничего сложного, но вначале нужно скачать исходники ЕМС2. Все это подробно есть на linuxcnc.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Gantrykins в EMC2

Сообщение Nick »

Andrey_L писал(а):Запретить Jog с клавы в Joint Mode,хорошая идея-подскажите,плиз,как?
А как переключаются моды? Может просто завязать моду на axis.XX.jog-enable?
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: Gantrykins в EMC2

Сообщение Andrey_L »

Да это действительно Viesturs, у него,в том числе и 5-осевая водорезка.Сегодня он прислал мне свой исходник файла модуля кинематики.
Но в своей машине он не использует World,а по поводу " ничего сложного" -это кому как :D
Nick,я пытался завязать halui.mode-teleop на halui.axis.N.is-homed, но стали выскакивать очень странные ошибки.
Если можно подробней,какой сигнал требуется подать на axis.N.jog-enable(если не ошибаюсь это входной pin)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Gantrykins в EMC2

Сообщение Nick »

Наверное как-то так:
Загружаем компонент not
loadrt not names=not.is-joint
addf not.is-joint base-thread # Хотя тут наверное можно использовать и servo thread

Подключаем к нему пин halui.mode.is-joint, т.е. находимся в режиме joint
net not.is-joint.in <= halui.mode.is-joint

Потом не плохо бы посмотреть находимся ли мы в режиме manual:
Загружаем компонент and2 (логическое "и")
loadrt and2 names=and2.joint
addf and2.joint base-thread # Хотя тут наверное можно использовать и servo thread

И подключаем к нему нужные пины:
net and.joint.in0 <= halui.mode.is-manual
net and.joint.in1 <= not.is-joint.out

А потом подключаем к нему jog-enable:
net jog-enable <= and.joint.out
net jog-enable => axis.0.jog-enable
net jog-enable => axis.1.jog-enable
net jog-enable => axis.2.jog-enable
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: Gantrykins в EMC2

Сообщение Andrey_L »

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

Re: Gantrykins в EMC2

Сообщение Nick »

Andrey_L писал(а):но судя по скрипту,портал тогда пойдет в раскорячку в MDI режиме
Какому скрипту?
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: Gantrykins в EMC2

Сообщение Andrey_L »

Nick писал(а):...


loadrt and2 names=and2.joint
addf and2.joint base-thread # Хотя тут наверное можно использовать и servo thread

И подключаем к нему нужные пины:
net and.joint.in0 <= halui.mode.is-manual
net and.joint.in1 <= not.is-joint.out

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

Re: Gantrykins в EMC2

Сообщение Nick »

эммм.... может я что-то не так понял - я с gantry не работал, написал по интуиции...
Кстати, дай посмотреть на свои hal и ini!
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: Gantrykins в EMC2

Сообщение Andrey_L »

вот мои файлы HAL и INI,конечно с тремя осями(Joints) проще работать,но тогда кинематика усложняется...
Вложения
motenc.ini
(7.08 КБ) 1126 скачиваний
core_servo.hal
(3.01 КБ) 1100 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Gantrykins в EMC2

Сообщение Nick »

А почему gantry закомментирован?
#loadrt gantrykins
#setp gantrykins.joint-0 0
#setp gantrykins.joint-1 1
#setp gantrykins.joint-2 2
#setp gantrykins.joint-3 1
А как меняются режимы из joint в world? Там кнопочка специальная есть, или нужно другие какие-то действия выполнить?
Ответить

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