EMC2 и неровная поверхность гравировки [РЕШЕНО]
-
- Почётный участник
- Сообщения: 646
- Зарегистрирован: 23 янв 2012, 23:25
- Репутация: -80
- Откуда: Самара
Re: EMC2 и неровная поверхность гравировки
Обязательно, никаких проблем, вот только разгребу работу так сказать...
Re: EMC2 и неровная поверхность гравировки
to Nick, пожалуйста набросайте хотябы приблизительную инструкцию, а то в свете последних событий у Семена (Обязательно, никаких проблем, вот только разгребу работу так сказать...; время убивает работа =( не успеваю заниматься станком...; Проблема с осью Z) у него енто дело может затянуться на долгие... Заранее спасибо.Nick писал(а):Семен, тут такая просьба...
Напиши инструкцию по настройке обработки по неровной поверхности. Сейчас времени мало, а народ уже просит . Заодно напишешь человеческим языком, не как я .
Я ее потом наверх темы перемещу ну и оформлю как надо.
p.s. Хорошо что у Семена есть работа.
-
- Почётный участник
- Сообщения: 646
- Зарегистрирован: 23 янв 2012, 23:25
- Репутация: -80
- Откуда: Самара
Re: EMC2 и неровная поверхность гравировки
Интструкция в кратце такая:
Листаете эту тема из конца в начало, находите пост Ника, где полная конфигурация для моего станка.
Качаете.
Кидаете в папочку configs
Степконфигом создаете свою, настраиваете, чтобы с ней (вашей) станок работал.
Дальше, берете свою конфигурацию - и перекидываете из hal все что касается осей в ту что скачали (made by Nick) и из ini своего в ини скаченный переносите параметры осей.
Дальше запускаете с новоиспеченным вручную конфигом. и пробуете, если не получится что-то пишите сюда, постараюсь помочь (на тему подписан, это все прошел)
прошу прощения за задержки... есть много работы я бы даже сказал... а станок еще и хандрить стал... так что временю с инструкцией полной =(
Листаете эту тема из конца в начало, находите пост Ника, где полная конфигурация для моего станка.
Качаете.
Кидаете в папочку configs
Степконфигом создаете свою, настраиваете, чтобы с ней (вашей) станок работал.
Дальше, берете свою конфигурацию - и перекидываете из hal все что касается осей в ту что скачали (made by Nick) и из ini своего в ини скаченный переносите параметры осей.
Дальше запускаете с новоиспеченным вручную конфигом. и пробуете, если не получится что-то пишите сюда, постараюсь помочь (на тему подписан, это все прошел)
прошу прощения за задержки... есть много работы я бы даже сказал... а станок еще и хандрить стал... так что временю с инструкцией полной =(
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 и неровная поверхность гравировки
Извиняюсь, что с инструкцией затянулось... Исправляемся !
Я слегка изменил файлы с настройками, может сходу не заработать, нужно протестировать на добровольцах (У меня с ейчас под рукой нет LinuxCNC).
Также нужны отзывы, опыт внедрения и работы, и фотографии .
Я слегка изменил файлы с настройками, может сходу не заработать, нужно протестировать на добровольцах (У меня с ейчас под рукой нет LinuxCNC).
Также нужны отзывы, опыт внедрения и работы, и фотографии .
Как это работает
Суть компенсации, в том, что мы подменяем вывод на вывод на управляющий компонент оси, в простом случае на stepgen. Как это работает:- создаем карту высот обрабатываемой поверхности
- по этой карте и текущей координатам x и y компонент compensation может вычислить необходимое отклонение
- складываем полученное отклонение с запрошенным положением оси Z и подаем его на stepgen
Какие есть недостатки на данный момент
- Мы обманываем LinuxCNC, чтобы не возникала ошибка joint following error мы подменяем обратную связь от компонента stepgen запрошенной координатой. Это может вызвать выезд за пределы осей !
- Компонент compensation работает в userspace это означает, что его выполнение зависит от занятости компьютера и в случае большой нагрузки выполнение компенсации может запаздывать.
Установка
- Нужен рабочий конфиг для используемого станка, как его сделать можно посмотреть, например, здесь: Конфигурация EMC2 LinuxCNC #1.
- Скачиваем архив с файлом компонента. Компонент и все файлы из архива нужно сохранить в директорию с ваши конфигом.
Файлы компоненты и дополнительные конфиги можно взять здесь: https://github.com/cnc-club/linuxcnc-engraving-comp - Подменяем управление осью Z и добавляем новые функции, для этого в своем ini файле прописываем в раздел [HAL]:
Код: Выделить всё
POSTGUI_HALFILE = custom_postgui.hal
- Включаем контрольную панель pyvcp, для этого в ini-файл в раздел [DISPLAY] нужно добавить
Код: Выделить всё
PYVCP = compensation_pyvcp.xml
- Если ваш конфиг отличается от стандартного, возможно придется поменять строчки отвечающие за управление осью Z. В любом случае при возникновении ошибок или вопросов обращайтесь за помощью на форум .
Работа
- Сначала надо создать карту высот. Для этого нужно выполнить следующий Gкод. Его можно просто вписывать в начало программы, тогда создание карты будет проходить автоматически.
Усовершенствованный цикл сканирования см: EMC2 и неровная поверхность гравировки [РЕШЕНО] #470
Код: Выделить всё
M64 P0 (это мы выключаем работу компенсатора) T1 M6 (выдаем запрос на установку щупа) #<h> = 90 #<w> = 90 #<x0> = 110 #<y0> = 90 #<step> = 20 #<search_feed> = 100 #<latch_feed> = 1 #<safe_z> = 3 #<search_z> = -3 (PROBEOPEN filename.txt) G0 #<safe_z> #<y> = #<y0> o101 while [#<y> LT #<h>+#<y0>] #<x> = #<x0> o102 while [#<x> LT #<w>+#<x0>] G0 X#<x> Y#<y> F[#<search_feed>] G38.3 [Z#<search_z>] F[#<latch_feed>] G38.5 [Z#<safe_z>] G0 #<safe_z> #<x> = [#<x>+#<step>] o102 endwhile #<y> = [#<y>+#<step>] o101 endwhile (PROBECLOSE)
- После этого нужно сказать компоненту compensation, чтобы он обновил свою карту высот, сделать это можно либо кнопкой reset на панели pyvcp, либо Gкодом:
Код: Выделить всё
M65 P1 G4 P1 M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций) G4 P4 (делаем паузу на 4 секунды, на всякий случай, чтобы скрипт успел отработать)
- После этого остается включить компенсацию и выполнить программу обработки, включение компенсации производится кнопкой enable на панели pyvcp или при помощи вот такого Gкода:
Код: Выделить всё
M64 P0 (это мы включаем работу компенсатора)
Код: Выделить всё
M64 P0 (это мы выключаем работу компенсатора)
T1 M6 (выдаем запрос на установку щупа)
#<h> = 90
#<w> = 90
#<x0> = 110
#<y0> = 90
#<step> = 20
#<search_feed> = 100
#<latch_feed> = 1
#<safe_z> = 3
#<search_z> = -3
(PROBEOPEN filename.txt)
G0 #<safe_z>
#<y> = #<y0>
o101 while [#<y> LT #<h>+#<y0>]
#<x> = #<x0>
o102 while [#<x> LT #<w>+#<x0>]
G0 X#<x> Y#<y>
F[#<search_feed>]
G38.3 [Z#<search_z>]
F[#<latch_feed>]
G38.5 [Z#<safe_z>]
G0 #<safe_z>
#<x> = [#<x>+#<step>]
o102 endwhile
#<y> = [#<y>+#<step>]
o101 endwhile
(PROBECLOSE)
M65 P1
G4 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций)
G4 P4 (делаем паузу на 4 секунды, на всякий случай, чтобы скрипт успел отработать)
T2 M6 (Выдаем запрос на установку фрезы)
M64 P0 (это мы включаем работу компенсатора)
(***********************************)
(Сюда твой Gкод для гравировки платы)
(***********************************)
M2 (end program)
- Вложения
-
- compnsation.tar.gz
- (2.73 КБ) 1295 скачиваний
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Благодарю Nick за труд.
Сейча повторяю по инструкции, ожидаю что получится (;
У меня такой вопрос-идея-просьба, возможно сделать следующием образом, чтобы избежать недостатков, перечисленных выше:
шаг 1сканировать поверхность по сетке, результат сохранить в файл;
шаг 2с помощью скрипта или прогаммного модуля преобразовать G-code, с учетом полученного результата в 1 шаге;
шаг 3 запустить преобразованный G-code.
p.s.
Nick у меня probe подключен к 15 пину Lpt, подскажите где в конфиге это описать?
Сейча повторяю по инструкции, ожидаю что получится (;
У меня такой вопрос-идея-просьба, возможно сделать следующием образом, чтобы избежать недостатков, перечисленных выше:
шаг 1сканировать поверхность по сетке, результат сохранить в файл;
шаг 2с помощью скрипта или прогаммного модуля преобразовать G-code, с учетом полученного результата в 1 шаге;
шаг 3 запустить преобразованный G-code.
p.s.
Nick у меня probe подключен к 15 пину Lpt, подскажите где в конфиге это описать?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
В Stepconf есть пин probe или прямая проба.
Или в hal :
net probe-in => motion.probe-input
net probe-in <= parport.0.pin-15-in-not
Или в hal :
net probe-in => motion.probe-input
net probe-in <= parport.0.pin-15-in-not
Теоретически можно. Но будет не автоматически... и надо парсить Gкод, а это не просто особенно, если не известно на чем его делали. А тут все можно сделать на голом Gкоде, да еще и выполнять несколько раз автоматически, т.е. сделал 1 раз Gкод, потом поставил заготовку, нажал выполнить и "отсканировалось-включилась_компенсация-вырезалось", поменял заготовку и просто опять нажал выполнить и т.д.2cme писал(а):шаг 1сканировать поверхность по сетке, результат сохранить в файл;
шаг 2с помощью скрипта или прогаммного модуля преобразовать G-code, с учетом полученного результата в 1 шаге;
шаг 3 запустить преобразованный G-code.
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Делаю по инструкции.
После запуска ошибка:
Debug file information
custom_pustgui.hal:19: Pin 'axis.2.motor-pos-fb' was already linked to signal 'zpos-fb'
Настраивал через stepconfig:
2 step x
3 step y
4 step z
6 dir x
7 dir y
8 dir z
15 dig_in
Остальные указал "не подключено"
В hal добавил:
net probe-in => motion.probe-input
net probe-in <= parport.0.pin-15-in-not
Где ошибка?
После запуска ошибка:
Debug file information
custom_pustgui.hal:19: Pin 'axis.2.motor-pos-fb' was already linked to signal 'zpos-fb'
Настраивал через stepconfig:
2 step x
3 step y
4 step z
6 dir x
7 dir y
8 dir z
15 dig_in
Остальные указал "не подключено"
В hal добавил:
net probe-in => motion.probe-input
net probe-in <= parport.0.pin-15-in-not
Где ошибка?
-
- Почётный участник
- Сообщения: 646
- Зарегистрирован: 23 янв 2012, 23:25
- Репутация: -80
- Откуда: Самара
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Я сходу может и промохнусь, но, Nick, кажется мой hal мы расковыряли до дыр...
Там же подмену добавляли - а в инструкции ты ничего про это не указал...
2cme, выложи свой конфиг - я гляну... я конечно не Nick. но такое уже прошел - может что и увижу!
Там же подмену добавляли - а в инструкции ты ничего про это не указал...
2cme, выложи свой конфиг - я гляну... я конечно не Nick. но такое уже прошел - может что и увижу!
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Файлы прикрипил.
- Вложения
-
- configs.tar.gz
- (6.13 КБ) 1393 скачивания
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
В custom_postgui.hal нужно добавить unlinkp axis.2.motor-pos-fb рядом с остальными unlinkp.
Это потому, что все это я постарался запихать в custom_postgui.hal но как обычно все это с первого раза не получается .Романов Семен писал(а):Я сходу может и промохнусь, но, Nick, кажется мой hal мы расковыряли до дыр...Там же подмену добавляли - а в инструкции ты ничего про это не указал...
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
debug file information:
custom_postgui.hal:22: Pin 'sum2.0.in0' does not exist
custom_postgui.hal:22: Pin 'sum2.0.in0' does not exist
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
вверху нужно добавить две строчки с объявлением sum2, чтобы стало так:
loadrt or2 count=2
loadrt sum2 count=1
loadusr -Wn compensation python compensation.py filename.txt
addf or2.0 servo-thread
addf or2.1 servo-thread
addf sum2.0 servo-thread
loadrt or2 count=2
loadrt sum2 count=1
loadusr -Wn compensation python compensation.py filename.txt
addf or2.0 servo-thread
addf or2.1 servo-thread
addf sum2.0 servo-thread
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
В каком файле?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
все там же custom_postgui.hal
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
to Романов Семен
Я так понимаю что строчка POSTGUI_HALFILE = custom_postgui.hal в файле My.ini подтягивает файл custom_postgui.hal.
to Nick
Надо было добавить только две строчки
loadrt sum2 count=1
addf sum2.0 servo-thread
Но после такое сообщение Debug file information:
custom_postgui.hal:31: Pin 'pyvcp.enable' does not exist
Я так понимаю что строчка POSTGUI_HALFILE = custom_postgui.hal в файле My.ini подтягивает файл custom_postgui.hal.
to Nick
Надо было добавить только две строчки
loadrt sum2 count=1
addf sum2.0 servo-thread
Но после такое сообщение Debug file information:
custom_postgui.hal:31: Pin 'pyvcp.enable' does not exist
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
О, в ini в раздел [DISPLAY] нужно добавить
PYVCP = comrensation_pyvcp.xml
PYVCP = comrensation_pyvcp.xml
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Debug file information:
Traceback (most recent call last):
File "/usr/bin/axis", line 3936, in <module>
vcpparse.create_vcp(f, comp)
File "debian/tmp/usr/lib/python2.6/dist-packages/vcpparse.py", line 177, in create_vcp
File "debian/tmp/usr/lib/python2.6/dist-packages/vcpparse.py", line 47, in read_file
File "/usr/lib/python2.6/xml/dom/minidom.py", line 1918, in parse
return expatbuilder.parse(file)
File "/usr/lib/python2.6/xml/dom/expatbuilder.py", line 922, in parse
fp = open(file, 'rb')
IOError: [Errno 2] No such file or directory: 'comrensation_pyvcp.xml'
15118
PID TTY STAT TIME COMMAND
15172
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
Вроде как нет модуля 'comrensation_pyvcp.xml', как его установить?
Traceback (most recent call last):
File "/usr/bin/axis", line 3936, in <module>
vcpparse.create_vcp(f, comp)
File "debian/tmp/usr/lib/python2.6/dist-packages/vcpparse.py", line 177, in create_vcp
File "debian/tmp/usr/lib/python2.6/dist-packages/vcpparse.py", line 47, in read_file
File "/usr/lib/python2.6/xml/dom/minidom.py", line 1918, in parse
return expatbuilder.parse(file)
File "/usr/lib/python2.6/xml/dom/expatbuilder.py", line 922, in parse
fp = open(file, 'rb')
IOError: [Errno 2] No such file or directory: 'comrensation_pyvcp.xml'
15118
PID TTY STAT TIME COMMAND
15172
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
Вроде как нет модуля 'comrensation_pyvcp.xml', как его установить?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
упс не comrensation_pyvcp.xml, а compensation_pyvcp.xml, архиве этот файл должен быть
-
- Почётный участник
- Сообщения: 646
- Зарегистрирован: 23 янв 2012, 23:25
- Репутация: -80
- Откуда: Самара
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Я конечно может тупо влезу в умный разговор, но:
не проще ли взять мой рабочий конфиг (выше Ник выкладывал)
И сконфигурировать в ним лишь оси (пины, скоростя и все) ?
Прошу прощения за вторжение - ушел дальше кабель чинить =)
Ппц... перебрал пол контроллера, разобрал - собрал шаговик - оказалось китайцы уроды на меди экономят - тонюсенькие проводишки то блин...
слава Богу электроника и шаговик живы!
не проще ли взять мой рабочий конфиг (выше Ник выкладывал)
И сконфигурировать в ним лишь оси (пины, скоростя и все) ?
Прошу прощения за вторжение - ушел дальше кабель чинить =)
Ппц... перебрал пол контроллера, разобрал - собрал шаговик - оказалось китайцы уроды на меди экономят - тонюсенькие проводишки то блин...
слава Богу электроника и шаговик живы!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Так оно красивее будет, сейчас все отладим и исправим инструкцию, и не надо будет ничего менять .