да, по разному можно, просто делал именно минмаксом...Nick писал(а):можно его при нажатии кнопки сохранять...
Программная корректировка пропуска шагов
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Программная корректировка пропуска шагов
Re: Программная корректировка пропуска шагов
Посмотрите пожалуйста, вот написал процедуру для вставки в G-код. В некоторых строчках сомневаюсь, можно ли вообще так писать, что касается - "Возвращаемся в прежнее положение". И можно ли так писать переменные. Заранее извиняюсь за безграмотность.
Ноль по Z - верхняя поверхность заготовки.
Выключить шпиндель
M5
Сохранение текущих координат
#<CurX>=#<_x>
#<CurY>=#<_y>
#<CurZ>=#<_z>
Отключить смещение начала системы координат станка
G53 G0 X0 Y0 Z0
Выносим ось Z вверх, 5мм над поверхностью заготовки
G0 Z5
Перемещаемся в точку 10, 10 около датчика
G0 X10 Y10
Делаем пробу по X
G38.2 X
Перемещаемся в точку 10, 10 около датчика
G0 X10 Y10
Делаем пробу по Y
G38.2 Y
Перемещаемся в точку 10, 10 около датчика
G0 X10 Y10
Делаем пробу по Z
G38.2 Z
Выставляем Z, 5мм над поверхностью заготовки
G0 Z5
Учитываем толщину пластинки по Z, 2мм
#5063=#5063-2
Делаем временные отступы
G92 X#5061 Y#5062 Z#5063
Возвращаемся в прежнее положение
G0 X#<CurX> Y#<CurY> Z#<CurZ>
Включаем шпиндель
М3
Ноль по Z - верхняя поверхность заготовки.
Выключить шпиндель
M5
Сохранение текущих координат
#<CurX>=#<_x>
#<CurY>=#<_y>
#<CurZ>=#<_z>
Отключить смещение начала системы координат станка
G53 G0 X0 Y0 Z0
Выносим ось Z вверх, 5мм над поверхностью заготовки
G0 Z5
Перемещаемся в точку 10, 10 около датчика
G0 X10 Y10
Делаем пробу по X
G38.2 X
Перемещаемся в точку 10, 10 около датчика
G0 X10 Y10
Делаем пробу по Y
G38.2 Y
Перемещаемся в точку 10, 10 около датчика
G0 X10 Y10
Делаем пробу по Z
G38.2 Z
Выставляем Z, 5мм над поверхностью заготовки
G0 Z5
Учитываем толщину пластинки по Z, 2мм
#5063=#5063-2
Делаем временные отступы
G92 X#5061 Y#5062 Z#5063
Возвращаемся в прежнее положение
G0 X#<CurX> Y#<CurY> Z#<CurZ>
Включаем шпиндель
М3
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Программная корректировка пропуска шагов
G53 модификатор, который заставляет считать координаты станочными. Т.е. G53 G0 X0 Y0 Z0 сделает обычный G0, только все координаты будут станочные без всех отступов. Т.е. станок по этой команде поедет в чет знает куда...Urx писал(а):Отключить смещение начала системы координат станка
G53 G0 X0 Y0 Z0
Тебе по идее надо делать так:
Код: Выделить всё
; поднимаем фрезу на уровень 0
G53 G0 Z0
; едем к датчику
G53 G0 X0 Y0
(если не используются дополнительные отступы, то можно g53 не писать)
; включаем относительные координаты
G91
; едем в X +10
G0 X10
; опускаемся на глубину датчика
G0 Z-10
; делаем пробу по X
G38.2 X-20 F100
; Обнуляем X /2 - толщина инструмента или датчика/
G92 X[0-2]
; поднимаемся назад
G0 Z10
(сюда надо добавить остальные оси, да, сначала лучше обнулять Z)
; возвращаем абсолютные координаты
G90
; едем в запомненное положение
G0 X#<CurX> Y<#CurY>
M3
G1 Z#<CurZ>Re: Программная корректировка пропуска шагов
Nick, а второй параметр G38.2 просто указывает в каком направлении делать пробу? Или это конечная координата? Или несколько большая чем конечная, и фреза сама остановится при соприкосновении с датчиком?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Программная корректировка пропуска шагов
Параметры с названием осей указывают направление (их может быть несколько, например G38.2 X100 Y200 Z-10 - проба по диагонали, F= Feed = скорость подачи = скорость пробы). Но тут возможны варианты,
если включен режим G90 (абсолютные координаты) - то указывается конечная точка
если G91 (относительные координаты) - то как бы направление, т.е. относительное смещение конечной точки.
В последнем примере включается режим G91
; включаем относительные координаты
G91
Потом делаются все измерения, т.е. все направления пробы указываются относительно текущей точки.
Потом возвращаемся в режим G90
; возвращаем абсолютные координаты
G90
если включен режим G90 (абсолютные координаты) - то указывается конечная точка
если G91 (относительные координаты) - то как бы направление, т.е. относительное смещение конечной точки.
В последнем примере включается режим G91
; включаем относительные координаты
G91
Потом делаются все измерения, т.е. все направления пробы указываются относительно текущей точки.
Потом возвращаемся в режим G90
; возвращаем абсолютные координаты
G90
Re: Программная корректировка пропуска шагов
Спасибо.
У меня вот такой датчик, высота 15, длина и ширина по 40: Поэтому немного откорректировал код:
У меня вот такой датчик, высота 15, длина и ширина по 40: Поэтому немного откорректировал код:
Код: Выделить всё
; Выключить шпиндель
M5
; Сохранение текущих координат
#<CurX>=#<_x>
#<CurY>=#<_y>
#<CurZ>=#<_z>
; поднимаем фрезу на уровень 5
G53 G0 Z5
; едем к датчику
G53 G0 X10 Y10
; включаем относительные координаты
G91
; делаем пробу по Z
G38.2 Z-20 F10
; Обнуляем Z /2 - толщина датчика/
G92 Z[0-2]
; поднимаемся назад
G0 Z5
; делаем пробу по X
G38.2 X-20 F10
; Обнуляем X
G92 X[0]
; поднимаемся назад
G0 X10
; делаем пробу по Y
G38.2 Y-20 F10
; Обнуляем Y
G92 X[0]
; поднимаемся назад
G0 Y10
; возвращаем абсолютные координаты
G90
; едем в запомненное положение
G0 X#<CurX> Y<#CurY>
M3
G1 Z#<CurZ>- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Программная корректировка пропуска шагов
Молодцом! 
Можно еще попробовать уточнять пробу - сначала на более большом F100, а потом после касания обратно на F1.
; Обнуляем Y
G92 X[0]
Тут Y поставь.
ЗЫ Фотографии вешай прямо на форум!!! На надо радикалов! Под формой ответа есть кнопочка добавить вложения!\
Да, тебе бы еще учесть толщину фрезы при замере XY...
Можно еще попробовать уточнять пробу - сначала на более большом F100, а потом после касания обратно на F1.
; Обнуляем Y
G92 X[0]
Тут Y поставь.
ЗЫ Фотографии вешай прямо на форум!!! На надо радикалов! Под формой ответа есть кнопочка добавить вложения!\
Да, тебе бы еще учесть толщину фрезы при замере XY...
Re: Программная корректировка пропуска шагов
Спасибо за найденные ошибки. С фото - учту. Насчет толщины фрезы по X Y - необязательно, просто этот же датчик будет использоваться как хоме, потом его штеккер переткнуть из хоме в пробе. Работать буду единственной фрезой.
Re: Программная корректировка пропуска шагов
Nick. Хочу усовершенствовать код. Есть ли возможность выводить на экран эти смещения в реальном времени? Для того, чтобы определить причину пропуска.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Программная корректировка пропуска шагов
В смысле хочешь увидеть разницу?Urx писал(а):Хочу усовершенствовать код. Есть ли возможность выводить на экран эти смещения в реальном времени?
В Gкоде:
Код: Выделить всё
(DEBUG, Xcomp = #<_x>, Ycomp = #<_y>, Zcomp = #<_z>)
В принципе можешь сначала сделать все пробы, а потом:
Код: Выделить всё
(DEBUG, Xcomp = #<_x>, Ycomp = #<_y>, Zcomp = #<_z>)
G92 X0 Y0 Z-2
Re: Программная корректировка пропуска шагов
Тестировал на станке этот код. Прога ругнулась вначале на #<_x> #<_y> #<_z>, типа неизвестные переменные. Заменил их на #5061, #5062, #5063. УП запустилась. Впереди кода написал G0 X50 Y50 Z5, чтобы потом перейти в эту точку, но инструмент ушел за датчик, слегка его изогнув. Я думал что эти числовые переменные есть текущие координаты x y z.
Сейчас порыскал в сети, нашел следующее:
#5001 – #500n Значение командной координаты, с учетом корректора инструмента в рабочей КС
#5021-#502n Значения машинных координат
#5041-#504n В рабочей КС - значение программных координат, без учета корректора инструмента
#5061-#506n Значение координат контакта с измерительным щупом в рабочей КС без учета корректора инструмента
Я так понял, что мне надо использовать либо 5021 либо 5041, но какую именно?
Сейчас порыскал в сети, нашел следующее:
#5001 – #500n Значение командной координаты, с учетом корректора инструмента в рабочей КС
#5021-#502n Значения машинных координат
#5041-#504n В рабочей КС - значение программных координат, без учета корректора инструмента
#5061-#506n Значение координат контакта с измерительным щупом в рабочей КС без учета корректора инструмента
Я так понял, что мне надо использовать либо 5021 либо 5041, но какую именно?
Re: Программная корректировка пропуска шагов
Пробовал подставлять и 502... и 504... та же ситуация - едет в ноль X Y.
(ubuntu 10.04, axes 2.5.0)
Подстановка в DEBUG #<CurX>, #<CurY>, #<CurZ>, выводит нули.
Вознможно у меня старая версия 2.5.0. Как скачать обновление до 2.5.3 никак не пойму на сайте:
http://www.linuxcnc.org/index.php/download/21/
(ubuntu 10.04, axes 2.5.0)
Подстановка в DEBUG #<CurX>, #<CurY>, #<CurZ>, выводит нули.
Вознможно у меня старая версия 2.5.0. Как скачать обновление до 2.5.3 никак не пойму на сайте:
http://www.linuxcnc.org/index.php/download/21/
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Программная корректировка пропуска шагов
между 2.5.0 и 2.5.3 разница не большая.если хочешь обновляться - то до 2.6
я так понял - проблема в командах типа (DEBUG, Xcomp = #<_x>, Ycomp = #<_y>, Zcomp = #<_z>) - не отображает значения параметров???
я так понял - проблема в командах типа (DEBUG, Xcomp = #<_x>, Ycomp = #<_y>, Zcomp = #<_z>) - не отображает значения параметров???
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Программная корректировка пропуска шагов
попробуй выполить этот код - по идее в axis должны отображаться патаметры примерно так:
Re: Программная корректировка пропуска шагов
Проблема не в DEBUG, а в том что _x, _y, _z моя программа не понимает, я пытался перейти на численнные значения переменных, но не знаю на какие, какие не пробовал, всё не то.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Программная корректировка пропуска шагов
моя программа - это емс?Urx писал(а):Проблема не в DEBUG, а в том что _x, _y, _z моя программа не понимает
_x, _y, _z , _name - так обозначаются глобальные параметры...
они "работают" для всех файлов, расположенных в одной директории ,которая указанна в
файле .ini , PROGRAM_PREFIX = ...(у меня например это папка PROGRAM_PREFIX = /home/nkp/linuxcnc/nc_files)
и в 2.4 и в 2.5 и в 2.6 это работает...
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Программная корректировка пропуска шагов
описание системных параметров...Urx писал(а):перейти на численнные значения переменных
Re: Программная корректировка пропуска шагов
INI нашел, он в папке с конфигурацией лежит. Там нашел строку "PROGRAM_PREFIX =/home/cnc/linuxcnc/nc_files"nkp писал(а):моя программа - это емс?Urx писал(а):Проблема не в DEBUG, а в том что _x, _y, _z моя программа не понимает
_x, _y, _z , _name - так обозначаются глобальные параметры...
они "работают" для всех файлов, расположенных в одной директории ,которая указанна в
файле .ini , PROGRAM_PREFIX = ...(у меня например это папка PROGRAM_PREFIX = /home/nkp/linuxcnc/nc_files)
и в 2.4 и в 2.5 и в 2.6 это работает...
Файл в nc_files кинул. Обозвал cod.cnc
При открытии файла прога пишет:
"Ошибка G-кода на cod.cnc
Около строки 5 в /home/cnc/linuxcnc/nc_files/cod.cnc
Named parameter #<_x> not defined"
Последний раз редактировалось Urx 18 авг 2013, 09:04, всего редактировалось 1 раз.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Программная корректировка пропуска шагов
конфигурационные файлы станка (ini, hal и др.) находятся в /home/ЮЗЕР/linuxcnc/НАЗВАНИЕ_КОНФИГУРАЦИИ(СТАНКА)Urx писал(а):А где сам INI находится?
ini файл содержит настройки станка...
найти строку PROGRAM_PREFIX = - путь ,который в этой строке указан служит для размещения программ(ж-кодов)
если ложить ж-коды только в эту папку - то глобальные параметры(типа_x) будут работать для всех файлов программ...
Re: Программная корректировка пропуска шагов
Пока писал, не заметил последнее сообщение, своё отредактировал выше.
