Программный поиск начала осей

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Программный поиск начала осей

Сообщение Сергей Саныч »

Добрый день! Можно ли в LinuxCNC выполнить программный поиск начала осей (Home Axes). То, что в ручном режиме делается по Ctrl-Home. В TurboCNC для этого служит команда G28. Здесь, как я понял, она выполняет немного не то. А надо именно перекалибровку по концевикам.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Программный поиск начала осей

Сообщение Nick »

А по какому действию ты хочешь это сделать?
Вообще проще всего это делать через hal, а именно halui. Управлять им можно в том числе и через Gкод.

Лучше всего полностью опиши ситуацию и причину по которой тебе надо делать перекалибровку, а мы тебе напишем, что с этим всем делать :).

halui.joint.N.home bit in
pin for homing joint N

halui.joint.N.is-homed bit out
status pin telling that joint N is homed

halui.joint.N.unhome bit in
pin for unhoming joint N

halui.joint.selected.home bit in
pin for homing the selected joint

halui.joint.selected.is-homed bit out
status pin telling that the selected joint is homed

halui.joint.selected.unhome bit in
pin for unhoming the selected joint
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Программный поиск начала осей

Сообщение Сергей Саныч »

Ситуация такая: есть фрезерный станочек, на котором делаются достаточно однотипные операции (обработка пластиковых корпусов для РЭА, изготовление несложных деталей из дюраля, АБС и оргстекла, вырезание прессформ). Чтобы минимизировать "человеческий фактор", в начало каждой программы включена автокалибровка по G28, а дальше обработка идет в цикле, остается только устанавливать заготовки и снимать готовые детали. При смене или перезапуске программы автокалибровка повторяется.
Переход с TurboCNC на EMC2 вызван, в основном, желанием повысить производительность - TCNC медленно обрабатывает окружности - непонятно почему, но скорость подачи снижается в разы по сравнению с заданной, кроме того, при обработке цепочки коротких векторов идут постоянные разгоны-торможения, что вряд ли положительно сказывается на ресурсе станка. EMC от этого свободен. Да и вообще, сколько можно работать под ДОСом!
С другой стороны, у EMC2 есть возможность запретить работу, пока не сделаешь калибровку осей, так что, может быть, отсутствие программной команды Home axes не так страшно. Просто есть желание провести переход с TCNC на EMC2 "малой кровью".
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Программный поиск начала осей

Сообщение Nick »

Ну понятно. Как это можно реализовать:
1. делаем соединение пина motion.digital-out-00 и halui.home-all. Т.е. в hal файл добавляем строчку:
net home-all <= motion.digital-out-00 => halui.home-all
2. потом в программе делаем запрос на калибровку:
M64 P0 - включаем motion.digital-out-00.
по идее после этого станок должен пойти на калибровку.

Есть правда несколько вопросов: когда продолжится выполнение программы и надо ли сразу сбрасывать этот пин на 0? В общем попробуй сделать это, потом по результату отпишись :).
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программный поиск начала осей

Сообщение nkp »

Скорей всего что с halui.home-all не получится ни так ни иначе .
Задача сделать перекалибровку из ж-кода ,а это режим авто-что приводит к ошибке
aike
Кандидат
Сообщения: 40
Зарегистрирован: 19 май 2011, 05:16
Репутация: 9
Контактная информация:

Re: Программный поиск начала осей

Сообщение aike »

Поставь простой привод с обратной связью и ноль меткой в энкодере.
Повторяемость 100%.
Сейчас для маленьких станков можно найти по 10.000 - 15.000 руб. за мотор с энкодером.
Далее используешь USE_INDEX=1 и в процессе homing при включении будет тебе счастье.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Программный поиск начала осей

Сообщение Сергей Саныч »

Попробовал:
Nick писал(а):1. делаем соединение пина motion.digital-out-00 и halui.home-all. Т.е. в hal файл добавляем строчку:
net home-all <= motion.digital-out-00 => halui.home-all
Получил окно со списком ошибок, в частности, что halui.home-all does not exist.
Кстати, извини за дурацкий вопрос: а в какой hal-файл втыкать эту строчку и в какое место файла. У меня в папке станка их три штуки, не считая backup-а.
Чудес не бывает. Бывают фокусы.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программный поиск начала осей

Сообщение nkp »

В ini-файле секция [HAL] прописать HALUI = halui
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программный поиск начала осей

Сообщение nkp »

