Мои вспомогательные утилиты.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Re: Мои вспомогательные утилиты.

Сообщение ashe » 16 май 2016, 13:50

я пока не вникал как работают отдельные коды, но я так понимаю он касается, потом отъезжает и опаять касается, после отъезжает и включает малую скорость. Заметил, что если подложить массивную железку, то гораздо меньше ложных срабатываний. Получается что заготвка прижимается??
ashe
Новичок
 
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий

Re: Мои вспомогательные утилиты.

Сообщение ashe » 16 май 2016, 13:53

torvn77 писал(а):Вообще если есть место в котором происходит нечто не понятное, то его имеет смысл обложить отладочным кодом.
Код: Выделить всёРазвернуть
(DEBUG, Z=#<_z> , motion.probe-input = #<_hal[motion.probe-input]>)

Еси б я еще понимал , как это делать ))))
ashe
Новичок
 
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий

Re: Мои вспомогательные утилиты.

Сообщение ashe » 16 май 2016, 13:55

Попробую действительно поднять напругу на датчик и буфер с триггером сделать, чтоб спад/нарастание сигнала поднять.
ashe
Новичок
 
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий

Re: Мои вспомогательные утилиты.

Сообщение ashe » 16 май 2016, 14:21

А возможно, что у меня стоит винт с шагом 5 мм, 16/40 шкивы, 200 шагов на оборот мотор и делитель шага включен на 2 что = 0,005мм шаг, и этого не достаточно?
ashe
Новичок
 
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий

Re: Мои вспомогательные утилиты.

Сообщение ashe » 16 май 2016, 20:37

В общем я изменил микро шаг на 16. перестала вылетать ошибка определения "0" , но зато появилась другая какашка. Почему-то выключается питание станка(в программе F2, хотя вроде никак эта кнопка не задействована со входами). Причем только на большой скорости подачи по Z(при подъёме), также в ручном режиме. Бум разбираться.....
пишет joint 2 following error
ashe
Новичок
 
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий

Re: Мои вспомогательные утилиты.

Сообщение ashe » 16 май 2016, 21:21

Запустил я Latency test, не понимаю хоть убей какие значения вводить. Картинка 1- без нагрузки. Картинка 2- с запущенным видео из ютьюба + дергаю браузер по экрану. Ввожу Max Jitter 20000 - перестаёт вырубать, Ввожу Max Jitter 200000 - вырубает. Получается железо слабое? Или я чего-то не понимаю?
Вложения
Мои вспомогательные утилиты. IMG_20160516_210958.jpg
1
Мои вспомогательные утилиты. IMG_20160516_211107.jpg
2
ashe
Новичок
 
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий

Re: Мои вспомогательные утилиты.

Сообщение torvn77 » 16 май 2016, 23:53

ashe писал(а):Заметил, что если подложить массивную железку, то гораздо меньше ложных срабатываний. Получается что заготвка прижимается??

ashe писал(а):оксида нет

Если брусок меди полежит примерно час после полировки, то он из светлого отполированного потемнеет.
Вот это вот потемнение и есть не проводящая электричество оксидная плёнка которую во время пробы надо продавливать.
ashe писал(а):я пока не вникал как работают отдельные коды, но я так понимаю он касается, потом отъезжает и опаять касается, после отъезжает и включает малую скорость.

