Страница 7 из 17

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

Добавлено: 29 дек 2015, 12:25
Alexsh
Предлагаю следующий алгоритм:
создаем пустой файлик (к примеру tool_sensor_location.xyz)
В окошке ручной смены инструмента создаем пунктик "датчик зафиксирован"
Если файлик пуст, галочка снимается автоматом (можно эту функцию и не делать)

Механизм работы со стационарным датчиком:
при первой инициализации датчика, галочка в пунктике "датчик зафиксирован" снята т.к. файлик пуст, устанавливаем инструмент в ручном режиме в позицию расположения датчика и жмем кнопочку Probe tool setter. Полученные координаты сохраняются в файлик и автоматически устанавливается галочка в вышеописанном пунктике. Далее координаты берутся из этого файлика пока галочка не будет снята вручную.

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

В случае со стационарным датчиком, координаты вписать в файлик можно заранее, как мы сейчас и делаем, только в .ini файле. После чего пользоваться как и сейчас. Можно даже ключик в файлик поместить, который будет блокировать снятие галочки, если датчик стационарный (на всякий случай)

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

Добавлено: 29 дек 2015, 13:15
verser
Alexsh писал(а):Предлагаю следующий алгоритм:...
Мысли неплохие. Добро пожаловать на форум :) .

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

Добавлено: 29 дек 2015, 13:48
Predator
Alexsh писал(а):Далее координаты берутся из этого файлика пока галочка не будет снята вручную
Да, только после снятия галочки, файлик заодно нужно опустошить ;)

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

Добавлено: 29 дек 2015, 14:47
Alexsh
Predator писал(а):
Alexsh писал(а):Далее координаты берутся из этого файлика пока галочка не будет снята вручную
Да, только после снятия галочки, файлик заодно нужно опустошить ;)
Не обязательно, его можно переписать новыми данными нажатием кнопочки Probe tool setter. А автоматическое снятие и установка галочки может происходить после обращения к файлу, а именно чтения данных, которое, в свою очередь, должно происходить после их обновления, перед замером инструмента и при запуске LinuxCNC.
Я подправил алгоритм выше, что бы было понятнее.
verser писал(а):Мысли неплохие. Добро пожаловать на форум :)
К сожалению в питоне я полнй ноль, как впрочем и G кодах пока еще.
А за приглашение спасибо!

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

Добавлено: 08 янв 2016, 05:36
pkasy
привет.
помогите найти ошибку при использовании данного модуля.
делаю серию измерений по высоте.
12:30:02 Probe Down Z=-4.5309
12:29:30 Probe Down Z=-0.0150
12:28:43 Probe Down Z=-0.0130
12:28:18 Probe Down Z=-4.1871
12:28:01 Probe Down Z=-0.0210
12:27:23 Probe Down Z=-0.0025
Датчик все время поднимается/опускается одинаково.

При измерениях центра, ситуация похожая - то правильно, то ошибка примерно на 5 мм.

Куда рыть? ЧЯДНТ?

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

Добавлено: 08 янв 2016, 05:42
pkasy
продолжение.
обнуляю Z, а в ответ все равно
12:39:58 Probe Down Z=-4.5044
12:38:55 Probe Down Z=-4.5044
12:38:40 Probe Down Z=-4.5024
12:37:59 Probe Down Z=-4.5314
12:37:45 Probe Down Z=-4.5049
12:37:29 Probe Down Z=-4.5079
12:37:14 Probe Down Z=-4.5289
12:30:02 Probe Down Z=-4.5309
несколько раз обнулил. должно показывать 0 плюс/минус. все равно пишет -4,5. галочку автоноль ставил, снимал - результат один.

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

Добавлено: 08 янв 2016, 14:11
Alexsh
А где обнуляешь?
Попробуй задать нулевой отступ в панели ручного управления

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

Добавлено: 09 янв 2016, 02:51
pkasy
ну, вручную. ставлю 0 или 4.5 ( высота подъема ).
тут такая история. находишься в экране аксиса - одно число.
переключил окна на разные программы, вернулся в экран, нажал на замер - другая.

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

