[WIKI] Ручная смена инструмента с автоизмерением длины.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
verser
Мастер
Сообщения: 1886
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение verser »

odekolon писал(а):после работы датчика длины инструмента - значение координаты z меняется - что туда подставляется?
Нажатие кнопки "Probe tool setter" запускает g-code probe_down.ngc
odekolon писал(а):теперь же придется вводить в поле " Block Heigh" какую-то длинную цифирь, что неудобно
Удобно, если используется центроискатель вместо фрезы, тогда всё заполняется автоматом.
В Вашем случае можно , например, в auto_tool_measurement.py стр.217 внести правку (осторожно, не проверено на станке)

Код: Выделить всё

    def clicked_btn_probe_workpiece(self, data = None):
        self.command.mode( linuxcnc.MODE_MDI )
        self.command.wait_complete()
        self.stat.poll()
        a=self.stat.actual_position
        self.spbtn_block_height.set_value( float(a[2]) )
        # cancel all Z offsets
        self.command.mdi( "G49")
        self.command.wait_complete()
        self.command.mdi( "G92.1")
        self.command.wait_complete()
        self.command.mdi( "G10 L20 P0  Z%f" % a[2])
        self.command.wait_complete()
        self.command.mode( linuxcnc.MODE_MANUAL )
        self.command.wait_complete()

Нажатие на кнопу "Probe Workpiece" не будет запускать g-code block_down.ngc, а сразу впишет текущий Z и сбросит все отступы.
odekolon писал(а):еще вы не ответили на вопрос о H43.
может, Вы и правы, вроде выглядит лишним добавлять G43 Hx. Проверю более внимательно на станке и исправлю если что.
Может, эту строчку я включил из-за того, что из manual_change.ngc могут быть выходы с ошибкой.
Последний раз редактировалось verser 11 авг 2015, 10:58, всего редактировалось 1 раз.
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение odekolon »

verser писал(а):
odekolon писал(а):после работы датчика длины инструмента - значение координаты z меняется - что туда подставляется?
Нажатие кнопки "Probe tool setter" запускает g-code probe_down.ngc
просмотрел probe_down.ngc и не увидел строки где устанавливается компенсация длины инструмента

Код: Выделить всё