Поняли внешне правильно(не всё), суть несколько иная.
Опускается на "большой" скорости до замыкания датчика конца инструмента.
На низкой скорости отъесжает обратно до размыкания датчика конца инструмента.
На низкой скрости снова едет вниз до замыкания датчика конца инструмента и копирует значение замеренной координаты в переменную #<probe_bottom>
На низкой скорости снова едет на верх до размыкания датчика конца инструмента и копирует значение замеренной координаты в переменную #<probe_top>( :attention: Наблюдаемый вами сбой произощёл здесь)
Едет на самый верх G0 Z[#<_ini[AXIS_2]MAX_LIMIT>]
Смещает относительную систему координат на среднее значение переменных #<probe_bottom> и #<probe_top>
ashe писал(а):и буфер с триггером сделать

Тестирование происходит не только на появление сигнала, но и на его пропадание, по этому просто триггер не годиться,
надо чтобы схема меняла свою работу в зависимости от желаемого результата.
ashe писал(а):Почему-то выключается питание станка(в программе F2, хотя вроде никак эта кнопка не задействована со входами). Причем только на большой скорости подачи по Z(при подъёме), также в ручном режиме. Бум разбираться.....

Несколькими днями раньше я объяснял это здесь: Re: Помогите настроить CNCLinux для работы с серводвигателям #22
ashe писал(а):Запустил я Latency test,

Запуск этой утилиты есть самая большая ошибка, которую может сделать начинающий пользователь.
Эта вредная утилита начинающих путает, а когда они понимают что и как работает становится просто не нужна.
Закройте её и больше никогда не запускайте, ну разве что если предварительную оценку периодов надо сделать будет( немного экономит время на первоначальном подборе параметров).
подробнее можно прочитать здесь: Re: Помогите настроить CNCLinux для работы с серводвигателям #21
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2222
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Re: Мои вспомогательные утилиты.

Сообщение ashe » 17 май 2016, 13:02

Триггеры бывают разные и я имел ввиду как раз то, о чем вы говорите. А ошибка при касании пропала после переключения делителя на 16, значит всё таки мало шага 0,05... Появились правда другие ошибки, спасибо вам, буду разбираться дальше.
ashe
Новичок
 
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий

Re: Мои вспомогательные утилиты.

Сообщение torvn77 » 17 май 2016, 20:36

ashe писал(а):Еси б я еще понимал , как это делать ))))

