Датчик 0 оси Z

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Датчик 0 оси Z

Сообщение aftaev »

Nick писал(а):А вы развели тут понимаешь Renishaw или не Renishaw !
Эт пока ты по свадьбам шастаешь, чтоб не скучать мы племику развели :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Датчик 0 оси Z

Сообщение Lexxa »

:D
:bender:
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Датчик 0 оси Z

Сообщение NightV »

контроля "усилия\нажания" нет, это не стелорез, это гравер алмазным диском, ТУТ я расказывал о нем, там есть видео с похожим станком.
тоесть контролировать усилие нажатия не нужно нужно "держать" высоту, диск впиливается в стекло на 1-1.5мм, кстате толщина стекла "играет", не значительно но есть.
примерно набросал принцип работы бошки Z
bitmap2.gif (4539 просмотров) <a class='original' href='./download/file.php?id=3853&mode=view' target=_blank>Загрузить оригинал (17.18 КБ)</a>
да да.. есть еще и нижний щуп :) сначала долго не мог понять зачем он :think:
у обоих щупов есть свой регулятор давления.
теперь все это нужно завeзать в LinuxCNC
Всё просто! если знаешь КАК!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик 0 оси Z

Сообщение Nick »

NightV писал(а):теперь все это нужно завeзать в LinuxCNC
Да не вопрос, только как оно должно работать? Нужна пошаговая схема.
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Датчик 0 оси Z

Сообщение NightV »

ну в теории пошагово алгоритм вроде не сложный :shifty:
"компенсация длинны инструмента"
должен запускаться после нажатия кнопки на пульте, точнее кнопки две, типа "Check disk №1" и "Check disk №2"
1) сменили диск и нажали "Check disk №1"
2) бошка Z подьехла над щупом в столе, по заранее известным координатам XY
3) выпустила щуп
4) после срабатывания концевика\лимита (что мол щуп выпущен) начинает опускаться
5) сработал "средний" концевик, приподнялась на +2-3мм от места срабатывания
6) снова медленно опускается до срабатывания датчика, сработало...
7) занесли новые значения в реестр для "tool №1"
8) убрали щуп и убедились по концевику что щуп убран

... тоже самое для второго диска

проблема еще в том что я никогда не сталкивался с "компенсацией длинны инструмента" :monkey:

для "Поиск 0 по Z", почти тоже самое
1) положили стекло, указали где 0 по XY и нажали "Start" программы
2) бошка Z подьехла на X100 Y100 (угол стекла)
3) выпустила щуп
4) после срабатывания концевика\лимита (что мол щуп выпущен) начинает опускаться
5) сработал "средний" концевик, приподнялась на +2-3мм от места срабатывания
6) снова медленно опускается до срабатывания датчика, сработало...
7) посчитали, занесли новый 0 по Z
8) убрали щуп и убедились по концевику что щуп убран
9) запуск программы

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

Re: Датчик 0 оси Z

Сообщение Nick »

Опять развели полемику... Ладно ближе к вечеру тему почищу.

По обнулению... Не совсем понимаю, зачем два щупа? Один для инструмента, другой для толщины стекла?

вообще все это делается примерно также, при помощи G38. Только записывать можно в разные места. И т.к. у тебя процедура сложная может быть хитрее.

можно решать двумя способами
1. Ladder logic
2. Хитрить с hal

в двух словах напишу, сейчас нужно убегать

1) сменили диск и нажали "Check disk №1" --- или нажали или в Gкоде пишем
2) бошка Z подьехла над щупом в столе, по заранее известным координатам XY --- G53 G0 X.. Y.. (едем в точку на станке G53 нужно)
3) выпустила щуп --- Это какой командой делается, просто сигнал на пин? Тогда можно M62-65
4) после срабатывания концевика\лимита (что мол щуп выпущен) начинает опускаться ---- Можно попробовать загнать в probe in и G38.2 Z-10, или если нужно просто подождать, то те же M62-65
5) сработал "средний" концевик, приподнялась на +2-3мм от места срабатывания --- G38.2 Z-10
6) снова медленно опускается до срабатывания датчика, сработало... G91 G0 Z-2 G92 G38.2 Z-10
7) занесли новые значения в реестр для "tool №1" ---- G10 L1 ....
8) убрали щуп и убедились по концевику что щуп убран M62-65

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

Re: Датчик 0 оси Z

Сообщение Nick »

Некоторые сообщения из этой темы были выделены в новую: Renishaw или не Renishaw
Итак, продолжаем по теме :).
Как и обещал пишу подробнее.
Вот примерный Gкод:

T2M6 (сменили инструмент)
G53 G0 X.. Y.. (поехали в точку для поиска длинны инструмента, G53 - это перемещение в реальных координатах станка, вне зависимости любых смещений)
M64 P0 (делаем Dout1 - команда на выставление щупа)
M66 P0 L1 (ждем растущую грань на концевике вытаскивания щупа Din1)
G38.2 Z-10 (едем вниз до срабатывания среднего концевика, средний концевик заводим на probe-in. )
G91 (включаем относительный режим)
G0 Z-2 (едем на 2мм вверх)
G90 (возвращаемся к абсолютному режиму)
M64 P1 (переключаем probe-in на датчик последний, делаем это через mux2, в котором пин sel будет подключен к Dout2)
F1 (уменьшаем скорость)
G38.2 Z-10 (едем до срабатывания датчика)
G10 L10 P2 Z0 (выставляем такие значения для инструмента, чтобы текущая координата по Z стала 0 --- G10 L10 P[tool number] R[radius] X[offset] Z[offset] Q[orientation] )
G0 Z10 (едем наверх)
M65 P0 (выключаем щуп)
M66 P0 L2 (ждем ниспадающую грань на концевике вытаскивания щупа Din1)

