Страница 2 из 2
Re: Мои вспомогательные утилиты.
Добавлено: 16 май 2016, 13:50
ashe
я пока не вникал как работают отдельные коды, но я так понимаю он касается, потом отъезжает и опаять касается, после отъезжает и включает малую скорость. Заметил, что если подложить массивную железку, то гораздо меньше ложных срабатываний. Получается что заготвка прижимается??
Re: Мои вспомогательные утилиты.
Добавлено: 16 май 2016, 13:53
ashe
torvn77 писал(а):
Вообще если есть место в котором происходит нечто не понятное, то его имеет смысл обложить отладочным кодом.
Код: Выделить всё
(DEBUG, Z=#<_z> , motion.probe-input = #<_hal[motion.probe-input]>)
Еси б я еще понимал , как это делать ))))
Re: Мои вспомогательные утилиты.
Добавлено: 16 май 2016, 13:55
ashe
Попробую действительно поднять напругу на датчик и буфер с триггером сделать, чтоб спад/нарастание сигнала поднять.
Re: Мои вспомогательные утилиты.
Добавлено: 16 май 2016, 14:21
ashe
А возможно, что у меня стоит винт с шагом 5 мм, 16/40 шкивы, 200 шагов на оборот мотор и делитель шага включен на 2 что = 0,005мм шаг, и этого не достаточно?
Re: Мои вспомогательные утилиты.
Добавлено: 16 май 2016, 20:37
ashe
В общем я изменил микро шаг на 16. перестала вылетать ошибка определения "0" , но зато появилась другая какашка. Почему-то выключается питание станка(в программе F2, хотя вроде никак эта кнопка не задействована со входами). Причем только на большой скорости подачи по Z(при подъёме), также в ручном режиме. Бум разбираться.....
пишет joint 2 following error
Re: Мои вспомогательные утилиты.
Добавлено: 16 май 2016, 21:21
ashe
Запустил я Latency test, не понимаю хоть убей какие значения вводить. Картинка 1- без нагрузки. Картинка 2- с запущенным видео из ютьюба + дергаю браузер по экрану. Ввожу Max Jitter 20000 - перестаёт вырубать, Ввожу Max Jitter 200000 - вырубает. Получается железо слабое? Или я чего-то не понимаю?
Re: Мои вспомогательные утилиты.
Добавлено: 16 май 2016, 23:53
torvn77
ashe писал(а):Заметил, что если подложить массивную железку, то гораздо меньше ложных срабатываний. Получается что заготвка прижимается??
ashe писал(а):оксида нет
Если брусок меди полежит примерно час после полировки, то он из светлого отполированного потемнеет.
Вот это вот потемнение и есть не проводящая электричество оксидная плёнка которую во время пробы надо
продавливать.
ashe писал(а):я пока не вникал как работают отдельные коды, но я так понимаю он касается, потом отъезжает и опаять касается, после отъезжает и включает малую скорость.
Поняли внешне правильно(не всё), суть несколько иная.
Опускается на "большой" скорости до
замыкания датчика конца инструмента.
На низкой скорости отъесжает обратно до
размыкания датчика конца инструмента.
На низкой скрости снова едет вниз до замыкания датчика конца инструмента и копирует значение замеренной координаты в переменную #<probe_bottom>
На низкой скорости снова едет на верх до размыкания датчика конца инструмента и копирует значение замеренной координаты в переменную #<probe_top>(

