Авто ноль по Z в EMC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение valor »

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

Re: Авто ноль по Z в EMC

Сообщение Nick »

Измерение длинны инструмента и базы детали это две разные вещи, никак не связанные между собой.
Для измерения инструмента сразу после смены, лучше всего написать отдельную процедуру на Gкоде, сохранить в отдельный файл и потом вызывать ее по мере надобности.
Т.е. берем процедуру: o<auto-tool-change> sub из сообщения Алексса: Датчик длины инструмента #116.
сохраняем в файл auto-tool-change.ngc в каталог указанный в ini в качестве subroutines.
В процедуре надо поменять вот эти две строчки, - поставить там свои координаты в _!абсолютных координатах станка!_ :

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

g53 g0 z0
g53 g0 x135 y71
Потом эту процедуру вызываем так
O<auto-tool-change> CALL
Все.

Можно еще добавить туда запрос на смену инструмента и постаноку на паузу:

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

(MSG, Вставьте инструмент номер #1)
M0
Номер инструмента при этом передаем в параметре при вызове функции:

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

O<auto-tool-change> CALL [10]
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение solo »

Я лично начинал с того что нарисовал с поморщу PyVCP панель на которой располагались кнопки для упражнения операцией смены инструмента и там можно вообще вывести то что ты посчитаеш необходимым для работы. после того как я ее нарисовал появиось немного понимания что как работаее т.
Дополнительная панель имеет свои пины (виртуальные, программные,--- контакты) которые в хел файле вы потом соединяете с файлом G кода который проводит смену инструмента, то есть нажатие на кнопку выдлета EMC2 Integrators Manual Перевод на русский язык #67 вызывает выполнение файла с Ж кодом Файл Gкода или М кода надо написать или найти готовый, и положить в папку с nc- файлами.
Также в хел файле необходимо соединить пин датчика с пином соответствующего вывода ЛПТ порта.
В ини файле необходимо добавить загрузку соответствующих файлов, панель PyVCP, хел файла и файлов с Ж кодом
Как пример прикладываю свои файли
Может я конечно все это совершенно не о том :idiot: то тогда прошу прощение, а то я часто способен только на :hammer: или :rasp:
Вложения
jet.tar.gz
(5.42 КБ) 1167 скачиваний
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение valor »

понятно что поиск заготовки и длинны инструмента это разные вещи, я заготовку по высоте определяю первым инструментом, мне нужно понять последовательность операций, то-есть сначала едем по домам, затем едим инструментом на датчик, затем едем инструментом на заготовку и выставляем 0 в G54(тут как раз вопрос - надо ли что-то делать с полученной от датчика координатой), теперь у нас есть все чтобы запустить программу, скажем после десятого прогона программы надо поменять фрезу, но с тем-же номером инструмента - (затупилась или сломалась) - тогда новой фрезой едем на датчик и разницу в координатах записываем в G код компенсации на длину инструмента? тогда надо три саброутина - правильно ли я понимаю?
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение solo »

Как я обычно поступаю и что я сделал под себя
valor писал(а):затем едим инструментом на датчик, затем едем инструментом на заготовку и выставляем 0 в G54(тут как раз вопрос - надо ли что-то делать с полученной от датчика координатой)
все так и я делаю
1 на дополнительной панели есть две кнопки "проба ПЕРЕД замены" нажимание ее инструмент едит на датчик,
после срабатывания датчика в память записываться длинна инструмента и ЛЕД на панели меняет цвет!!!. Длинна инструмента хранится в память до выключения компа (могу ошибаться) Я эту операцию для себя называю "привязкой инструмента"
Начинанием работать.
Теперь в процессе работы если у нас возникает необходимость замены фрезы (сламалась или просто надо заменить на другой размер) мы меняем фрезу едим на датчик и нажимаем кнопку "проба ПОСЛЕ замены". Инструмент опускается на датчик .
Все дальше можно продолжать работать :hehehe:

Ж код действий по нажатию кнопки кнопки "проб перед заменой" лежит в файле probado.ngc
Ж код ---"проба после замены" в файле probaand.ngc
возможно надо подправить последние файлы под себя
Аватара пользователя
РЕКЛАМА
Почётный участник
Почётный участник
Сообщения: 726
Зарегистрирован: 11 дек 2012, 21:46
Репутация: 80
Откуда: Брянск
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение РЕКЛАМА »

А зачем 2 файла и 2 кнопки, Что будет если их перепутать?
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение solo »

При выполнении первого файла мы в относительных единицах измеряем длину инструмента и записываем ее в память
Чтобы не забывать это сделать я специально прицепил светодиод на панеле
Второй файл присваивает относительные координаты новому инструменту.
РЕКЛАМА писал(а):Что будет если их перепутать?
не знаю, надо попробовать .
Там на панели есть еше одна кнопка "Z 0 проба" это кнопка просто выставляет после касания датчику ноль на уровне стола. Только надо подправить Ж код в зависимость от высоты датчика. Тогда кнопки "перед " и после в принципе не нужны
В принципе каждый может сам под себя переделать как панель так и Ж код
Я предложил свой вариант и это наверное уже 6 или 7 вариант моей панели и она меня пока не устраивает. :thinking:
Наверное вся прелесть LCNC в том что каждый пользователь может адаптировать под себя и свои потребности данную программу. :)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение Nick »

