Полуавтоматическая юстировка центроискателя

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

Полуавтоматическая юстировка центроискателя

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

При работе с центроискателем требуется его время от времени юстировать — выставлять соосность зонда (стилуса) и оси шпинделя. Процесс это достаточно трудоемкий, кропотливый, требует наличия индикатора с малым усилием. Устройство самого ЦИ должно иметь средства для регулировки, что усложняет конструкцию и снижает жесткость.
Появилась идея, как частично автоматизировать и облегчить юстировку. Идея состоит в том, что смещение зонда не устраняется механически, а учитывается программно. Есть только один нюанс — центроискатель должен устанавливаться в одном и том же положении.
Прототип был сделан на основе датчика Контакт-3.
Ци.jpg (2822 просмотра) <a class='original' href='./download/file.php?id=94104&mode=view' target=_blank>Загрузить оригинал (549.67 КБ)</a>
К простому переходнику, выточенному из стали, добавил поводок с магнитом,
а в нижнюю крышку шпинделя ввернул штифт, к которому этот магнит притягивается, обеспечивая однозначную ориентацию ЦИ. В крышке есть отверстия с резьбой М4, которые предназначены для облегчения разборки шпинделя.
Ци-1.jpg (2822 просмотра) <a class='original' href='./download/file.php?id=94102&mode=view' target=_blank>Загрузить оригинал (522.66 КБ)</a>
В подпрограммы, работающие с ЦИ, внесены компенсация и учет смещения по осям X и Y.
Дело оставалось за малым — нужно было это смещение как-то измерять. Сделано было очень просто. Во второе отверстие на противоположной стороне крышки на время настройки вворачивается второй штифт, и к нему «примагничивается» поводок после поворота ЦИ ровно на 180 градусов.
Собственно, юстировка состоит в следующем.
- на столе станка закрепляется деталь с круглым отверстием, например, шарикоподшипник. Диаметр отверстия особого значения не имеет. Вводим в отверстие зонд ЦИ.
- запускается программа юстировки (написана в G-кодах, LinuxCNC)
- далее, по подсказкам программы мы устанавливаем ЦИ вначале в «калибровочное» положение (поводок у дополнительного штифта). Программа производит поиск центра отверстия
Ци-2.jpg (2822 просмотра) <a class='original' href='./download/file.php?id=94103&mode=view' target=_blank>Загрузить оригинал (526.63 КБ)</a>
- затем дополнительный штифт снимаем и ЦИ поворачиваем в рабочее положение. Еще раз производится поиск центра.
- разность измерений по каждой оси делится на 2 и записывается в файл. Это и есть искомые поправки.
Снимок-Калибровка центроискателя.ngc - AXIS 2.7.6 on BF20.png (2822 просмотра) <a class='original' href='./download/file.php?id=94101&mode=view' target=_blank>Загрузить оригинал (124.52 КБ)</a>
Всё, юстировка закончена. Дальше подпрограммы измерения будут считывать этот файл и вносить необходимые поправки.
Юстировка не требует измерительного инструмента, отнимает немного времени и минимизирует человеческий фактор.
https://www.youtube.com/watch?v=clurtFo5LzA
Это программа юстировки.

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

%
; Юстировка нерегулируемого центроискателя на основе Контакт-3
; Зонд должен быть введен в отверстие до запуска программы

#<fspeed> = 600.
#<min_xlimit> = 0. ; Границы рабочего поля
#<max_xlimit> = 290. ;
#<min_ylimit> = 0. ;
#<max_ylimit> = 150. ;
#<probe_diameter> = #<_ini[kontakt3]probe_diameter>

G40 G49 G92.1

G10 L2 P9 X0 Y0 ; Работать будем в G59.3
G59.3 

; Обнулим вывод размеров на панель
M68 E0 Q0.
M68 E1 Q0.

(MSG,Установите калибровочный упор и поверните ЦИ до контакта магнита с ним)
M0

; Первый проход - калибровочное положение (180 град. от рабочего)