Добавлено: 11 янв 2016, 11:24
Nick
Alexsh писал(а):Если Home будет за пределами лимита, выскочит ошибка во время выполнения хомления - превышен лимит.. можно только внутрь. Я делал разницу до 0.1 , а точность моих Home дачиков 0.03 и все равно ошибка иногда выскакивает. В описанном мной варианте лчения ошибку не наблюдал.
Не выскочит, если:
датчик ставим в -1,
HOME = 0.0 - The position that the joint will go to upon completion of the homing sequence.
HOME_OFFSET = -1.0 - The axis position of the home switch or index pulse, in machine units. When the home point is found during the homing process, this is the position that is assigned to that point. When sharing home and limit switches and using a home sequence that will leave the home/limit switch in the toggled state the home offset can be used define the home switch position to be other than 0 if your HOME position is desired to be 0.
HOME_IGNORE_LIMITS = YES - When you use the limit switch as a home switch and the limit switch this should be set to YES. When set to YES the limit switch for this axis is ignored when homing. You must configure your homing so that at the end of your home move the home/limit switch is not in the toggled state you will get a limit switch error after the home move.

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

Добавлено: 07 фев 2016, 10:22
Alexsh
Мужики подскажите где в программе заложить толщину датчика высоты заготовки (толщина текстолитовой пластинки) что бы автоматом учитывалась?

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