Вопросы? :hehehe:
PS я аж сам офигел, как такое выдал :D. Если вопросов нет, переходим ко второму щупу.
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Датчик 0 оси Z

Сообщение NightV »

:D погоди со вторым! дай мне этот то обсосать :D есть неясные моменты (много), но интереснее сначала самому ;) чтоб задать уже "умные" вопросы :shifty: есть некоторые Gкоды которые я раньше не использовал, нужно почитать малость ;)
Всё просто! если знаешь КАК!
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Датчик 0 оси Z

Сообщение NightV »

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

Re: Датчик 0 оси Z

Сообщение Nick »

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

Re: Датчик 0 оси Z

Сообщение NightV »

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

Re: Датчик 0 оси Z

Сообщение Nick »

Суть такая, насколько я понимаю, в emc2 в модуле motion есть только один пин motion.probe-input. А мы хотим делать пробу на разных датчиках. Для этого нужно два ввода от датчиков как-то обрабатывать. Для этого берем и создаем компонент mux2 и делаем такую схему:

net probe1 parport.0.pin-01.in => mux2.0.in0
net probe2 parport.0.pin-02.in => mux2.0.in1
net select-probe motion.digital-out-01 => mux2.0.sel
net probe-in mux2.0.sel => motion.probe-input
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Датчик 0 оси Z

Сообщение NightV »

раз пошла такая пьянка то может mux4 ?
датчиков на нащупе то 3, 2 (убран\выпущен) концевых и 1 по которому выставляемся

net probe1 hm2_5i23.0.gpio.040.in => mux4.0.in0
net probe2 hm2_5i23.0.gpio.041.in => mux4.0.in1
net probe3 hm2_5i23.0.gpio.042.in => mux4.0.in2
net select-probe motion.digital-out-01 => mux4.0.sel
net probe-in mux4.0.sel => motion.probe-input

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

Re: Датчик 0 оси Z

Сообщение Nick »

net select-probe motion.digital-out-01 => mux4.0.sel это подсоединяем пин для выбора. В данном случае пин, которым можно управлять через M65.
net probe-in mux2.0.sel => motion.probe-input - тут ошибочка :ups:.
net probe-in mux2.0.out => motion.probe-input


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

Re: Датчик 0 оси Z

Сообщение NightV »

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

Re: Датчик 0 оси Z

Сообщение Nick »

Ну это можно сделать через M66 P0 L1, там есть различные режимы, ждать такого-то состояния пина,
L0 - не ждем
L1 - ждем растущую грань
L2 - ждем падующую грань
L3 - ждем 1 на пине
L4 - ждем 0 на пине

Но если хочется сделать полноценную логику с постоянным контролем состояния пинов, может лучше воспользоваться Ladder Logic.
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Датчик 0 оси Z

Сообщение NightV »

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

Re: Датчик 0 оси Z

Сообщение Nick »

В принципе на том уровне, на котором это написано сейчас можно легко обойтись без ladder logic
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Датчик 0 оси Z

Сообщение NightV »

но чтоб на кнопку "Старт" повесить проверку условий (вода, поздух в системе, ОК от серв) без ladder logic наверно не обойтись
Всё просто! если знаешь КАК!
Романов Семен
Почётный участник
Почётный участник
Сообщения: 646
Зарегистрирован: 23 янв 2012, 23:25
Репутация: -80
Откуда: Самара

Re: Датчик 0 оси Z

Сообщение Романов Семен »

Только сегодня настроил машинку на EMC2 (2.5.0) (до этого учился на маче)
Но в виду определенных нужд - которые осилит емс, и не под силу мачу, пришлось пересаживаться с велосипеда на транспорт посерьезнее...

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

Помогите и мне, или направьте на путь истинный,
Итак датчик у меня НАИПРОСТЕЙШИЙ - это два крокодила, один я подключаю к фрезе, второй к поверхности (она токопроводящя - заготовка печатной платы), и все это на yoocnc-контроллер, и при касании фрезы заготовки, у меня на порт0.пин13 поступает низкий уровень (нуль)

Правильно ли я собираюсь сделать:
net probe motion.probe-input <= parport.0.pin-13.in (thanx a lot, Nick :D http://cnc-club.ru/forum/viewtopic.php? ... 550#p14545)
А вот дальше не совсем понятно:

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

F100
G0 X100 Y100 Z10
G38.2 Z0
F1
G38.4 Z10
Правильно ли я "читаю" код? 1. ехать будем со скоростью 100мм/мин, едем в х100,у100, поднимаем инструмент на 10мм,
Далее опускаем инструмент до косания к нулю. (и станок будет двигаться либо до нуля либо пока не будет контакта с поверхностью)
потом со скоростью 1мм/мин поднимаем инструмент пока не будет либо разрыва, либо не будет высота 10мм...

Если я правильно понимаю, то после выполнения этого кода инструмент у нас будет касаться заготовки, а дальше на наше усмотрение - мы либо просто задаем ноль для координаты Z либо делаем поправку на инструмент?

Подскажите как лучше поступать? точнее к чему лучше привыкнуть? я бы конечно проще воспринимал если общее начало координат было у начала заготовки, но в то же время у меня нет концовиков на Z оси (на X и Y я установил сам, так сказать доработал китайский станочек, а вот на Зет красило не получается повесить - сопли будут =(( )
И поэтому я задал критические отклонения по зет в сетконфиге, и не хотелось бы что бы по ошибке программы станок пытался уехать за ось...

заранее благодарю ВСЕХ
И огромное спасибо Nick'у за форум и индивидуальную помощь в лс...
Как говориться респект и уважуха. :geek: :clap:
Ответить

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