Serg-tmn писал(а):а в какой hal-файл втыкать эту
В любой -в конце(самый простой вариант)
Последний раз редактировалось nkp 04 июн 2012, 12:04, всего редактировалось 1 раз.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Программный поиск начала осей

Сообщение Сергей Саныч »

aike писал(а):Поставь простой привод с обратной связью и ноль меткой в энкодере.
Повторяемость 100%.
Сейчас для маленьких станков можно найти по 10.000 - 15.000 руб. за мотор с энкодером.
Далее используешь USE_INDEX=1 и в процессе homing при включении будет тебе счастье.
Переделка железа в данный момент в мои планы не входит. А "счастье" при включении у меня и так есть за счет концевиков :D

На будущее, конечно, поинтересуюсь, что это за сервоприводы за 10-15 тыс.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Программный поиск начала осей

Сообщение Сергей Саныч »

nkp писал(а):В ini-файле секция [HAL] прописать HALUI = halui
О! Приняло! Но - не работает (как ты и предсказывал). При исполнении выдает сообщение "не могу делать это (EMC_AXIS_HOME) в авторежиме с ждущим интерпретатором" и продолжает выполнение программы.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Программный поиск начала осей

Сообщение Nick »

Serg-tmn писал(а):не могу делать это (EMC_AXIS_HOME) в авторежиме с ждущим интерпретатором" и продолжает выполнение программы
хмммм... можно тогда попробовать так сделать: в конце программы передаем управление внешнему компоненту, в котором будет

halcmd setp halui.program.stop 1
halcmd setp halui.mode.mdi 1

halcmd setp halui.joint.0.unhome 1
halcmd setp halui.joint.1.unhome 1
halcmd setp halui.joint.2.unhome 1
halcmd halui.home-all 1

while (надо уточнить как while на sh пишется) not `halcmd show halui.joint.0.is-homed` and `halcmd show halui.joint.1.is-homed` and `halcmd show halui.joint.2.is-homed`
do
sleep 0
done

( :attention: :attention: :attention: Только сюда бы еще добавить запрос на продолжение, чтобы станок не начал работать пока в нем заготовки меняют!)
(Хотя можно просто эту строчку не писать, и сделать так, чтобы оператор вручную включал станок)
halcmd setp halui.mode.auto 1
halcmd setp halui.program.run 1

nkp, как думаешь, такое сработает?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программный поиск начала осей

Сообщение nkp »

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

Re: Программный поиск начала осей

Сообщение Nick »

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

Re: Программный поиск начала осей

Сообщение Nick »

Кстати, как вариант, всегда можно сделать на G38 - пихаем все концевики home в probe-in и в конце каждого цикла делаем
G38.2 X0
f1
G38.4 X1
G92 X0

Плохо, конечно, что реальные пределы осей съедут. Т.е. они съедут из-за возможного пропуска шагов, а мы это не проконтролируем. Но если есть нормальные soft limit, на которые можно наехать и ничего не сломать, то на это можно наверное и забить.
А детали должны точные в итоге выходить.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Программный поиск начала осей

Сообщение Сергей Саныч »

Nick писал(а):Кстати, как вариант, всегда можно сделать на G38 - пихаем все концевики home в probe-in и в конце каждого цикла делаем
Вот, кстати, да. Надо будет попробовать. А то с внешними скриптами как-то заморочно получается.
Но вообще-то я спрашивал с умыслом, что эта функция (программный поиск начала) заложена в EMC, а я просто не разобрался где. А выходит, что не заложена вообще. Пусть будет так, обойдемся. Тем более, что после запуска EMC невозможно начать работу, не выполнив homing.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Программный поиск начала осей

Сообщение Nick »

Serg-tmn писал(а):А то с внешними скриптами как-то заморочно получается.
А чего заморочного? В принципе весь скрипт написан вверху.
Кстати а как у тебя заготовки меняются? И как следующий цикл программы запускается?

Может фото станка сделаешь? :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программный поиск начала осей

Сообщение nkp »

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

Re: Программный поиск начала осей

Сообщение Nick »

Может ему дописать sleep 1 после каждой строки?
И может добавить сброс этих пинов в 0?
Кстати, по идее это же можно написать на Classic Ladder...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программный поиск начала осей

Сообщение nkp »

Nick писал(а):Может ему дописать sleep 1 после каждой строки? И может добавить сброс этих пинов в 0?
Так и было-и паузы и сброс в 0
Ответить

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