Берёшь строку
Код: Выделить всёРазвернуть
(DEBUG, Z=#<_z> , motion.probe-input = #<_hal[motion.probe-input]>)

и вставляешь её до и после кодов G38.x, которые по твоему мнению вызывают сбой.
Код: Выделить всёРазвернуть
(DEBUG,Точный поиск на маленькой скорости)
F[#<_ini[MATERIAL_HEIGHT_PROBE]ACCURATE_FEED_SEARCH>]
(DEBUG, Z=#<_z> , motion.probe-input = #<_hal[motion.probe-input]>)
G38.2 Z[#<_ini[AXIS_2]MIN_LIMIT>]
(DEBUG, Z=#<_z> , motion.probe-input = #<_hal[motion.probe-input]>)
#<probe_bottom> = #5063
F[#<_ini[MATERIAL_HEIGHT_PROBE]ACCURATE_FEED_LATCH>]
(DEBUG, Z=#<_z> , motion.probe-input = #<_hal[motion.probe-input]>)
G38.4 Z[#<_ini[AXIS_2]MAX_LIMIT>]
(DEBUG, Z=#<_z> , motion.probe-input = #<_hal[motion.probe-input]>)
#<probe_top> = #5063
(DEBUG,<a.probe_top> = #<probe_top> )
(DEBUG,<a.probe_bottom> = #<probe_bottom>)

#<probe_result> = [[#<probe_bottom>+#<probe_top>]/2]
(DEBUG,<a.probe_result> = #<probe_result>)

В результате в сообщения будет выводиться текущее относительное значение координаты z и состояние пина motion.probe-input(то есть замкнут датчик или нет).
( Вызываются #<_z> и #<_hal[motion.probe-input]>, а вот "Z=" и "motion.probe-input =" это просто набор букв )
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2222
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Мои вспомогательные утилиты: Установка нуля по центру окружн

Сообщение torvn77 » 24 май 2017, 18:07

Назначение утилиты восстанавливать ноль программы по ХУ по заранее вырезанной в её нуле окружности.
Ну или если вырезали её не в нуле то после установки нуля восстанавливаете ноль забив в "Touch Off" координаты её центра.
1) Перед работой в строке номер 4 надо указать диаметр окружности. К примеру #<diametr>=100
2) Сообщения (MSG,Left),(MSG,Right),(MSG,Bottom),(MSG,Top) выводятся так как мне было неохота регулировать центроискатель и я его поворачивал так, чтобы он всегда измерял одной и той же стороной.
Код: Выделить всёРазвернуть
(O<search_center> sub)

#<diametr>=100
#<x_rel_offset>=0
#<y_rel_offset>=0
#<z_rel_offset>=-10

G54 G21 G61 M05

G91
F360

G38.2 X[0-#<diametr>]
#<result_left> = #5061
G38.4 X+1

G38.2 X[0+#<diametr>]
#<result_right> = #5061
G38.4 X-1

#<first_center_x> = [[#<result_left>+#<result_right>]/2]
G90
G01 X#<first_center_x>


G91
G38.2 Y[0-#<diametr>]
#<result_bottom> = #5062
G38.4 Y+1

G38.2 Y[0+#<diametr>]
#<result_top> = #5062
G38.4 Y-1

#<first_center_y> = [[#<result_bottom>+#<result_top>]/2]
G90
G01 Y#<first_center_y>



G91
F120

(MSG,Left)
M1
G38.2 X[0-#<diametr>]
#<result_left> = #5061
G38.4 X+1

(MSG,Right)
M1
G38.2 X[0+#<diametr>]
#<result_right> = #5061
G38.4 X-1

G90

#<first_center_x> = [[#<result_left>+#<result_right>]/2]
G01 X#<first_center_x>

G91

(MSG,Bottom)
M1
G38.2 Y[0-#<diametr>]
#<result_bottom> = #5062
G38.4 Y+1

(MSG,Top)
M1
G38.2 Y[0+#<diametr>]
#<result_top> = #5062
G38.4 Y-1

G90

#<first_center_y> = [[#<result_bottom>+#<result_top>]/2]
G01 X#<first_center_x> Y#<first_center_y>

G10 L20 P0 X#<x_rel_offset> Y#<y_rel_offset> Z#<z_rel_offset>
(O<search_center> endsub)
M02
Последний раз редактировалось torvn77 22 июн 2017, 01:59, всего редактировалось 2 раз(а).
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2222
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Re: Мои вспомогательные утилиты.

Сообщение a321 » 24 май 2017, 19:11

Ценно, спасибо. А нет ли типа "обратной задачи"- у Вас по окружности "изнутри", а не менее распространена задача "снаружи".
В третьей с конца строке (это не для Вас, это для меня и мало ли еще кого) вместо нажатия Тоуч офф можно сразу завести соотв. параметры смещения (координаты заранее известного расположения отверстия).
И при копировании кода - коллеги, помните, там в конце z стоит как -10.
a321
Кандидат
 
Сообщения: 86
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 15

Re: Мои вспомогательные утилиты.

Сообщение torvn77 » 22 июн 2017, 02:03

a321 писал(а):В третьей с конца строке (это не для Вас, это для меня и мало ли еще кого) вместо нажатия Тоуч офф можно сразу завести соотв. параметры смещения (координаты заранее известного расположения отверстия).


Теперь эти координаты вводятся вместе с предполагаемым диаметром в начале УП в строках
Код: Выделить всёРазвернуть
#<diametr>=100
#<x_rel_offset>=0
#<y_rel_offset>=0
#<z_rel_offset>=-10

a321 писал(а):ошибка в тексте, для #<result_bottom> = #5061 надо указывать 5062 (ось у)

Мда, феерично...
Вот что бывает кода люди не высыпаются :hehehe: :roll:
Спасибо, исправил.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2222
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Re: Мои вспомогательные утилиты.

Сообщение a321 » 23 июн 2017, 23:22

Продолжим, давно собирался.
ИМХО - лично меня беспоскоит и интересует положение фрезы относительно рабочего стола, а не расположенных (нараспев) "там, за горизонтом" концевиков или даже дачиков Хоме (то же касается и замеров жесткости - чтобы коллеги могли сравнивать критикуемые станки я обязательно сдалаю замеры на своем карликовофальшивоментном китайце, с фрезой в крайнем ниженм положении - надо только придумать, как измерить, измерялками я не шибко богат). Т.е. делаемые Версером датчики прекрасны и действительно нужны всем, но при работе с деревом можно обходиться другими способами. Как и уважаемый torvn77, с превеликим удовольствием пользуюсь LinuxCNC. После хомления для решения вопроса о сверке системы координат стола (технологической оснастки, расположенной на столе) использую подпрограмму и гирлянду цацок -
Мои вспомогательные утилиты. DSC_2646.JPG


Цацки - вырезаны из дерева. На "внутренние" и "наружные" диаметры - соотв. центруются (сопрягаются с контрольным отверстием на заготовке, рабочем столе, оснастке) на стандартный штифт (4, 5, 6, 8 мм) или на выступающий диаметр (например круглую головку болта). В качестве датчика используется сама фреза, диаметр с точки зрения математики не важен, как и диаметр подшипника. "Ответная" часть датчика - стандартные подшипники, в данном случае 608 и 6000. Умеренная толщина подшипника позволяет не очень беспокоиться о том, куда повернута фреза, электропроводность вполне стабильна, допуски круглости подшипников на высоте. В дырочку загнан многожильный провод, хвост которого распушил, уложил и придавил подшипником. Ну принцип понятен. В начало своих программ вставляю что-то типа -

(для просмотра содержимого нажмите на ссылку)
(операции)
(0 - координаты стола)
(N - описание других операций)

#<_Nop> = 0
o<koord> if [#<_Nop> eq 0] (установка Home по нужному месту, )
o<home> call [10] [10] [10] ([неважная величина, разбег вправо-влево в поисках, должна быть бульше внутр. диаметра подшипника] [желаемая координата Х] [желаемая У])
o<koord> endif


В директории linuxcnc/nc_files лежит файлик home.ngc -
(для просмотра содержимого нажмите на ссылку)
O<home> sub)

G54 (выбор координатной системы)
G21 (выбор единиц измерения - мм)
G10 L2 P0 R0 x0 y0 (обнулили все смещения)

M05 (остановка шпинделя)
F30 (скорость поиска)

(легенда 1= D; 2=Х; 3=Y)



G91 (перемещения на указанные величины)
G38.2 X[0-#1] (едем до контакта пробника налево)
#<result_left> = #5061
G38.4 X10 (отъезжаем до размыкания)

G38.2 X[0+#1] (едем до контакта пробника направо)
#<result_right> = #5061
G38.4 X-10 (отъезжаем до размыкания)

#<first_center_x> = [[#<result_left>+#<result_right>]/2]
G90 (перемещения в указанные координаты)
G1 X#<first_center_x>

G91
G38.2 Y[0-#1]
#<result_bottom> = #5062
G38.4 Y+10 (отъезжаем до размыкания)

G38.2 Y[0+#1]
#<result_top> = #5062
G38.4 Y-10

#<first_center_y> = [[#<result_bottom>+#<result_top>]/2]
G90
G1 Y#<first_center_y>

G91 (перемещения на указанные величины)
G38.2 X[0-#1] (едем до контакта пробника налево)
#<result_left> = #5061
G38.4 X10 (отъезжаем до размыкания)

G38.2 X[0+#1] (едем до контакта пробника направо)
#<result_right> = #5061
G38.4 X-10 (отъезжаем до размыкания)

#<first_center_x> = [[#<result_left>+#<result_right>]/2]
G90 (перемещения в указанные координаты)
G1 X#<first_center_x>

G10 L20 P0 X[#2] Y[#3]

O<home> endsub


При перемещениях сознательно используется G1 вместо G0, поскольку G0 бывает "быстрым" незачем раскачивать станок. Может, вследствие маленькой скорости, "срываться" - аборт по причине неразмыкания etc - повторный вызов (запуск) решает вопрос. Можно использовать и без подпрограммы - на вкладке LinuxCNC по F5 вызвать подпрограмму
o<home> call [10] (выставит все в ноль - незаданные апарметры передаются в подпрограмму как 0)
o<home> call [10] [100] [10] - соотв. в нужном месте станок будет "считать" как Х100 Y10.

Как пользуюсь -
1. разместил цацку где надо
2. завел в цацку вручную фрезу
3. вызвал подпрограмму (если станок ругается, мол, выходим за пределы Х или У - игнорируем)

Работает без нареканий.
Последний раз редактировалось a321 24 июн 2017, 15:26, всего редактировалось 2 раз(а).
a321
Кандидат
 
Сообщения: 86
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 15

Re: Мои вспомогательные утилиты.

Сообщение torvn77 » 24 июн 2017, 00:47

Я писал эту суброутину с теми же целями что и у вас - ставить относительный ноль :)
вот тут в исходниках linuxCNC есть пример панели GladeVCP, если хотите то можете попробовать сделать опираясь на неё для этой суброутины гуй.
https://github.com/LinuxCNC/linuxcnc/bl ... wordsub.ui
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2222
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Пред.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Сергей_Владимирович, Gas, Google [Bot], Google Feedfetcher, kerra, kubonit, peratron, Piligrym, UAVpilot, Yahoo [Bot], Yandex [bot], максим2, Тенгель

Поделиться

Reputation System ©'