Страница 12 из 31
Re: EMC2 и неровная поверхность гравировки
Добавлено: 05 мар 2012, 14:33
Романов Семен
Обязательно, никаких проблем, вот только разгребу работу так сказать...
Re: EMC2 и неровная поверхность гравировки
Добавлено: 12 мар 2012, 13:22
2cme
Nick писал(а):Семен, тут такая просьба...
Напиши инструкцию по настройке обработки по неровной поверхности. Сейчас времени мало, а народ уже просит

. Заодно напишешь человеческим языком, не как я

.
Я ее потом наверх темы перемещу ну и оформлю как надо.
to Nick, пожалуйста набросайте хотябы приблизительную инструкцию, а то в свете последних событий у Семена (Обязательно, никаких проблем, вот только разгребу работу так сказать...; время убивает работа =( не успеваю заниматься станком...; Проблема с осью Z) у него енто дело может затянуться на долгие... Заранее спасибо.
p.s. Хорошо что у Семена есть работа.
Re: EMC2 и неровная поверхность гравировки
Добавлено: 12 мар 2012, 16:42
Романов Семен
Интструкция в кратце такая:
Листаете эту тема из конца в начало, находите пост Ника, где полная конфигурация для моего станка.
Качаете.
Кидаете в папочку configs
Степконфигом создаете свою, настраиваете, чтобы с ней (вашей) станок работал.
Дальше, берете свою конфигурацию - и перекидываете из hal все что касается осей в ту что скачали (made by Nick) и из ini своего в ини скаченный переносите параметры осей.
Дальше запускаете с новоиспеченным вручную конфигом. и пробуете, если не получится что-то пишите сюда, постараюсь помочь (на тему подписан, это все прошел)
прошу прощения за задержки... есть много работы я бы даже сказал... а станок еще и хандрить стал... так что временю с инструкцией полной =(
Re: EMC2 и неровная поверхность гравировки
Добавлено: 13 мар 2012, 16:31
Nick
Извиняюсь, что с инструкцией затянулось... Исправляемся

!
Я слегка изменил файлы с настройками, может сходу не заработать, нужно протестировать на добровольцах

(У меня с ейчас под рукой нет 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]:
- Включаем контрольную панель pyvcp, для этого в ini-файл в раздел [DISPLAY] нужно добавить
- Если ваш конфиг отличается от стандартного, возможно придется поменять строчки отвечающие за управление осью Z. В любом случае при возникновении ошибок или вопросов обращайтесь за помощью на форум
.
После проведения всех выше описанных операций после запуска LinuxCNC должна появиться дополнительная панель pyvcp, которая позволит управлять компенсацией и будет отображать ее состояние.
Работа
- Сначала надо создать карту высот. Для этого нужно выполнить следующий Gкод. Его можно просто вписывать в начало программы, тогда создание карты будет проходить автоматически.
Код: Выделить всё
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)
Усовершенствованный цикл сканирования см: EMC2 и неровная поверхность гравировки [РЕШЕНО] #470
- После этого нужно сказать компоненту compensation, чтобы он обновил свою карту высот, сделать это можно либо кнопкой reset на панели pyvcp, либо Gкодом:
Код: Выделить всё
M65 P1
G4 P1
M64 P1 (это мы скажем нашему скрипту обновить карту высот и компенсаций)
G4 P4 (делаем паузу на 4 секунды, на всякий случай, чтобы скрипт успел отработать)
- После этого остается включить компенсацию и выполнить программу обработки, включение компенсации производится кнопкой enable на панели pyvcp или при помощи вот такого Gкода:
Код: Выделить всё
M64 P0 (это мы включаем работу компенсатора)
Весь выше описанный Gкод можно объединить в один файл и просто добавлять в него код обработки:
Код: Выделить всё
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)
#
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 13 мар 2012, 17:23
2cme
Благодарю Nick за труд.
Сейча повторяю по инструкции, ожидаю что получится (;
У меня такой вопрос-идея-просьба, возможно сделать следующием образом, чтобы избежать недостатков, перечисленных выше:
шаг 1сканировать поверхность по сетке, результат сохранить в файл;
шаг 2с помощью скрипта или прогаммного модуля преобразовать G-code, с учетом полученного результата в 1 шаге;
шаг 3 запустить преобразованный G-code.
p.s.
Nick у меня probe подключен к 15 пину Lpt, подскажите где в конфиге это описать?
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 13 мар 2012, 18:50
Nick
В Stepconf есть пин probe или прямая проба.
Или в hal :
net probe-in => motion.probe-input
net probe-in <= parport.0.pin-15-in-not
2cme писал(а):шаг 1сканировать поверхность по сетке, результат сохранить в файл;
шаг 2с помощью скрипта или прогаммного модуля преобразовать G-code, с учетом полученного результата в 1 шаге;
шаг 3 запустить преобразованный G-code.
Теоретически можно. Но будет не автоматически... и надо парсить Gкод, а это не просто особенно, если не известно на чем его делали. А тут все можно сделать на голом Gкоде, да еще и выполнять несколько раз автоматически, т.е. сделал 1 раз Gкод, потом поставил заготовку, нажал выполнить и "отсканировалось-включилась_компенсация-вырезалось", поменял заготовку и просто опять нажал выполнить и т.д.
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 13 мар 2012, 23:45
2cme
Делаю по инструкции.
После запуска ошибка:
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
Где ошибка?
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 13 мар 2012, 23:49
Романов Семен
Я сходу может и промохнусь, но, Nick, кажется мой hal мы расковыряли до дыр...
Там же подмену добавляли - а в инструкции ты ничего про это не указал...
2cme, выложи свой конфиг - я гляну... я конечно не Nick. но такое уже прошел - может что и увижу!
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 13 мар 2012, 23:57
2cme
Файлы прикрипил.
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 00:27
Nick
В custom_postgui.hal нужно добавить unlinkp axis.2.motor-pos-fb рядом с остальными unlinkp.
Романов Семен писал(а):Я сходу может и промохнусь, но, Nick, кажется мой hal мы расковыряли до дыр...Там же подмену добавляли - а в инструкции ты ничего про это не указал...
Это потому, что все это я постарался запихать в custom_postgui.hal

но как обычно все это с первого раза не получается

.
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 00:39
2cme
debug file information:
custom_postgui.hal:22: Pin 'sum2.0.in0' does not exist
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 00:43
Nick
вверху нужно добавить две строчки с объявлением 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
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 00:50
2cme
В каком файле?
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 00:52
Nick
все там же custom_postgui.hal
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 01:04
2cme
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
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 01:07
Nick
О, в ini в раздел [DISPLAY] нужно добавить
PYVCP = comrensation_pyvcp.xml
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 01:11
2cme
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', как его установить?
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 01:14
Nick
упс не comrensation_pyvcp.xml, а compensation_pyvcp.xml, архиве этот файл должен быть
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 01:15
Романов Семен
Я конечно может тупо влезу в умный разговор, но:
не проще ли взять мой рабочий конфиг (выше Ник выкладывал)
И сконфигурировать в ним лишь оси (пины, скоростя и все) ?
Прошу прощения за вторжение - ушел дальше кабель чинить =)
Ппц... перебрал пол контроллера, разобрал - собрал шаговик - оказалось китайцы уроды на меди экономят - тонюсенькие проводишки то блин...
слава Богу электроника и шаговик живы!
Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 14 мар 2012, 01:18
Nick
Так оно красивее будет, сейчас все отладим и исправим инструкцию, и не надо будет ничего менять

.