solo писал(а):Длинна инструмента хранится в память до выключения компа (могу ошибаться) Я эту операцию для себя называю "привязкой инструмента"
Ее можно писать в таблицу инструмента, чтобы не хранить в переменных. (через G10 L1 или G10 L10)
http://linuxcnc.org/docs/html/gcode/gco ... ec:G10-L1_
solo писал(а):после срабатывания датчика в память записываться длинна инструмента и ЛЕД на панели меняет цвет!!!
Можно записать, измеряли ли мы текущий инструмент, и если не измеряли - вставать на паузу и ждать нажатия кнопки.
solo писал(а):Наверное вся прелесть LCNC в том что каждый пользователь может адаптировать под себя и свои потребности данную программу.
О, еще один понял истину :)!
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение solo »

Nick писал(а):Ее можно писать в таблицу инструмента, чтобы не хранить в переменных. (через G10 L1 или G10 L10)
Таблица инструментов наверное полезна при автоматической смене инструментов ИМХО. А если стоит задача; в цангу в ручную вставить новую фрезу, зажать ее колючем, и быстренько сделать привязку системы координат станка по Z то наверное манипуляции с датчиком по Z самый оптимальный вариант.
Еще хотел добавить по поводу своей панели
valor писал(а): скажем после десятого прогона программы надо поменять фрезу, но с тем-же номером инструмента - (затупилась или сломалась)
Если при выполнении программы обработки детали возникала необходимость замены фрезы (я часто работаю с черным металлом ) то поступаю следующим образом.
1 нажимаю кнопку "пауза" потом "исполнить следующую строку" , потом "стоп" короче надо чтобы строка программы управления на всяк случай выполнилась до конца
2 на дополнительной панели нажимаю кнопку "ТОЧКА"-- позволяет запомнить текущую координату станка :tongue:
3 В ручном управлении вывожу фрезу из зоны обработки
4 меняю фрез
5 делаю привязку по высоте
6 нажимая на кнопки res X или Y или Z на дополнительной панели мы быстро возвращаемся в зону обработки :attention: Главное при этом не на что не налететь.
7 в меню axis нажимаем выполнить с "данной строки" и все поехали дальше :tongue:
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6599
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение NightV »

