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

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

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

Сообщение Simmer »

Странно все это... у меня стоит немного переработанная, но по сути все та же пластина на которой "+" станок заземлен и на нем так же "GND" от интерфейсной платы. Касание инструментом датчика приводит к замыканию и вуаля... есть сигнал. Переработка пластины заключается в том, что она подпружинена и установлена в 0 с рабочей поверхностью стола (реально -0,05). Подпружинил для того что бы мелкие фрезы не ломал при поиске нуля. А какой кондер можно поставить и куда?
А это куда записать?

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

loadrt debounce cfg=1
addf debounce.0 base-thread
setp debounce.0.delay  10
net prob_in parport.0.pin-XX-in-not  debounce.0.0.in
net prob_out   debounce.0.0.out  motion.probe-input 
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

Simmer писал(а):А это куда записать?
в конец любого хал файла...
(только пин парпорта подправь)
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

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

Сообщение nanthony »

Приветствую Вас, Господа!
Простите, что поднимаю такую старую тему, но что-то весь мозг обломал.

Сделал я датчик "конца", системы "кусок текстолита", подключил, настроил, все хорошо.
Поставил себе задачу: есть положение датчика и есть толщина жертвенного стола, который станок сам себе и профрезеровал (на уровне 11мм по Z и по всей рабочей плоскости).
Хочу сделать после проверки "конца" коррекцию, чтобы Z=0 попадал как раз в плоскость фрезерованого стола. Т.е. в абсолютных координатах в искомые Z=11.
Чтобы этого достичь надо к показанию #5063 добавить толщину датчика (датчик лежит на жертвенном столе). А станок, зараза, все делает, с виду, нормально, а арифметикой не занимается. Типа не обучен. При этом, как будто вообще никакой компенсации нет.
Делаю:

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

G17 G49 G21 G40 G90 G92.1 (типа все сбросить лишнее)
G91 G38.2 Z-90 F250
Все хорошо, доезжает, коротит датчик, стоит. #5063 содержит то, что надо. Делаю:

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

G91 G38.4 Z10 F10
Отъезжает, размыкает. #5063 содержит то, что надо. Делаю:

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

