Программная корректировка пропуска шагов

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение nkp »

Nick писал(а):можно его при нажатии кнопки сохранять...
да, по разному можно, просто делал именно минмаксом...
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

Посмотрите пожалуйста, вот написал процедуру для вставки в 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
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Nick »

Urx писал(а):Отключить смещение начала системы координат станка
G53 G0 X0 Y0 Z0
G53 модификатор, который заставляет считать координаты станочными. Т.е. G53 G0 X0 Y0 Z0 сделает обычный G0, только все координаты будут станочные без всех отступов. Т.е. станок по этой команде поедет в чет знает куда...

Тебе по идее надо делать так:

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

; поднимаем фрезу на уровень 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>
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

Nick, а второй параметр G38.2 просто указывает в каком направлении делать пробу? Или это конечная координата? Или несколько большая чем конечная, и фреза сама остановится при соприкосновении с датчиком?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Nick »

Параметры с названием осей указывают направление (их может быть несколько, например G38.2 X100 Y200 Z-10 - проба по диагонали, F= Feed = скорость подачи = скорость пробы). Но тут возможны варианты,
если включен режим G90 (абсолютные координаты) - то указывается конечная точка
если G91 (относительные координаты) - то как бы направление, т.е. относительное смещение конечной точки.
В последнем примере включается режим G91
; включаем относительные координаты
G91

Потом делаются все измерения, т.е. все направления пробы указываются относительно текущей точки.
Потом возвращаемся в режим G90
; возвращаем абсолютные координаты
G90
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

Спасибо.
У меня вот такой датчик, высота 15, длина и ширина по 40:
529369c1479d.jpg (1147 просмотров) <a class='original' href='./download/file.php?id=17690&mode=view' target=_blank>Загрузить оригинал (24.89 КБ)</a>
Поэтому немного откорректировал код:

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

; Выключить шпиндель
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: Программная корректировка пропуска шагов

Сообщение Nick »

Молодцом! :)
Можно еще попробовать уточнять пробу - сначала на более большом F100, а потом после касания обратно на F1.
; Обнуляем Y
G92 X[0]
Тут Y поставь.

ЗЫ Фотографии вешай прямо на форум!!! На надо радикалов! Под формой ответа есть кнопочка добавить вложения!\

Да, тебе бы еще учесть толщину фрезы при замере XY...
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

Спасибо за найденные ошибки. С фото - учту. Насчет толщины фрезы по X Y - необязательно, просто этот же датчик будет использоваться как хоме, потом его штеккер переткнуть из хоме в пробе. Работать буду единственной фрезой.
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

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

Re: Программная корректировка пропуска шагов

Сообщение Nick »

Urx писал(а):Хочу усовершенствовать код. Есть ли возможность выводить на экран эти смещения в реальном времени?
В смысле хочешь увидеть разницу?
В Gкоде:

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

(DEBUG, Xcomp = #<_x>,  Ycomp = #<_y>,  Zcomp = #<_z>)
Точнее это надо делать до того как ты выполнил G92.
В принципе можешь сначала сделать все пробы, а потом:

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

(DEBUG, Xcomp = #<_x>,  Ycomp = #<_y>,  Zcomp = #<_z>)
G92 X0 Y0 Z-2
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

Тестировал на станке этот код. Прога ругнулась вначале на #<_x> #<_y> #<_z>, типа неизвестные переменные. Заменил их на #5061, #5062, #5063. УП запустилась. Впереди кода написал G0 X50 Y50 Z5, чтобы потом перейти в эту точку, но инструмент ушел за датчик, слегка его изогнув. Я думал что эти числовые переменные есть текущие координаты x y z.
Сейчас порыскал в сети, нашел следующее:
#5001 – #500n Значение командной координаты, с учетом корректора инструмента в рабочей КС
#5021-#502n Значения машинных координат
#5041-#504n В рабочей КС - значение программных координат, без учета корректора инструмента
#5061-#506n Значение координат контакта с измерительным щупом в рабочей КС без учета корректора инструмента

Я так понял, что мне надо использовать либо 5021 либо 5041, но какую именно?
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

Пробовал подставлять и 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/
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение nkp »

между 2.5.0 и 2.5.3 разница не большая.если хочешь обновляться - то до 2.6
я так понял - проблема в командах типа (DEBUG, Xcomp = #<_x>, Ycomp = #<_y>, Zcomp = #<_z>) - не отображает значения параметров???
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение nkp »

2_2.ngc
(366 байт) 1000 скачиваний
попробуй выполить этот код - по идее в axis должны отображаться патаметры примерно так:
Выделение(027).jpg (1072 просмотра) <a class='original' href='./download/file.php?id=17710&mode=view' target=_blank>Загрузить оригинал (290.9 КБ)</a>
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

Проблема не в DEBUG, а в том что _x, _y, _z моя программа не понимает, я пытался перейти на численнные значения переменных, но не знаю на какие, какие не пробовал, всё не то.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение 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 это работает...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение nkp »

Urx писал(а):перейти на численнные значения переменных
описание системных параметров...
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

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 это работает...
INI нашел, он в папке с конфигурацией лежит. Там нашел строку "PROGRAM_PREFIX =/home/cnc/linuxcnc/nc_files"
Файл в 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: Программная корректировка пропуска шагов

Сообщение nkp »

Urx писал(а):А где сам INI находится?
конфигурационные файлы станка (ini, hal и др.) находятся в /home/ЮЗЕР/linuxcnc/НАЗВАНИЕ_КОНФИГУРАЦИИ(СТАНКА)
ini файл содержит настройки станка...
найти строку PROGRAM_PREFIX = - путь ,который в этой строке указан служит для размещения программ(ж-кодов)
если ложить ж-коды только в эту папку - то глобальные параметры(типа_x) будут работать для всех файлов программ...
Urx
Кандидат
Сообщения: 56
Зарегистрирован: 27 июл 2013, 23:20
Репутация: 1
Контактная информация:

Re: Программная корректировка пропуска шагов

Сообщение Urx »

Пока писал, не заметил последнее сообщение, своё отредактировал выше.
Ответить

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