o<probe_down> sub
G53 G0 Z[#<_ini[CHANGE_POSITION]Z>]
G53 G0 X[#<_ini[TOOLSENSOR]X>] Y[#<_ini[TOOLSENSOR]Y>]
G53 G0 Z[#<_ini[TOOLSENSOR]Z>]
(cancel all Z offsets)
G92.1
G49
G10 L20 P0  Z[#<_ini[TOOLSENSOR]Z>]

G91
F #<_hal[auto_tool_measurement.searchvel]>
(PROBEOPEN probe_down.txt)
G38.2 Z #<_ini[TOOLSENSOR]MAXPROBE>
G0 Z0.26 (custom value)
F #<_hal[auto_tool_measurement.probevel]>
G38.2 Z-0.5 (custom value)
(PROBECLOSE)
G90
G53 G0 Z[#<_ini[TOOLSENSOR]Z>]		
o<probe_down> endsub
M2
вижу процедуру измерения длины (я так понимаю, что значение компенсации по , должно осесть в параметре #5063)
но процедуру установки компенсации не вижу...
Последний раз редактировалось odekolon 11 авг 2015, 11:06, всего редактировалось 1 раз.
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
verser
Мастер
Сообщения: 1886
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение verser »

odekolon писал(а): но процедуру установки компенсации не вижу...
это элемент интерфейса, поэтому меняется в python (переменная для спин-кнопки self.spbtn_probe_height)

Код: Выделить всё

    def clicked_btn_probe_tool_setter(self, data = None):
        # Start probe_down.ngc
        self.command.mode( linuxcnc.MODE_MDI )
        self.command.wait_complete()
        self.command.mdi( "O<probe_down> call" )
        self.stat.poll()
        while self.stat.exec_state == 7 or self.stat.exec_state == 3 :
            self.command.wait_complete()
            self.stat.poll()
        self.command.wait_complete()
        a=self.stat.probed_position
        self.spbtn_probe_height.set_value( float(a[2]) )
        self.command.mode( linuxcnc.MODE_MANUAL )
        self.command.wait_complete()
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение odekolon »

В чужом коде на незнакомом языке, разбираться тяжело...
Verser,если не очень затруднит, попробуйте описать работу системы с точки зрения привязок и компенсаций
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
verser
Мастер
Сообщения: 1886
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение verser »

odekolon писал(а): Verser,если не очень затруднит, попробуйте описать работу системы с точки зрения привязок и компенсаций
не затруднит :)
Когда жмем первую кнопку "Probe tool setter" - это мы распознаем координату измерительной площадки tool setter - запомнили в probeheight.
Когда жмем вторую кнопку "Probe Workpiece" - это мы распознаем координату поверхности заготовки - запомнили в blockheight - и делаем её нулем по Z, т.е. python двигает коорд. систему на новый Z

Код: Выделить всё

G10 L2 P0 Z[AXIS_2.MIN_LIMIT + blockheight]
(Необходимо для заготовки еще задать руками нули по X и Y)
Все.

Встретили M6 Tx - автоматически выполнится manual_change.ngc и самое сердце там это обмер (touch_result) и перезапись новой высоты инструмента

Код: Выделить всё

G10 L1 P0 Z[touch_result - probeheight + blockheight]
G43
Последний раз редактировалось verser 12 авг 2015, 09:44, всего редактировалось 1 раз.
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение odekolon »

О ! теперь понятно
еще вопрос - а можно ли вообще убрать или неиспользовать окошечко "probe Wokpiece" ?
а нужное смещение по Z просто устанавливать кнопкой "Set Z"
то есть "подвел кончик в нужное место и выставил нужные значения координат для этой точки?"
в простейшем случае, "коснулся детали в нужном месте" и сказал "X=0 Y=0 Z=0"
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение odekolon »

сегодняшний вечер посвятил отладке вышеописанного метода, в результате исплевался и снес все нафиг!
вернулся пока в голый axis
чего эта конфигурация хорошо делает - это перемещение к месту смены инструмента и тыкание инсрументом в датчик по кнопке замер - тут никаких вопросов, кроме того, что установка скорости поиска датчика высоты, хотя и дает установить любое значение, но скорость выше 130 мм\мин не поднимается.

все остальное - какая-то фигня!
при выпонении команд M6Tn - через раз выдается ошибка датчика в момент его сработки - (ну типа датчик уже сработал) что при этом надо делать - непонятно, то ли опять вполнять toolset то ли снова просто команду M6 повторить. Пробовал по всякому, после смены инструмента, если отработала команда M6Tn , с тем же инструментом, значение Z меняется намного и непонятно откуда значение взялось, посмотреть машинные координаты тоже фиг знает как. при нажатии кнопок SET X,Y,Z периодически вылетают сообщения об ошибке "типа система занята ей щас некогда" оси от клавиатуры, не бегают, надо на основной экран переключаться. в общем все как-то через одно место.
я не спорю, может у меня ручки кривые, но мое мнение об этой конфигурации сильно упало.

ТЕПЕРЬ ВОПРОС - кто нибудь реализовывал автоматизацию смены инструмента более простым методом?
естественно, если я напрягусь, я и сам сделаю, но ведь задача тривиальна и должны быть готовые решения.




PS
у меня есть опыт внедрения нечто подобного - я "допиливал" конфигурацию плазменной резки на gladeVCP+ hal + ТНС + подпрыжка там все было логично и очевидно.
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
verser
Мастер
Сообщения: 1886
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение verser »

odekolon писал(а):сегодняшний вечер посвятил отладке вышеописанного метода, в результате исплевался и снес все нафиг!
"Потратил-вечер-и-плюнул" это не наш метод. Наш метод - "Потратил-несколько-вечеров-и-выходные-но-сделал-и-поделился-с-другими" ;)
odekolon писал(а): ...через раз выдается ошибка датчика в момент его сработки - (ну типа датчик уже сработал) что при этом надо делать - непонятно...
С датчиком явно проблема, раз он через раз ложно срабатывает.

Что делать, когда произошла ошибка типа "probe tripped..." ? Это хороший вопрос. При такой ошибке Linuxcnc сбрасывает сдвиг координатной системы, сделанный при нажатии кнопки "Probe Workpiece" . В самое ближайшее время напишу инструкцию, как быстренько восстановиться после такой ошибки.
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение odekolon »

verser писал(а):
odekolon писал(а):сегодняшний вечер посвятил отладке вышеописанного метода, в результате исплевался и снес все нафиг!
"Потратил-вечер-и-плюнул" это не наш метод. Наш метод - "Потратил-несколько-вечеров-и-выходные-но-сделал-и-поделился-с-другими" ;)
вот тут я полностью согласен!
verser писал(а):
odekolon писал(а): ...через раз выдается ошибка датчика в момент его сработки - (ну типа датчик уже сработал) что при этом надо делать - непонятно...
С датчиком явно проблема, раз он через раз ложно срабатывает.
я щас понял, надо было значения подскока - точного поиска поправить в mаnual_chage
но дело не в только в этом, все какое-то "сырое" что-ли... а знаний для доводки не хватает...
хочу попробовать 2 скрипта на G-коде написать и в постпроцессор добавить вызовы этих скриптов при смене инструмента.
а потом ,при необходимости, кнопку в панель

А вообще, спасибо!
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение odekolon »

кстати при написании своих скриптов, заметил одну странность в программах определения касания, данной конфигурации

Код: Выделить всё

G91
G38.2 Z-5 (искать точку касания )
G0 Z0.26 (custom value - добить, чтоб коснуться -так коснуться, чтоб выключатель гарантированно щелкнул)  
F #<_hal[auto_tool_measurement.probevel]>(снизим подачу)
G38.2 Z-0.5 (custom value медленно ехать назад чтоб не прозевать точку отпускания)
при такой логике, видимо надо в конце ставить g38.4

существет и другая логика, если щуп жесткий

Код: Выделить всё

G91
G38.2 Z-5 (искать точку касания )
G0 Z- 0.26 (custom value - подпрыгнуть, чтоб отпустило)  
F #<_hal[auto_tool_measurement.probevel]> (снизим подачу)
G38.2 Z0.5 (custom value медленно искать точку касания)
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
verser
Мастер
Сообщения: 1886
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение verser »

odekolon писал(а):заметил одну странность в программах определения касания, данной конфигурации
Существует два типа подключения датчиков-центроискателей:
1. Подключение с "нормально-замкнутым" контуром (renishaw's, verser's ;) )
2. Подключение с "нормально-разомкнутым" контуром ('самодельная контактная площадка's)
В данной теме исходники сделаны под первый тип подключения. Для адаптации под второй тип подключения действительно бывает практичнее при уточняющих замерах использовать G38.4.
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение odekolon »

чет я не понял логики
мне кажется должно быть так:
G38.2 Z-5 (ищем точку касания - касание на контакт)
G0 Z0.26 ( - добить, чтоб коснуться -так коснуться, чтоб выключатель гарантированно щелкнул)
в этот момент цепь уже замкнута, значит следующий поиск пробником должен быть на разрыв
(снизим подачу)
G38.4 Z-0.5 ( медленно ехаем назад и ищем точку отпускания)

наверное, еще правильнее так: (но в принципе все решается инверсией нужного пина)

G38.4 Z-5 (ищем точку касания - касание на разрыв)
G0 Z0.26 ( - добиваем, чтоб выключатель гарантированно разомкнулся)
в этот момент цепь разамкнута, значит следующий поиск пробником должен быть на контакт
(снизим подачу)
G38.2 Z-0.5 ( медленно ехаем назад и ищем точку восстановления контакта)



ЗЫ
скриптики написал, допилил постпроцессор а арткаме, завтра попробую.
если все заработает, то логика работы будет такая:

подводим инструмент к заготовке, g92 х0 у0 Z0

в заголовке программы, после инициализации, появится
o<tool_ch> call (выезд в точку смены)
M6T1
o<first_probe> (привязка 1 инструмента)
режем
при смене иснтрумента
o<tool_ch> call (выезд в точку смены)
M6T1 (тут компонент manual tool change притормозит выполнение программы)
o<next_probe> (привязка и коррекция след инструмента)
продолжаем резать
Последний раз редактировалось odekolon 12 авг 2015, 14:32, всего редактировалось 2 раза.
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
verser
Мастер
Сообщения: 1886
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение verser »

odekolon писал(а): наверное, еще правильнее так
Неправильно.
Вот с подробными комментариями правильно

Код: Выделить всё

G38.2 Z-5 (ищем точку касания движением вниз, касание на разрыв, датчик "нормально-замкнутый") 
G0 Z0.26 ( отскок вверх для последующего уточняющего замера, в этот момент цепь замкнулась, значит следующий поиск пробником должен быть на разрыв)
(снизим подачу)
G38.2 Z-0.5 ( медленно ехаем вниз, уточняющее касание на разрыв)
Аватара пользователя
verser
Мастер
Сообщения: 1886
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение verser »

или так, для "нормально-разомкнутых" датчиков

Код: Выделить всё

G38.2 Z-5 (ищем точку касания движением вниз, касание на контакт, датчик "нормально-разомкнутый") 
(нашли,сейчас датчик замкнут)
(снизим подачу)
G38.4 Z5 ( медленно ехаем вверх, уточняющее измерение на разрыв)
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение odekolon »

а ну да, один минус и соответсвенно направление прозевал :)
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение torvn77 »

UAVpilot писал(а):Скорее существенно увеличит шанс сломать фрезу об какое-нибудь крепление по пути к/от датчику. Тем более, что у новичков 3D фрезеры как правило с небольшим рабочим ходом по Z.
Нехороший UAVpilot постить вам это в тему не хочет, по этому сделаю это за него.
За одно предложу решение, надо чтобы инструмент сначала автоматически поднимался в G53 G0Z0, потом в ручную по XY подводился к датчику.
Когда же инструмент по XY окажется от датчика на некотором расстоянии, то станок переходит в автоматический режим и и делает замер сам.
Потом поднимается в G53G0Z0 обратно и снова переходит в режим ручного перемещения по XY для возвращения в рабочею зону.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение Serg »

torvn77 писал(а):Нехороший UAVpilot постить вам это в тему не хочет, по этому сделаю это за него.
Если мне не изменяет мой склероз, то verser участвовал в одной из подобных тем, где я это писал.
torvn77 писал(а):надо чтобы инструмент сначала автоматически поднимался в G53 G0Z0
Это здесь уже сделано, но это не всегда поможет - например когда высота детали или крепежа выше кончика фрезы в положении G53 G0Z0.
Или однажды работа была: нужно было расточить в литом колёсном диске (авто) центральное отверстие, при том, что общая толщина диска была больше, чем максимальное расстояние от стола до фрезы.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Alexsh
Опытный
Сообщения: 100
Зарегистрирован: 25 дек 2015, 22:28
Репутация: 15
Настоящее имя: Алексей
Контактная информация:

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение Alexsh »

Доброй ночи всем. Ошибочку обнаружил:
.....
# скорость холостых перемещений
RAPID_FEED = 600
.....

А должно быть:
PARID_SPEED =
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение pkasy »

значит, это был не глюк.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: [WIKI] Ручная смена инструмента с автоизмерением длины.

Сообщение pkasy »

у меня именно этот модуль находит центр не там.
14:03:04 Hole X-=596.3830 Xc=619.1095 X+=641.8360 Lx=45.4530 Y-=118.3055 Yc=129.7625 Y+=141.2195 Ly=22.9140 D=34.1835
а реально
Y=118.469
диаметр отверстия штангелем - 44,6
странно, что на круглом отверстии Ly и Lx отличаются почти в два раза.

Что я делаю не так?
Ответить

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