solo писал(а):1 нажимаю кнопку "пауза" потом "исполнить следующую строку" , потом "стоп" короче надо чтобы строка программы управления на всяк случай выполнилась до конца
2 на дополнительной панели нажимаю кнопку "ТОЧКА"-- позволяет запомнить текущую координату станка
3 В ручном управлении вывожу фрезу из зоны обработки
у меня в окуме такая фишка есть ,
2.jpg (4438 просмотров) <a class='original' href='./download/file.php?id=19529&sid=7c4ca94c153d4b821fd828015d78d905&mode=view' target=_blank>Загрузить оригинал (27.75 КБ)</a>
нажимаю паузу а потом кнопку среднюю кнопку что на картинке,
после этого делаю что хочу, верчу туретой (барабаном), останавливаю шпиндель, двигаю по X Z куда хочется,
после всех манипуляций нужно только запустить шпиндель и вернуть инструмент в барабане который был (иначе не выходит из этого режима)
после нажимаю "Sequence restart" и станок сам возвращается в место где был когда я нажал на паузу (разумеется при этом могу контролировать скорость меремещения) и стоит в режиме паузы, снимаю с паузы и поехали работать дальше, работает даже когда исполняется цикл, например нарезание резьбы.
кроме работы с мечиком так как шпиндель продолжает крутится и нельзя нажимать паузу
Последний раз редактировалось NightV 11 окт 2013, 17:28, всего редактировалось 1 раз.
Всё просто! если знаешь КАК!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение Nick »

NightV писал(а):после нажимаю "Sequence restart" и станок сам возвращается в место где был когда я нажал на паузу
А как он возвращяется? По какой траектории?
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6599
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение NightV »

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

Re: Авто ноль по Z в EMC

Сообщение Nick »

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

Re: Авто ноль по Z в EMC

Сообщение PKM »

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

Re: Авто ноль по Z в EMC

Сообщение Nick »

А как потом восстанавливается? (особенно интересует восстновление G02, у которого ij зависят от текушего положения...)

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

Re: Авто ноль по Z в EMC

Сообщение PKM »

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

Re: Авто ноль по Z в EMC

Сообщение Nick »

Вроде да...
Simmer
Новичок
Сообщения: 28
Зарегистрирован: 10 окт 2012, 10:50
Репутация: 1
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение Simmer »

А что означают эти строки???

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

#<_ToolZ>=#5063
G43.1 z[#<_ToolZ> - #1000]
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение solo »

Simmer писал(а):А что означают эти строки???

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

#<_ToolZ>=#5063
G43.1 z[#<_ToolZ> - #1000]
наглядная демонстрация кода G43
FAQ по Gcode, примеры #164
Могу ошибаться но в ячейке памяти #5063 хранятся относительные текущие координаты позиции Z
ToolZ это промежуточная ячейка для хранения
Simmer
Новичок
Сообщения: 28
Зарегистрирован: 10 окт 2012, 10:50
Репутация: 1
Контактная информация:

Re: Авто ноль по Z в EMC

Сообщение Simmer »

Народ, выручайте... У меня уже ни каких сил нету. Не могу я победить эту смену инструмента.
В HAL присутствуют строки

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

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
В INI есть

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

TOOL_CHANGE_QUILL_UP = 1
TOOL_CHANGE_POSITION = 32 48 0
Файл tool_change.ngc следующего содержания

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

O<toolchange> sub
T#1M6 (поменяли инструмент нажали продолжать)
G53 G0 Z10
G53 G0 X32 Y48 (едем в точку датчика инструмента)
F100 (Устанавливаем скорость поиска)
G38.2 Z-100 (едем в сторону датчика до касания)
(после касания отъезжаем на 10мм вверх)
G91 (относительные координаты)
G0 Z-10

F1  (снова ищем датчик но на маленькой скорости)
G38.2 Z-20
G90 (абсолютные координаты)

G10 L10 P#1 Z0
G43
O<toolchange> endsub
Что делаю дальше... Обнуляю станок по концевикам, переезжаю в некоторую другую позицию, делаю отступ, пытаюсь выполнить O-Code и получаю следующую ошибку. Что я делаю не так????
Вложения
Error.png (4326 просмотров) <a class='original' href='./download/file.php?id=19858&sid=7c4ca94c153d4b821fd828015d78d905&mode=view' target=_blank>Загрузить оригинал (90.26 КБ)</a>
Ответить

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