Наблюдаемый вами сбой произощёл здесь)
Едет на самый верх G0 Z[#<_ini[AXIS_2]MAX_LIMIT>]
Смещает относительную систему координат на среднее значение переменных #<probe_bottom> и #<probe_top>
ashe писал(а):и буфер с триггером сделать
Тестирование происходит не только на появление сигнала, но и на его пропадание, по этому просто триггер не годиться,
надо чтобы схема меняла свою работу в зависимости от желаемого результата.
ashe писал(а):Почему-то выключается питание станка(в программе F2, хотя вроде никак эта кнопка не задействована со входами). Причем только на большой скорости подачи по Z(при подъёме), также в ручном режиме. Бум разбираться.....
Несколькими днями раньше я объяснял это здесь:
Re: Помогите настроить CNCLinux для работы с серводвигателям #22
ashe писал(а):Запустил я Latency test,
Запуск этой утилиты есть самая большая ошибка, которую может сделать начинающий пользователь.
Эта вредная утилита начинающих путает, а когда они понимают что и как работает становится просто не нужна.
Закройте её и больше никогда не запускайте, ну разве что если предварительную оценку периодов надо сделать будет( немного экономит время на первоначальном подборе параметров).
подробнее можно прочитать здесь:
Re: Помогите настроить CNCLinux для работы с серводвигателям #21
Re: Мои вспомогательные утилиты.
Добавлено: 17 май 2016, 13:02
ashe
Триггеры бывают разные и я имел ввиду как раз то, о чем вы говорите. А ошибка при касании пропала после переключения делителя на 16, значит всё таки мало шага 0,05... Появились правда другие ошибки, спасибо вам, буду разбираться дальше.
Re: Мои вспомогательные утилиты.
Добавлено: 17 май 2016, 20:36
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 =" это просто набор букв )
Мои вспомогательные утилиты: Установка нуля по центру окружн
Добавлено: 24 май 2017, 18:07
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
Re: Мои вспомогательные утилиты.
Добавлено: 24 май 2017, 19:11
a321
Ценно, спасибо. А нет ли типа "обратной задачи"- у Вас по окружности "изнутри", а не менее распространена задача "снаружи".
В третьей с конца строке (это не для Вас, это для меня и мало ли еще кого) вместо нажатия Тоуч офф можно сразу завести соотв. параметры смещения (координаты заранее известного расположения отверстия).
И при копировании кода - коллеги, помните, там в конце z стоит как -10.
Re: Мои вспомогательные утилиты.
Добавлено: 22 июн 2017, 02:03
torvn77
a321 писал(а):В третьей с конца строке (это не для Вас, это для меня и мало ли еще кого) вместо нажатия Тоуч офф можно сразу завести соотв. параметры смещения (координаты заранее известного расположения отверстия).
Теперь эти координаты вводятся вместе с предполагаемым диаметром в начале УП в строках
Код: Выделить всё
#<diametr>=100
#<x_rel_offset>=0
#<y_rel_offset>=0
#<z_rel_offset>=-10
a321 писал(а):ошибка в тексте, для #<result_bottom> = #5061 надо указывать 5062 (ось у)
Мда, феерично...
Вот что бывает кода люди не высыпаются
Спасибо, исправил.
Re: Мои вспомогательные утилиты.
Добавлено: 23 июн 2017, 23:22
a321
Продолжим, давно собирался.
ИМХО - лично меня беспоскоит и интересует положение фрезы относительно рабочего стола, а не расположенных (нараспев) "там, за горизонтом" концевиков или даже дачиков Хоме (то же касается и замеров жесткости - чтобы коллеги могли сравнивать критикуемые станки я обязательно сдалаю замеры на своем карликовофальшивоментном китайце, с фрезой в крайнем ниженм положении - надо только придумать, как измерить, измерялками я не шибко богат). Т.е. делаемые Версером датчики прекрасны и действительно нужны всем, но при работе с деревом можно обходиться другими способами. Как и уважаемый torvn77, с превеликим удовольствием пользуюсь LinuxCNC. После хомления для решения вопроса о сверке системы координат стола (технологической оснастки, расположенной на столе) использую подпрограмму и гирлянду цацок -

Цацки - вырезаны из дерева. На "внутренние" и "наружные" диаметры - соотв. центруются (сопрягаются с контрольным отверстием на заготовке, рабочем столе, оснастке) на стандартный штифт (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. вызвал подпрограмму (если станок ругается, мол, выходим за пределы Х или У - игнорируем)
Работает без нареканий.
Re: Мои вспомогательные утилиты.
Добавлено: 24 июн 2017, 00:47
torvn77
Я писал эту суброутину с теми же целями что и у вас - ставить относительный ноль

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