G90 G38.2 X#<min_xlimit> F#<fspeed> ; Найдем касание слева
G91 G38.5 X1. ; Отъезд
G38.2 X-1. F[#<fspeed>/10.] ; Уточнение
#<left> = #5061 ; Запомним
G91 G38.5 X0.5 F#<fspeed> ; Отъезд

G90 G38.2 X#<max_xlimit> ; Справа
G91 G38.5 X-1. ; Отъезд
G38.2 X1. F[#<fspeed>/10.] ; Уточнение
#<right> = #5061 ; Запомним
G91 G38.5 X-0.5 F#<fspeed>
#<xmid1> = [[#<left> + #<right>] / 2.]
G90 G0 X#<xmid1>


G90 G38.2 Y#<min_ylimit> F#<fspeed> ; Найдем касание снизу
G91 G38.5 Y1. ; Отъезд
G38.2 Y-1. F[#<fspeed>/10.] ; Уточнение
#<bottom> = #5062 ; Запомним
G91 G38.5 Y0.5 F#<fspeed> ; Отъезд

G90 G38.2 Y#<max_ylimit> ; Сверху
G91 G38.5 Y-1. ; Отъезд
G38.2 Y1. F[#<fspeed>/10.] ; Уточнение
#<top> = #5062 ; Запомним
G91 G38.5 Y-0.5 F#<fspeed>
#<ymid1> = [[#<bottom> + #<top>] / 2.]
G90 G0 Y#<ymid1>

; Уточнение по X
G90 G38.2 X#<min_xlimit> F#<fspeed> ; Найдем касание слева
G91 G38.5 X1. ; Отъезд
G38.2 X-1. F[#<fspeed>/10.] ; Уточнение
#<left> = #5061 ; Запомним
G91 G38.5 X0.5 F#<fspeed> ; Отъезд

G90 G38.2 X#<max_xlimit> ; Справа
G91 G38.5 X-1. ; Отъезд
G38.2 X1. F[#<fspeed>/10.] ; Уточнение
#<right> = #5061 ; Запомним
G91 G38.5 X-0.5 F#<fspeed>
#<xmid1> = [[#<left> + #<right>] / 2.]
G90 G0 X#<xmid1>

(MSG,Снимите калибровочный упор и поверните ЦИ до контакта магнита с рабочим упором)
M0

; Второй проход - рабочее положение

G90 G38.2 X#<min_xlimit> F#<fspeed> ; Найдем касание слева
G91 G38.5 X1. ; Отъезд
G38.2 X-1. F[#<fspeed>/10.] ; Уточнение
#<left> = #5061 ; Запомним
G91 G38.5 X0.5 F#<fspeed> ; Отъезд

G90 G38.2 X#<max_xlimit> ; Справа
G91 G38.5 X-1. ; Отъезд
G38.2 X1. F[#<fspeed>/10.] ; Уточнение
#<right> = #5061 ; Запомним
G91 G38.5 X-0.5 F#<fspeed>
#<xmid2> = [[#<left> + #<right>] / 2.]
G90 G0 X#<xmid2>


G90 G38.2 Y#<min_ylimit> F#<fspeed> ; Найдем касание снизу
G91 G38.5 Y1. ; Отъезд
G38.2 Y-1. F[#<fspeed>/10.] ; Уточнение
#<bottom> = #5062 ; Запомним
G91 G38.5 Y0.5 F#<fspeed> ; Отъезд

G90 G38.2 Y#<max_ylimit> ; Сверху
G91 G38.5 Y-1. ; Отъезд
G38.2 Y1. F[#<fspeed>/10.] ; Уточнение
#<top> = #5062 ; Запомним
G91 G38.5 Y-0.5 F#<fspeed>
#<ymid2> = [[#<bottom> + #<top>] / 2.]
G90 G0 Y#<ymid2>

; Уточнение по X
G90 G38.2 X#<min_xlimit> F#<fspeed> ; Найдем касание слева
G91 G38.5 X1. ; Отъезд
G38.2 X-1. F[#<fspeed>/10.] ; Уточнение
#<left> = #5061 ; Запомним
G91 G38.5 X0.5 F#<fspeed> ; Отъезд

G90 G38.2 X#<max_xlimit> ; Справа
G91 G38.5 X-1. ; Отъезд
G38.2 X1. F[#<fspeed>/10.] ; Уточнение
#<right> = #5061 ; Запомним
G91 G38.5 X-0.5 F#<fspeed>
#<xmid2> = [[#<left> + #<right>] / 2.]

#<xoffset> = [[#<xmid1> - #<xmid2>] / 2] ; Коррекция по X
#<yoffset> = [[#<ymid1> - #<ymid2>] / 2] ; Коррекция по Y

(DEBUG,xoffset = #<xoffset>, yoffset = #<yoffset>)

#<xsize> = [#<right> - #<left> + #<probe_diameter>]
G90 G0 X#<xmid2>
M68 E0 Q#<xsize>
#<ysize> = [#<top> - #<bottom> + #<probe_diameter>]
M68 E1 Q#<ysize>


(DEBUG,Сохранить коррекцию? Да - S, нет - ESC)
M0

(LOGOPEN,/home/cnc/linuxcnc/subroutines/kontakt3_offsets.ngc)
(LOG,o<kontakt3_offsets> sub)
(LOG,# <_xoffset> = #<xoffset>)
(LOG,# <_yoffset> = #<yoffset>)
(LOG,o<kontakt3_offsets> endsub)
(LOGCLOSE)
G54 ; Вернем СК
G90
M02
%
Вот такой файл получается. При необходимости он просто вызывается как вложенная подпрограмма.

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

o<kontakt3_offsets> sub
# <_xoffset> = 0.292550
# <_yoffset> = 0.324881
o<kontakt3_offsets> endsub
Чудес не бывает. Бывают фокусы.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Полуавтоматическая юстировка центроискателя

Сообщение solo »

большое спасибо автору за данную идею
меня всегда восхищают простые решения сложных проблем, и всегда думаю почему мне не пришло в голову такая идея :D


давно сделал себе датчик-центроискатель (примитивны) , спица в диэлектрическом патроне, с возможностью центровать спицу регулировочными винтами по оси вращения.
сегодня провел маленький эксперимент нашел центр отверстия при помощи отцентрированной спици , и потом повторил тоже самое с просто зажатым на оборот сверлом обмотанным изолентой в сверлильном патроне , и сравнил результаты координат в Ж53 , разница в координатах центра отверстия не превышает 0.03 мм.
для меня это просто супер , я не знаю с какой точность можно найти центр отверстие датчиками "ренишоу " но при помощи простого сверла в патроне и данной методики получается все просто класс :good:
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

Re: Полуавтоматическая юстировка центроискателя

Сообщение Predator »

solo, Renishaw, ловят микроны ;)
Но, многое зависит от самого станка.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Полуавтоматическая юстировка центроискателя

Сообщение aftaev »

Predator писал(а):solo, Renishaw, ловят микроны
А если Ренишоу с оптической передачей сигнала, то поиск идет при вращении Ренишоу в шпинделе при поиске отверстия. И отпадает надобность в центрировании щупа ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

Re: Полуавтоматическая юстировка центроискателя

Сообщение Predator »

aftaev, Тебе, слава Богу, есть на чём тренироваться! :)
Ответить

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