G90
G43 
G43.1 Z[#5063+#<sacrificialTableWidth>]
Хрена, простите, лысого. Причем уже с бубном плясал, отнимал, прибавлял, считал в отдельном выражении, убирал G43, сбрасывал G49, G90 убирал, G91 менял (и координаты, соответственно). Нифигашеньки! Учебники по этому делу прочитал все, что нашел. У всех все просто "сделайте G38.2 и G38.4" и фсе! Будто я один такой тупой, что понять не могу. "8 часов на пару и не берет!"

Господа ГУРУ. Помогите безмозглому. Пожалуйста.
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
verser
Мастер
Сообщения: 1877
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

nanthony писал(а): Делаю:

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

G90
G43 
G43.1 Z[#5063+#<sacrificialTableWidth>]
Хрена, простите, лысого.
Вы не показали что выбран какой-то инструмент из таблицыон там хоть есть-то у Вас?
Ещё тут http://linuxcnc.org/docs/html/gcode/gco ... #sec:G43_1
вроде пишут
G43.1 does not cause any motion. The next time a compensated axis is moved, that axis’s endpoint is the compensated location.
этой следующей команды, которая-то и сделает перемещение, Вы тоже не показали.
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

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

Сообщение nanthony »

Добрейшее утро.
verser писал(а):Вы не показали что выбран какой-то инструмент из таблицы
Конечно есть, причем, я знаю, что если был T6 и стал T6, то вообще ничего не происходит разумного. Т.е. измерения проходят, а вот "поездка" в точку смены инструмента, которая, к слову сказать, тоже настроена - не происходит. И сообщение LinuxCNC не выдает и программу не останавливает.
verser писал(а):этой следующей команды, которая-то и сделает перемещение, Вы тоже не показали.
Конечно есть, там много чего есть. Хоть:

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

G53 G0 Z20 ....
Это вроде объяснимо, так станок поедет по "абсолютным" координатам, но я нигде не нашел указания, что на систему G53 не влияет компенсация.
Хоть:

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

G54
G0 Z20 ....
Одна помойка. Едет без учета инструмента.
Причем моя "озадаченность" в том, что что-бы я ни записал в #5063 или что-бы я ни сказал G43.X - результат одинаковый.

Программка вообще-то большая. Я написал цикл, который меняет инструмент и "погоняв" по станку в разные точки измеряет инструмент еще раз. Хотел проверить "повторяемость". На 50 циклах, к слову сказать, "разлет" измерений составил:

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

minZDelta = 0.000168
maxZDelta = 0.032450
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
gennadiy
Кандидат
Сообщения: 64
Зарегистрирован: 03 ноя 2013, 22:28
Репутация: 32
Откуда: Брест
Контактная информация:

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

Сообщение gennadiy »

Попробуйте так (для версии linuxcnc >2.6):
(для просмотра содержимого нажмите на ссылку)

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

1. В Вашем файле с настройками станка ( .ini) в [RS274NGC] добавить:
	REMAP=M6 modalgroup=6 ngc=m6
2. Файл m6.ngc копируем в ~/linuxcnc/nc_files/m6.ngc (папка как в [DISPLAY] PROGRAM_PREFIX = ...)
3. В m6.ngc меняем на свои значения:
	#<substrate> = [4]       (толщина подложки или "жертвенного стола", мм)
	#<detail_hight> = [10]   (высота готовой детали, мм)
	#<probe_hight> = [16.34] (высота датчика Probe (датчик установлен на столе станка), мм)
	#<probe_x> = [-18]       (абсолютная координата расположения датчика Probe по X)
	#<probe_y> = [-323]      (абсолютная координата расположения датчика Probe по Y)
   Если задать высоту готовой детали = [0], то Z=0 будет на уровне подложки в относительных координатах
4. Попробовать в работе: 
	T1 M6
	M2
Вложения
m6.ngc
(491 байт) 1416 скачиваний
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

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

Сообщение nanthony »

gennadiy писал(а):Попробуйте так (для версии linuxcnc >2.6):
Приветствую Вас, Геннадий!
Круто должно быть, если так работает.
Поехал "к станку" проверять :) и :rail: и :thinking:
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

nanthony писал(а):Т.е. измерения проходят, а вот "поездка" в точку смены инструмента, которая, к слову сказать, тоже настроена - не происходит. И сообщение LinuxCNC не выдает и программу не останавливает.
А LinuxCNC знает, что нужно ездить в точку смены инструмента?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

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

Сообщение Predator »

UAVpilot писал(а): А LinuxCNC знает, что нужно ездить в точку смены инструмента?..
А, если и не знает, то наверное его можно этому научить :think:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Уметь куда-то ездить
Уметь-то он умеет, причём разными способами. Вопрос в том, сообщили-ли ему, что при смене надо ехать в позицию смены инструмента?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

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

Сообщение nanthony »

Господа!
Да, я новичок, но уж простите, новичок-новичку рознь. У меня станок и в точку смены инструмента и в G28 и в G30 и по-кругу и джигу пляшет (если скорость большую указать, то даже со стола норовит на пол и в пляс) :D .
И я понимаю, что Вы тут все знатоки (уж точно круче меня) и совсем не обязаны мне отвечать и помогать. Но отвечаете и помогаете.
Именно по-этому я не задаю дурацких вопросов типа: "А почему М2 едет по прямой к точке смены, она же инструмент сломает и заготовку испортит?" На подобное способен ответить сам и не пишу об этом тут чтобы Вас не отвлекать по-пустякам.

Но приступать к "выпиливанию" не решаюсь пока я "плаваю" во всем этом хозяйстве. Понадобилось тут срочно вырезать деталь - я это сделал. За 1 день без подготовки и тестов. Сразу начисто. Только подачу подкрутить пришлось по-ходу. А так 6 колпаков для фонарей уже украшают эти самые фонари. Но, делая эти колпаки я понял, что не просто профан, а 0 полный. И начал грызть гранит.

В данный момент я обламываю свой мозг на компенсациях, калибровках и прочих выдумках предков. И вообще тестирую все встреченные мной G-коды. Хочу понять принцип. Найти стиль, если хотите. И, возможно, даже, задумку автора увидеть.

Вот, кажется мне, что смещение начала отсчета после калибровки (которые Геннадий так любезно предложил, да еще и с плюшкой в виде ini подмены М кода) не совсем правильно. Координатные системы для другого. А "для этого" - коррекция на длину инструмента. Вот она-то у меня и не работает, зараза. Тестировать-тестирует, коды выполняет - ничего не меняется.

А думалось мне, что, если, коррекция будет введена как положено, как праотцами задумывалось, то даже в абсолютных координатах станок не поедет обламывать инструмент об стол. (хотя, в абсолютных - это я многого хочу, но вдруг?).
Хотя, если вспомнить цех в НИИ в 1985-6 годах, где меня учили на фрезерах с ЧПУ работать и программу на перфоленте составлять, так вот там, если фреза калибровалась в "0", то даже с ручного пульта ее воткнуть в стол было нельзя. Так что может мечтаю я не о несбыточном.


Я пытался сократить свой вопрос до рамок темы и по-существу. По этой причине не указал всей программы и всего остального. Начинаю:
1. Задача: "погонять" станок в разные позиции, останавливаться в них по M2 (чтобы можно было отключить), периодически "заглядывать" к датчику и проверять калибровку.
2. Задача решена полностью двумя вложенными циклами, (один "гоняет", и в конце "прогона" вызывает измерение, а другой "накладной" вызывает предыдущий, но "просит" инструмент сменить через параметр функции) за одним исключением и одной особенностью. Все переменные, их разницы, суммы, распределения и статистика записываются в log-файл.

Исключение (собственно вопрос по-теме): Ввод коррекции на длину инструмента G43.1 Z[#5063+#<sacrificialTableWidth>] не делает ни фига и последующие G00 или G01 "едут" куда ехали. Не понимаю куда смотреть. (Не спрашивайте, включал ли я G53-59, да, по-всякому делал. Смена координат - проходит. Компенсация - нет)

Особенность (примечание, не совсем по-теме): Если указан код M06 TХ и новыйХ=старыйХ, то станок "долетает" до точки смены и сразу, без сообщений и остановок, начинает тестироваться. То, что он в точку смены не ездит - это был мой нубский промах. Датчик находится под точкой смены. По-сему я "думал", что если он не останавливается, то и не "ездит". Ездит, но без остановки.
Хотя, в этой связи возникает вопрос, а если я хочу инструмент Т109452 поменять на такойже, ну источился тот, программа длинная и все такое. Фигли он за меня думает? Сказано "менять" - значит менять. А он, вонючка, только дразницца.
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

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

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

Здесь это обсуждалось однажды
Чтобы система "забыла" про то, что инструмент уже установлен, можно использовать M6 T0


Здесь тоже полезная информация http://www.linuxcnc.org/docs/html/gui/a ... ool-Change
Чудес не бывает. Бывают фокусы.
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

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

Сообщение nanthony »

Огромное спасибо, Господа! За подсказки и ссылки.

Отступ на инструмент у меня не добавлялся, потому что я лопух. Перед G43.1 надо позвать G43. Это четко указано в документации, а я не внимательный. К 0 он ничего прибавлять не хочет.

Отступы из постов выше - огромное спасибо за наводки. Научился и перенаправлять команды и вообще измерения производить по-человечьи.

Психоз, связанный с использованием 5063 при калибре, был связан с тем, что я просто не понимал сути этой переменной. Если она уже и есть измерение, то не надо ее в это измерение совать еще раз. :) Да и вообще лучше не тыкать переменными куда не гоже.

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

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

Сообщение Nick »

nanthony писал(а):. Задача: "погонять" станок в разные позиции, останавливаться в них по M2 (чтобы можно было отключить), периодически "заглядывать" к датчику и проверять калибровку.
все просто, либо расставляем в Gкоде M1 (а не M2) и останавливаемся в нужных местах, но это не даст нам возможности кататься и мерить интрумент с последующим стартом. (точнее позволит, но придется жать выполнить с выбранной строки, что может быть не очень удобно)

Лучше сделать через block delete
http://linuxcnc.org/docs/html/gcode/ove ... k_delete_a
Т.е. делаем процедуру измерения, скажем O#<measure> SUB, расставляем в коде строки, где мы можем измерять инструмент со / в начале строки :

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

 /O#<measure> CALL
Теперь, если мы выключим block delete (ALt+M+/) то станок поедет на измерение.

Кстати, в конец процедуры измерения можно добавить сброс block delete - чтобы в следующем цикле не ехать снова его измерять. Сделать это можно через пины halui
halui.program.block-delete.is-on bit out
status pin telling that block delete is on

halui.program.block-delete.off bit in
pin for requesting that block delete is off

halui.program.block-delete.on bit in
pin for requesting that block delete is on
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

А почему никто не использует G10 L1 (L10, L11)? Я вот хочу прикрутить команды из этой группы к датчику инструмента
Olitawpn
Новичок
Сообщения: 1
Зарегистрирован: 21 авг 2016, 22:24
Репутация: 0
Настоящее имя: Olitawpn
Контактная информация:

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

Сообщение Olitawpn »

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

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

Сообщение verser »

PKM писал(а):А почему никто не использует G10 L1 (L10, L11)? Я вот хочу прикрутить команды из этой группы к датчику инструмента
В Auto Tool Measurement встроена перезапись новой высоты инструмента после обмера именно такого вида

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

G10 L1 P0 Z[touch_result - probeheight + blockheight]
G43
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение PKM »

Запускал поиск по форуму по этим командам - результата ноль. Вот и подумал, что не используют :)

Сегодня прикрутил ренишоу, завтра буду экспериментировать. Думаю выставить ноль G59.3 по касанию датчика и потом просто
G38.2 Z-100
G10 L11 P#<_current_tool> Z#<_z>
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

Итак, правильная команда для выставления tool offset
G10 L11 P#<_current_tool> Z0
где Z0 - координата датчика в G59.3
И никаких вычислений
Ответить

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