[WIKI] Ручная смена инструмента с автоизмерением длины.
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Предлагаю следующий алгоритм:
создаем пустой файлик (к примеру tool_sensor_location.xyz)
В окошке ручной смены инструмента создаем пунктик "датчик зафиксирован"
Если файлик пуст, галочка снимается автоматом (можно эту функцию и не делать)
Механизм работы со стационарным датчиком:
при первой инициализации датчика, галочка в пунктике "датчик зафиксирован" снята т.к. файлик пуст, устанавливаем инструмент в ручном режиме в позицию расположения датчика и жмем кнопочку Probe tool setter. Полученные координаты сохраняются в файлик и автоматически устанавливается галочка в вышеописанном пунктике. Далее координаты берутся из этого файлика пока галочка не будет снята вручную.
Механизм работы с мобильным датчиком:
все как в первом пункте, только когда меняем расположение датчика, снимаем галочку и пошагово как в первом пункте. Только файлик уже не бывает пуст - данные в нем переписываются после нажатия Probe tool setter и устанавливается галочка.
В случае со стационарным датчиком, координаты вписать в файлик можно заранее, как мы сейчас и делаем, только в .ini файле. После чего пользоваться как и сейчас. Можно даже ключик в файлик поместить, который будет блокировать снятие галочки, если датчик стационарный (на всякий случай)
создаем пустой файлик (к примеру tool_sensor_location.xyz)
В окошке ручной смены инструмента создаем пунктик "датчик зафиксирован"
Если файлик пуст, галочка снимается автоматом (можно эту функцию и не делать)
Механизм работы со стационарным датчиком:
при первой инициализации датчика, галочка в пунктике "датчик зафиксирован" снята т.к. файлик пуст, устанавливаем инструмент в ручном режиме в позицию расположения датчика и жмем кнопочку Probe tool setter. Полученные координаты сохраняются в файлик и автоматически устанавливается галочка в вышеописанном пунктике. Далее координаты берутся из этого файлика пока галочка не будет снята вручную.
Механизм работы с мобильным датчиком:
все как в первом пункте, только когда меняем расположение датчика, снимаем галочку и пошагово как в первом пункте. Только файлик уже не бывает пуст - данные в нем переписываются после нажатия Probe tool setter и устанавливается галочка.
В случае со стационарным датчиком, координаты вписать в файлик можно заранее, как мы сейчас и делаем, только в .ini файле. После чего пользоваться как и сейчас. Можно даже ключик в файлик поместить, который будет блокировать снятие галочки, если датчик стационарный (на всякий случай)
Последний раз редактировалось Alexsh 29 дек 2015, 15:00, всего редактировалось 4 раза.
- verser
- Мастер
- Сообщения: 1903
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Мысли неплохие. Добро пожаловать на форумAlexsh писал(а):Предлагаю следующий алгоритм:...
- Predator
- Мастер
- Сообщения: 9583
- Зарегистрирован: 18 июл 2013, 18:26
- Репутация: 2531
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Да, только после снятия галочки, файлик заодно нужно опустошитьAlexsh писал(а):Далее координаты берутся из этого файлика пока галочка не будет снята вручную
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Не обязательно, его можно переписать новыми данными нажатием кнопочки Probe tool setter. А автоматическое снятие и установка галочки может происходить после обращения к файлу, а именно чтения данных, которое, в свою очередь, должно происходить после их обновления, перед замером инструмента и при запуске LinuxCNC.Predator писал(а):Да, только после снятия галочки, файлик заодно нужно опустошитьAlexsh писал(а):Далее координаты берутся из этого файлика пока галочка не будет снята вручную
Я подправил алгоритм выше, что бы было понятнее.
К сожалению в питоне я полнй ноль, как впрочем и G кодах пока еще.verser писал(а):Мысли неплохие. Добро пожаловать на форум
А за приглашение спасибо!
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
привет.
помогите найти ошибку при использовании данного модуля.
делаю серию измерений по высоте.
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 мм.
Куда рыть? ЧЯДНТ?
помогите найти ошибку при использовании данного модуля.
делаю серию измерений по высоте.
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] Ручная смена инструмента с автоизмерением длины.
продолжение.
обнуляю 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. галочку автоноль ставил, снимал - результат один.
обнуляю 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. галочку автоноль ставил, снимал - результат один.
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
А где обнуляешь?
Попробуй задать нулевой отступ в панели ручного управления
Попробуй задать нулевой отступ в панели ручного управления
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
ну, вручную. ставлю 0 или 4.5 ( высота подъема ).
тут такая история. находишься в экране аксиса - одно число.
переключил окна на разные программы, вернулся в экран, нажал на замер - другая.
тут такая история. находишься в экране аксиса - одно число.
переключил окна на разные программы, вернулся в экран, нажал на замер - другая.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Не выскочит, если: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.
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Мужики подскажите где в программе заложить толщину датчика высоты заготовки (толщина текстолитовой пластинки) что бы автоматом учитывалась?
- verser
- Мастер
- Сообщения: 1903
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
В файле python/auto_tool_measurement.pyAlexsh писал(а):Мужики подскажите где в программе заложить толщину датчика высоты заготовки (толщина текстолитовой пластинки) что бы автоматом учитывалась?
Код: Выделить всё
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()
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Поигрался немного этими параметрами.. Не соображу как правильно задать...
К примеру высота датчика-измерителя инструмента 14мм, а толщина пластинки, которая на заготовку кладется - 1 мм.
К примеру высота датчика-измерителя инструмента 14мм, а толщина пластинки, которая на заготовку кладется - 1 мм.
- verser
- Мастер
- Сообщения: 1903
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Пластинка кладется на заготовку - это понятно, а вот на "датчик-измеритель инструмента" она кладётся или нет?Alexsh писал(а):Поигрался немного этими параметрами.. Не соображу как правильно задать...
К примеру высота датчика-измерителя инструмента 14мм, а толщина пластинки, которая на заготовку кладется - 1 мм.
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
нет не кладется... датчик сам по себе- измеритель сам по себе..
- verser
- Мастер
- Сообщения: 1903
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Тогда надо, чтобы в поле Block Height записалось 14-1 = 13 мм. А, чтоб руками всякий раз не прописывать, внести корректировку в файл python/auto_tool_measurement.py(выделил корректировку красным)Alexsh писал(а): К примеру высота датчика-измерителя инструмента 14мм, а толщина пластинки, которая на заготовку кладется - 1 мм.
Код: Выделить всё
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()
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Имеем:
1. Высота стационарного измерителя инструмента от уровня стола - 14мм
2. Датчик (пластинка) замера высоты заготовки (кладется на заготовку), толщиной - 1мм
Нужно задать ноль на уровне поверхности заготовки с учетом толщины пластинки 1мм.
Сначала касаемся фрезой измерителя длины инструмента . После замера длины подводим к заготовке и касаемся инструментом пластинки. В настоящее время поверхность пластинки устанавливаем как 0мм, но нужно получить значение +1мм.
Честно говоря вообще не понятно почему Block Height (Высота датчика), мы же замеряем условную длину инструмента? И если я правильно понял алгоритм работы, то на какой высоте изначально расположен этот датчик не имеет значения, а полученное при этом измерении значение, после смены инструмента, изменится и это изменение будет использоваться для компенсации?
1. Высота стационарного измерителя инструмента от уровня стола - 14мм
2. Датчик (пластинка) замера высоты заготовки (кладется на заготовку), толщиной - 1мм
Нужно задать ноль на уровне поверхности заготовки с учетом толщины пластинки 1мм.
Сначала касаемся фрезой измерителя длины инструмента . После замера длины подводим к заготовке и касаемся инструментом пластинки. В настоящее время поверхность пластинки устанавливаем как 0мм, но нужно получить значение +1мм.
Для чего из 14мм вычитать 1мм?verser писал(а):Тогда надо, чтобы в поле Block Height записалось 14-1 = 13 мм.
Честно говоря вообще не понятно почему Block Height (Высота датчика), мы же замеряем условную длину инструмента? И если я правильно понял алгоритм работы, то на какой высоте изначально расположен этот датчик не имеет значения, а полученное при этом измерении значение, после смены инструмента, изменится и это изменение будет использоваться для компенсации?
- verser
- Мастер
- Сообщения: 1903
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
До этого места все рассуждения верны.Alexsh писал(а):Имеем:
1. Высота стационарного измерителя инструмента от уровня стола - 14мм
2. Датчик (пластинка) замера высоты заготовки (кладется на заготовку), толщиной - 1мм
Нужно задать ноль на уровне поверхности заготовки с учетом толщины пластинки 1мм.
Сначала касаемся фрезой измерителя длины инструмента . После замера длины подводим к заготовке и касаемся инструментом пластинки. В настоящее время поверхность пластинки устанавливаем как 0мм, но нужно получить значение +1мм.
verser писал(а):Тогда надо, чтобы в поле Block Height записалось 14-1 = 13 мм.
Не из 14мм. Мои извинения. Правильно так "Тогда надо, чтобы в поле Block Height записался результат измерения поверхности заготовки минус 1 мм".Alexsh писал(а):Для чего из 14мм вычитать 1мм?
Каждая следующая смена инструмента будет после обмера на датчике вот так менять запись в таблице для текущего инструмента
Код: Выделить всё
G10 L1 P#<tool> Z[#<touch_result> - #<_hal[auto_tool_measurement.probeheight]> + #<_hal[auto_tool_measurement.blockheight]>]
G43
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
То есть мы прописываем толщину пластины 1мм таким вот образом:
self.spbtn_block_height.set_value( float(a[2])-1)
и это будет компенсация на толщину заготовки.
На наши 14мм забиваем т.к. высота того датчика не меняется, а меняется только длина фрезы и ничего исправлять по этому поводу не нужно?
И попутно еще вопросик:
Благодарю!
self.spbtn_block_height.set_value( float(a[2])-1)
и это будет компенсация на толщину заготовки.
На наши 14мм забиваем т.к. высота того датчика не меняется, а меняется только длина фрезы и ничего исправлять по этому поводу не нужно?
И попутно еще вопросик:
Подскажите строчки, которые нужно вставить в постпроцессор арткам, что бы эти условия выполнялись.verser писал(а):Смену инструмента в своей разрабатываемой g-code программе прописывать так
Код: Выделить всё • Развернуть
M6 Tx
G43 Hx
Важно! В таблице инструментов надо чтобы все отступы по X и по Y для всех используемых в Auto Tool Measurement инструментов были = 0.
Важно! Рекомендуется в начале программы вставить смену инструмента, даже если он тот же.
Благодарю!
- verser
- Мастер
- Сообщения: 1903
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Да, такое исправление позволит при замере поверхности заготовки автоматически игнорировать подложенную 1мм текстолитовую пластинку.Alexsh писал(а):То есть мы прописываем толщину пластины 1мм таким вот образом:
self.spbtn_block_height.set_value( float(a[2])-1)
и это будет компенсация на толщину заготовки.
Так точно, больше никакие исправления не нужны.Alexsh писал(а):На наши 14мм забиваем т.к. высота того датчика не меняется, а меняется только длина фрезы и ничего исправлять по этому поводу не нужно?
Прошу извинить, я с Арткамом не работаю. Парни, подскажите, кто знает!Alexsh писал(а):И попутно еще вопросик:Подскажите строчки, которые нужно вставить в постпроцессор арткам, что бы эти условия выполнялись.verser писал(а):Смену инструмента в своей разрабатываемой g-code программе прописывать так
Код: Выделить всё • Развернуть
M6 Tx
G43 Hx
Важно! В таблице инструментов надо чтобы все отступы по X и по Y для всех используемых в Auto Tool Measurement инструментов были = 0.
Важно! Рекомендуется в начале программы вставить смену инструмента, даже если он тот же.
Благодарю!
- Alexsh
- Опытный
- Сообщения: 100
- Зарегистрирован: 25 дек 2015, 22:28
- Репутация: 15
- Настоящее имя: Алексей
- Контактная информация:
Re: [WIKI] Ручная смена инструмента с автоизмерением длины.
Спасибо!
Значит поковырялся я чуток и сбацал вот такой постпроцессор для арткам: Может кто подскажет что в нем изменить, добавить, оптимизировать для резьбы рельефа? (Станок фрезерно гравировальный 3 оси)
Значит с какими неприятностями столкнулся:
Замеряем фрезу, находим 0 заготовки, запускаем программу: Почему-то появляется сообщение дескать ось Z превышает лимиты (хотя запаса там огого..) ну да ладно жмем продолжить не смотря на это..
Каретка прет в позицию смены инструмента, но он у нас уже установлен и измерен! Не красиво получается - лишняя операция
"меняем" фрезу, жмем ОК - порталл прет на датчик замера длины инструмента... Опять лишнее телодвижение.
Далее на безопасной высоте порталл прет к месту работы..тра ля ля... настало время сменить инструмент...
Дальше все штатно но не дай бог случиться дребезгу контакта датчика, как возникает катастрофа ввиде сообщения:
"G38.2 move finished withaut making contact", после чего не понятно как действовать. Да и в случае этой ошибки все подвисает довольно таки на длительное время.
Значит поковырялся я чуток и сбацал вот такой постпроцессор для арткам: Может кто подскажет что в нем изменить, добавить, оптимизировать для резьбы рельефа? (Станок фрезерно гравировальный 3 оси)
Значит с какими неприятностями столкнулся:
Замеряем фрезу, находим 0 заготовки, запускаем программу: Почему-то появляется сообщение дескать ось Z превышает лимиты (хотя запаса там огого..) ну да ладно жмем продолжить не смотря на это..
Каретка прет в позицию смены инструмента, но он у нас уже установлен и измерен! Не красиво получается - лишняя операция
"меняем" фрезу, жмем ОК - порталл прет на датчик замера длины инструмента... Опять лишнее телодвижение.
Далее на безопасной высоте порталл прет к месту работы..тра ля ля... настало время сменить инструмент...
Дальше все штатно но не дай бог случиться дребезгу контакта датчика, как возникает катастрофа ввиде сообщения:
"G38.2 move finished withaut making contact", после чего не понятно как действовать. Да и в случае этой ошибки все подвисает довольно таки на длительное время.
