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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
ashe
Новичок
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий
Контактная информация:

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

Сообщение ashe »

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

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

Сообщение ashe »

torvn77 писал(а): Вообще если есть место в котором происходит нечто не понятное, то его имеет смысл обложить отладочным кодом.

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

(DEBUG, Z=#<_z> , motion.probe-input = #<_hal[motion.probe-input]>)
Еси б я еще понимал , как это делать ))))
ashe
Новичок
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий
Контактная информация:

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

Сообщение ashe »

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

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

Сообщение ashe »

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

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

Сообщение ashe »

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

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

Сообщение ashe »

Запустил я Latency test, не понимаю хоть убей какие значения вводить. Картинка 1- без нагрузки. Картинка 2- с запущенным видео из ютьюба + дергаю браузер по экрану. Ввожу Max Jitter 20000 - перестаёт вырубать, Ввожу Max Jitter 200000 - вырубает. Получается железо слабое? Или я чего-то не понимаю?
Вложения
1 (5481 просмотр) <a class='original' href='./download/file.php?id=80265&sid=4278726eb0fb838d041ddf38189bc903&mode=view' target=_blank>Загрузить оригинал (681.69 КБ)</a>
1
2 (5481 просмотр) <a class='original' href='./download/file.php?id=80266&sid=4278726eb0fb838d041ddf38189bc903&mode=view' target=_blank>Загрузить оригинал (694.81 КБ)</a>
2
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

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

Сообщение torvn77 »

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
ashe
Новичок
Сообщения: 23
Зарегистрирован: 27 окт 2015, 00:20
Репутация: 1
Настоящее имя: Дмитрий
Контактная информация:

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

Сообщение ashe »

Триггеры бывают разные и я имел ввиду как раз то, о чем вы говорите. А ошибка при касании пропала после переключения делителя на 16, значит всё таки мало шага 0,05... Появились правда другие ошибки, спасибо вам, буду разбираться дальше.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

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

Сообщение torvn77 »

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
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

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

Сообщение torvn77 »

Назначение утилиты восстанавливать ноль программы по ХУ по заранее вырезанной в её нуле окружности.
Ну или если вырезали её не в нуле то после установки нуля восстанавливаете ноль забив в "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 раза.
a321
Мастер
Сообщения: 577
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 66
Контактная информация:

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

Сообщение a321 »

Ценно, спасибо. А нет ли типа "обратной задачи"- у Вас по окружности "изнутри", а не менее распространена задача "снаружи".
В третьей с конца строке (это не для Вас, это для меня и мало ли еще кого) вместо нажатия Тоуч офф можно сразу завести соотв. параметры смещения (координаты заранее известного расположения отверстия).
И при копировании кода - коллеги, помните, там в конце z стоит как -10.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

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

Сообщение torvn77 »

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

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

#<diametr>=100
#<x_rel_offset>=0
#<y_rel_offset>=0
#<z_rel_offset>=-10
a321 писал(а):ошибка в тексте, для #<result_bottom> = #5061 надо указывать 5062 (ось у)
Мда, феерично...
Вот что бывает кода люди не высыпаются :hehehe: :roll:
Спасибо, исправил.
a321
Мастер
Сообщения: 577
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 66
Контактная информация:

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

Сообщение a321 »

Продолжим, давно собирался.
ИМХО - лично меня беспоскоит и интересует положение фрезы относительно рабочего стола, а не расположенных (нараспев) "там, за горизонтом" концевиков или даже дачиков Хоме (то же касается и замеров жесткости - чтобы коллеги могли сравнивать критикуемые станки я обязательно сдалаю замеры на своем карликовофальшивоментном китайце, с фрезой в крайнем ниженм положении - надо только придумать, как измерить, измерялками я не шибко богат). Т.е. делаемые Версером датчики прекрасны и действительно нужны всем, но при работе с деревом можно обходиться другими способами. Как и уважаемый torvn77, с превеликим удовольствием пользуюсь LinuxCNC. После хомления для решения вопроса о сверке системы координат стола (технологической оснастки, расположенной на столе) использую подпрограмму и гирлянду цацок -
DSC_2646.JPG (4347 просмотров) <a class='original' href='./download/file.php?id=114642&sid=4278726eb0fb838d041ddf38189bc903&mode=view' target=_blank>Загрузить оригинал (5.27 МБ)</a>
Цацки - вырезаны из дерева. На "внутренние" и "наружные" диаметры - соотв. центруются (сопрягаются с контрольным отверстием на заготовке, рабочем столе, оснастке) на стандартный штифт (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 раза.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

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

Сообщение torvn77 »

Я писал эту суброутину с теми же целями что и у вас - ставить относительный ноль :)
вот тут в исходниках linuxCNC есть пример панели GladeVCP, если хотите то можете попробовать сделать опираясь на неё для этой суброутины гуй.
https://github.com/LinuxCNC/linuxcnc/bl ... wordsub.ui
Ответить

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