Добавлено: 07 фев 2016, 10:54
verser
Alexsh писал(а):Мужики подскажите где в программе заложить толщину датчика высоты заготовки (толщина текстолитовой пластинки) что бы автоматом учитывалась?
В файле python/auto_tool_measurement.py

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

    def clicked_btn_probe_workpiece(self, data = None):
        # Start probe_down.ngc
        self.command.mode( linuxcnc.MODE_MDI )
        self.command.wait_complete()
        self.command.mdi( "O<block_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_block_height.set_value( float(a[2]) - [color=#BF4000]толщина пластинки мм[/color])
        self.command.mode( linuxcnc.MODE_MANUAL )
        self.command.wait_complete()
Это чтобы учитывать толщину пластинки при привязке к заготовке.

Еще, если используется эта пластинка в самом начале при привязке к базе, то в том же файле

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

    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])  - [color=#BF4000]толщина пластинки мм[/color])
        self.command.mode( linuxcnc.MODE_MANUAL )
        self.command.wait_complete()

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

Добавлено: 08 фев 2016, 00:07
Alexsh
Поигрался немного этими параметрами.. Не соображу как правильно задать...
К примеру высота датчика-измерителя инструмента 14мм, а толщина пластинки, которая на заготовку кладется - 1 мм.

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

Добавлено: 08 фев 2016, 08:05
verser
Alexsh писал(а):Поигрался немного этими параметрами.. Не соображу как правильно задать...
К примеру высота датчика-измерителя инструмента 14мм, а толщина пластинки, которая на заготовку кладется - 1 мм.
Пластинка кладется на заготовку - это понятно, а вот на "датчик-измеритель инструмента" она кладётся или нет?

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

Добавлено: 09 фев 2016, 10:34
Alexsh
нет не кладется... датчик сам по себе- измеритель сам по себе..

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

Добавлено: 09 фев 2016, 11:11
verser
Alexsh писал(а): К примеру высота датчика-измерителя инструмента 14мм, а толщина пластинки, которая на заготовку кладется - 1 мм.
Тогда надо, чтобы в поле Block Height записалось 14-1 = 13 мм. А, чтоб руками всякий раз не прописывать, внести корректировку в файл python/auto_tool_measurement.py(выделил корректировку красным)

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

    def clicked_btn_probe_workpiece(self, data = None):
        # Start probe_down.ngc
        self.command.mode( linuxcnc.MODE_MDI )
        self.command.wait_complete()
        self.command.mdi( "O<block_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_block_height.set_value( float(a[2]) [color=#BF4000]-1[/color])
        self.command.mode( linuxcnc.MODE_MANUAL )
        self.command.wait_complete()

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

Добавлено: 10 фев 2016, 23:47
Alexsh
Имеем:
1. Высота стационарного измерителя инструмента от уровня стола - 14мм
2. Датчик (пластинка) замера высоты заготовки (кладется на заготовку), толщиной - 1мм

Нужно задать ноль на уровне поверхности заготовки с учетом толщины пластинки 1мм.
Сначала касаемся фрезой измерителя длины инструмента . После замера длины подводим к заготовке и касаемся инструментом пластинки. В настоящее время поверхность пластинки устанавливаем как 0мм, но нужно получить значение +1мм.
verser писал(а):Тогда надо, чтобы в поле Block Height записалось 14-1 = 13 мм.
Для чего из 14мм вычитать 1мм?
Честно говоря вообще не понятно почему Block Height (Высота датчика), мы же замеряем условную длину инструмента? И если я правильно понял алгоритм работы, то на какой высоте изначально расположен этот датчик не имеет значения, а полученное при этом измерении значение, после смены инструмента, изменится и это изменение будет использоваться для компенсации?

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

Добавлено: 11 фев 2016, 00:54
verser
Alexsh писал(а):Имеем:
1. Высота стационарного измерителя инструмента от уровня стола - 14мм
2. Датчик (пластинка) замера высоты заготовки (кладется на заготовку), толщиной - 1мм

Нужно задать ноль на уровне поверхности заготовки с учетом толщины пластинки 1мм.
Сначала касаемся фрезой измерителя длины инструмента . После замера длины подводим к заготовке и касаемся инструментом пластинки. В настоящее время поверхность пластинки устанавливаем как 0мм, но нужно получить значение +1мм.
До этого места все рассуждения верны.
verser писал(а):Тогда надо, чтобы в поле Block Height записалось 14-1 = 13 мм.
Alexsh писал(а):Для чего из 14мм вычитать 1мм?
Не из 14мм. Мои извинения. Правильно так "Тогда надо, чтобы в поле Block Height записался результат измерения поверхности заготовки минус 1 мм".
Каждая следующая смена инструмента будет после обмера на датчике вот так менять запись в таблице для текущего инструмента

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

G10 L1 P#<tool> Z[#<touch_result> - #<_hal[auto_tool_measurement.probeheight]> + #<_hal[auto_tool_measurement.blockheight]>]
G43

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

Добавлено: 11 фев 2016, 10:18
Alexsh
То есть мы прописываем толщину пластины 1мм таким вот образом:

self.spbtn_block_height.set_value( float(a[2])-1)

и это будет компенсация на толщину заготовки.
На наши 14мм забиваем т.к. высота того датчика не меняется, а меняется только длина фрезы и ничего исправлять по этому поводу не нужно?

И попутно еще вопросик:
verser писал(а):Смену инструмента в своей разрабатываемой g-code программе прописывать так
Код: Выделить всё • Развернуть

M6 Tx
G43 Hx

Важно! В таблице инструментов надо чтобы все отступы по X и по Y для всех используемых в Auto Tool Measurement инструментов были = 0.
Важно! Рекомендуется в начале программы вставить смену инструмента, даже если он тот же.
Подскажите строчки, которые нужно вставить в постпроцессор арткам, что бы эти условия выполнялись.
Благодарю!

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

Добавлено: 11 фев 2016, 15:44
verser
Alexsh писал(а):То есть мы прописываем толщину пластины 1мм таким вот образом:
self.spbtn_block_height.set_value( float(a[2])-1)
и это будет компенсация на толщину заготовки.
Да, такое исправление позволит при замере поверхности заготовки автоматически игнорировать подложенную 1мм текстолитовую пластинку.
Alexsh писал(а):На наши 14мм забиваем т.к. высота того датчика не меняется, а меняется только длина фрезы и ничего исправлять по этому поводу не нужно?
Так точно, больше никакие исправления не нужны.
Alexsh писал(а):И попутно еще вопросик:
verser писал(а):Смену инструмента в своей разрабатываемой g-code программе прописывать так
Код: Выделить всё • Развернуть

M6 Tx
G43 Hx

Важно! В таблице инструментов надо чтобы все отступы по X и по Y для всех используемых в Auto Tool Measurement инструментов были = 0.
Важно! Рекомендуется в начале программы вставить смену инструмента, даже если он тот же.
Подскажите строчки, которые нужно вставить в постпроцессор арткам, что бы эти условия выполнялись.
Благодарю!
Прошу извинить, я с Арткамом не работаю. Парни, подскажите, кто знает!

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

Добавлено: 11 фев 2016, 17:31
Alexsh
Спасибо!

Значит поковырялся я чуток и сбацал вот такой постпроцессор для арткам:
LinuxCNC_mm_ATC.rar
(624 байт) 269 скачиваний
Может кто подскажет что в нем изменить, добавить, оптимизировать для резьбы рельефа? (Станок фрезерно гравировальный 3 оси)

Значит с какими неприятностями столкнулся:
Замеряем фрезу, находим 0 заготовки, запускаем программу:
333.rar
(195 байт) 444 скачивания
Почему-то появляется сообщение дескать ось Z превышает лимиты (хотя запаса там огого..) ну да ладно жмем продолжить не смотря на это..
Каретка прет в позицию смены инструмента, но он у нас уже установлен и измерен! Не красиво получается - лишняя операция
"меняем" фрезу, жмем ОК - порталл прет на датчик замера длины инструмента... Опять лишнее телодвижение.
Далее на безопасной высоте порталл прет к месту работы..тра ля ля... настало время сменить инструмент...
Дальше все штатно но не дай бог случиться дребезгу контакта датчика, как возникает катастрофа ввиде сообщения:
"G38.2 move finished withaut making contact", после чего не понятно как действовать. Да и в случае этой ошибки все подвисает довольно таки на длительное время.