EMC2 и неровная поверхность гравировки [РЕШЕНО]

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

Запусти LinuxCNC из консоли, и нажми на reset и enable. Скорее всего в консоле появится какая-то ошибка, вот ее сюда пости.
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

Да, и в самом деле ругается.
vadim@mycnc:~$ linuxcnc /home/vadim/linuxcnc/configs/mycnc/mycnc.ini
LINUXCNC - 2.5.0
Machine configuration directory is '/home/vadim/linuxcnc/configs/mycnc'
Machine configuration file is 'mycnc.ini'
Starting LinuxCNC...
ERROR! Map should be rectangular!
Can not find point X 0.0 Y 1e-06
ERROR! Map should be rectangular!
Can not find point X 0.0 Y 1e-06
ERROR! Map should be rectangular!
Can not find point X 0.0 Y 1e-06
ERROR! Map should be rectangular!
Can not find point X 0.0 Y 1e-06
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

А скинь еще раз свой файл с картой высот.
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

Прикрепляю файл, полученный пробой с 15 пина:
Вложения
filename.txt
карта высот
(2.45 КБ) 1212 скачиваний
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

вот прикрепляю фаил -пустышку для создания карты поверхности + программу гравировки платы, объединенную с модулем компенсации поверхности.
Вложения
test_board.ngc
гравировка текстолита
(2.45 МБ) 1457 скачиваний
map_1.ngc
просто составить карту
(506 байт) 1260 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

Попробуй вот с этим compensation.py. С картой высот такая проблема вышла, есть похожие координаты вроде 59.99999 и 60.00000 а для скрипта они разные. В общем я добавил округление до 4-го знака по координатам XY карты высот.
Вложения
compensation.py.tar.gz
(1.77 КБ) 1236 скачиваний
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

Еще раз здравствуйте, после изменения округления у меня компенсация начала работать, но только по первой точке из массива высот. эффект такой же, как если бы я один раз коснулся фрезой текстолита и запустил бы обработку. Во время работы программы значение текущей компенсации никак не меняется. да и фреза ушла явно глубже чем на 0.08... примерно на 0.2мм. Прогресс уже есть, хотя компенсация все еще не работает как надо )
Вложения
компенсация более-менее включилась, но работает только по первой точке массива высот. (17680 просмотров) <a class='original' href='./download/file.php?id=7646&mode=view' target=_blank>Загрузить оригинал (358.83 КБ)</a>
компенсация более-менее включилась, но работает только по первой точке массива высот.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

хммм... проверь, как у тебя называются сигналы xpos-cmd и ypos-cmd
в custom_postgui.hal есть строчки
net xpos-cmd => compensation.x-map
net ypos-cmd => compensation.y-map

вместо xpos-cmd и ypos-cmd нужно поставить названия твоих сигналов из твоего hal, в которые пишется:
axis.0.motor-pos-cmd и axis.1.motor-pos-cmd
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

Ругается на такую замену:
vadim@mycnc:~$ linuxcnc /home/vadim/linuxcnc/configs/mycnc/mycnc.ini
LINUXCNC - 2.5.0
Machine configuration directory is '/home/vadim/linuxcnc/configs/mycnc'
Machine configuration file is 'mycnc.ini'
Starting LinuxCNC...
custom_postgui.hal:11: Signal name 'axis.0.motor-pos-cmd' must not be the same as a pin. Did you omit the signal name?
Shutting down and cleaning up LinuxCNC...
Cleanup done
LinuxCNC terminated with an error. You can find more information in the log:
/home/vadim/linuxcnc_debug.txt
and
/home/vadim/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
vadim@mycnc:~$
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

Скинь свои hal-ы.
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

Хотя я и нашел одну опечатку, всеравно вылетает. Твой последний совет я там закоментировал решеткой.
Вот архив с конфигами и Hal-ами
Вложения
my-cfg with compensations_v2.rar
конфиг станка с копенсацией, работающей пока только в одной точке
(8.62 КБ) 484 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

Вроде все должно работать... Посмотри в halmeter чему равны пины compensation.x-map и compensation.y-map...
Может ты просто вне зоны, где проходили измерения?
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

вроде заработало :) пробую выполнить программу. Меня насторожил непривычный треск, когда я перегонял шпиндель, думал я там станком лампу настольную задеваю.. а оказалось это компенсация заработала. Будет вообще здорово, если она нормально отгравирует текстолит. Подождем немного. :bender:
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

А составление карты высот можно запускать с включенной компенсацией? По идее этого делать нельзя, т.к. тут нарушаются относительные привязки. А с другой стороны, галочка и ресет не всегда выключают компенсацию. Проконсультируй меня пожалуйста.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

Галочка должна выключать. сразу. Можешь попробовать выключить галочку, ось сразу должна вверх уйти.
С компенсацией сканирование делать не надо :)
2cme
Почётный участник
Почётный участник
Сообщения: 1043
Зарегистрирован: 24 янв 2012, 13:18
Репутация: -209

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение 2cme »

vadim063 писал(а):вроде заработало :)
Получилось фрезернуть ПП? Фото результат если не секрет пожалуйста выложите.
vadim063
Кандидат
Сообщения: 69
Зарегистрирован: 19 авг 2012, 12:59
Репутация: 7
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение vadim063 »

получилось, при этом у меня был вот такой конфиг (см вложение) и во время работы все индикаторы горели зеленым. мог не гореть зеленым индикатор ресет. При нажатии на кнопку ресет ничего явного не происходит. (скриншот) было бы здорово узнать что она все-таки делает.
при работе выявлена еще одна особенность - не получается по уже построенной карте высот запустить другую управляющую программу. такая потребность может возникнуть после смены фрез и запуска другой программы для другой фрезы (я знаю про t1 m6 и тд, но как то так привык- обзываю программу именем фрезы и режимом резания) в связи с этим для небольших плат предлагаю попробовать переписать while цикл с целью прохода фрезы по периметру и без касания в центре платы, где может уже быть к тому времени отфрезерованная поверхность. Заодно хотелось спросить про наличие аппроксимации высот между точками карты высот. С фотографией буду думать (фотоаппарат возьму у соседа).

хотел еще поинтересоваться:
0) как можно при помощи G или М кодов управлять включением\выключением галочки ENABLE вашей разработки? Оказывается M64 P0 (команда включения компенсатора) не работает должным образом. Даже после ее выполнения при нажатии на галочку шпиндель подскакивает вверх (компенсация действительно включилась), при этом индикатор ENABLE не отображает реального положения дел.
1) у вас какие скорости и ускорения выставлены на ось Z вашего станка? (у меня ускорения 90мм2/с и скорости до 200 и ось всеравно сползает вниз. Это нормально\много\мало?)
2) как в EMC2 создать свою М999 команду, которая бы выполнила фаил с жесткого диска\последовательность G кодов? Есть ли где-нить мануал?
3) как настроить дефлотное значение скоростей обработки и переездов в интерфейсе EMC2 (Jog speed \ Max Velocity)? После перезапуска программы они выставляются в чуть ли не космические скорости вроде 24000 мм\мин. Двигатели не могут выдать больше 1600мм\с. Заранее большое спасибо (мелочь, но мучаюсь).
4) хотелось бы в идеале разработать M-команду, которой на вход идут два параметра X Y S. После ее выполнения относительно нулевой точки выполняется отключение галки ENABLE, строится карта высот с шагом s в пределах (0..X;0..Y), галка включается.
5) было бы здорово, если бы панельке compensation_pyvcp.xml появилось бы EDIT поле, в котором можно было бы указать что то типа "-0.005 мм" которые бы вычитались из текущей позиции по оси Z при перемещении дремеля. Иногда о ней просто мечтаю.

Но в любом случае огромное Вам спасибо за проделанную помощь, Человечище! :beer:
С Уважением, Вадим
Даньшин

Для следующих форумчан, которые будут ломать голову об свою проблему:
Для работы использовал образ ubuntu-10.04-linuxcnc3-i386.iso который легко гуглится. Отличный образ!
1) Качаете этот конфиг
2) желательно вручную правите ini профиль своего станка под свои передаточные коэффициенты,скорости, ускорения размеры стола
(софтина-визард от EMC сбивает приписанные ядра в конфиге)
3) ищете ноль фрезой. пара переездов по Х и У + команда G38.3 Z-40 F10 решают проблему поиска нуля. не забудьте выставить все три оси в home
4) в скрипте настраиваете зону сканирования по X Y. рекомендую не гнаться за скоростью по Z (снижается точность если F>10..20); переезды между точками сканирования можно делать на нормальных скоростях порядка 600мм\мин. Также не советую ставить safeZ меньше чем 0.3..0.4 мм.
5) запускаете программу, жмете окей на запросе смены инструмента (появится окошко)
6) спустя 15 минут (когда закончит) жмете ОК на смене инструмента и ОБЯЗАТЕЛЬНО ВКЛЮЧАЕТЕ ГАЛКУ ENABLE
7) дальше станок выполнит программу, помещенную в соответствующую секцию фаила-заготовки. (фаил заготовка есть во вложении)

для удобства очень советую установить на убунте (как ставить легко гуглится)
1) общую папку для обмена скриптами (пакеты для SMB или samba соединений )
2) пакет X11vnc
3) Связку openssh-server + xming
4) на удаленном столе выставить разрешение 1024х768 пикселей (тогда все влезет без скролбаров)
5) Ни в коем случае не делайте обновления пакетов неглядя. Обновите ядро=вынужденны будете его пересобирать и мучаться с настройками.
желаю удачи ! )
Вложения
my-cfg with compensations_v3.rar
работающий конфиг с компенсациями для станка Cutmaster CM-325 и контроллером purelogic PLC330 для двигателей 1.8 градуса с коэффициентом передачи на ШВП=1.3333
(8.46 КБ) 538 скачиваний
выточенный мерцающий POV кубик_1 (17653 просмотра) <a class='original' href='./download/file.php?id=7678&mode=view' target=_blank>Загрузить оригинал (3.09 МБ)</a>
выточенный мерцающий POV кубик_1
выточенный мерцающий POV кубик_1 (вид спереди) (17653 просмотра) <a class='original' href='./download/file.php?id=7679&mode=view' target=_blank>Загрузить оригинал (2.16 МБ)</a>
выточенный мерцающий POV кубик_1 (вид спереди)
выточенный мерцающий POV кубик_3 (гнездо зарядки nokia) (17653 просмотра) <a class='original' href='./download/file.php?id=7680&mode=view' target=_blank>Загрузить оригинал (2.13 МБ)</a>
выточенный мерцающий POV кубик_3 (гнездо зарядки nokia)
Скриншот работающей компенсации. (17653 просмотра) <a class='original' href='./download/file.php?id=7681&mode=view' target=_blank>Загрузить оригинал (329.54 КБ)</a>
Скриншот работающей компенсации.
shablon.ngc
Фаил-заготовка для управляющей программы.
(592 байт) 1230 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

vadim063 писал(а):было бы здорово узнать что она все-таки делает.
Если запустишь linuxcnc из консоли - туда выведется какая-то информация, но, по большому счету, оно тебе надо? Главное, что все леды загорелись зеленым.
vadim063 писал(а):при работе выявлена еще одна особенность - не получается по уже построенной карте высот запустить другую управляющую программу.
Хммм... странно, все должно быть в порядке, опиши подробнее, что ты делаешь...
Компенсация не зависит от того, какая программа работает.
vadim063 писал(а):0) как можно при помощи G или М кодов управлять включением\выключением галочки ENABLE вашей разработки? Оказывается M64 P0 (команда включения компенсатора) не работает должным образом. Даже после ее выполнения при нажатии на галочку шпиндель подскакивает вверх (компенсация действительно включилась), при этом индикатор ENABLE не отображает реального положения дел.
Вроде должно работать
В hal все есть:

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

net dout-00 <= motion.digital-out-00 
net dout-00 => or2.0.in0
net pyvcp-enable pyvcp.enable => or2.0.in1
net comp-enable or2.0.out compensation.enable  
Сейчас у себя проверю...
vadim063 писал(а):1) у вас какие скорости и ускорения выставлены на ось Z вашего станка? (у меня ускорения 90мм2/с и скорости до 200 и ось всеравно сползает вниз. Это нормально\много\мало?)
Если ось стабильно ползет вниз, стоит задуматься о механическом противовесе или усилении движка. (С этим лучше в новую тему ;))
vadim063 писал(а):2) как в EMC2 создать свою М999 команду, которая бы выполнила фаил с жесткого диска\последовательность G кодов? Есть ли где-нить мануал?
Все просто пишешь в M101 и LinuxCNC выполняет файл M101 лежащий в директории с ini или в ngc-files (точно не помню). У файла должно быть разрешение на выполнение, т.е. chmod a+x M101 .
Большие буквы имеют значение!
vadim063 писал(а):3) как настроить дефлотное значение скоростей обработки и переездов в интерфейсе EMC2 (Jog speed \ Max Velocity)? После перезапуска программы они выставляются в чуть ли не космические скорости вроде 24000 мм\мин. Двигатели не могут выдать больше 1600мм\с. Заранее большое спасибо (мелочь, но мучаюсь).
MAX_LINEAR_VELOCITY = 400.00 Это в единицах измерения в секунду, т.е. мм/с, что в твоем случае и получается 24000 мм\мин. Просто сделай меньше.
vadim063 писал(а):4) хотелось бы в идеале разработать M-команду, которой на вход идут два параметра X Y S. После ее выполнения относительно нулевой точки выполняется отключение галки ENABLE, строится карта высот с шагом s в пределах (0..X;0..Y), галка включается.
Это лучше не M команду, а o<scan> call + файл scan.ngc в котором:
M65 P0 (отключаем компенсацию)
(Сканируем, сюда вставь цикл сканирования можно использовать параметры #1 #2 #3)
M64 P1 (делаем ресет)
G4 P4 (пауза на 4 секунды на всякий случай)
M64 P0 (включаем компенсацию)

vadim063 писал(а):5) было бы здорово, если бы панельке compensation_pyvcp.xml появилось бы EDIT поле, в котором можно было бы указать что то типа "-0.005 мм" которые бы вычитались из текущей позиции по оси Z при перемещении дремеля. Иногда о ней просто мечтаю.
Это можно, добавь в xml

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

<spinbox>
    <halpin>"additional-comp"</halpin>
    <min_>-10</min_>
    <max_>10</max_>
    <initval>0</initval>
    <resolution>0.001</resolution>
    <format>"2.5f"</format>
    <font>("Arial",20)</font>
</spinbox>
в custom_postgui.hal
меняешь
loadrt sum2 count=1
на
loadrt sum2 count=2

добавляешь
addf sum2.1 servo-thread

и меняешь
net zpos-cmd-comp sum2.0.out => stepgen.2.position-cmd
на
net zpos-cmd-comp sum2.0.out => sum2.1.in0
net zpos-add-comp pyvcp.additional-comp => sum2.1.in1
net zpos-cmd-res sum2.1.out => stepgen.2.position-cmd

Все :)
Как сделаешь вывешивай все сюда :)
ЗЫ много букаф :) Еле осилил.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Nick »

Про интерполяцию между точек - там простая билинейная интерполяция.
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]

Сообщение Алексс »

Ник, шикарный компонент!

Хочу внести рац предложения:
В компонент передавать zpos-cmd и возвращать его уже с учетом компенсации. При этом хал конфиг похудеет, уменьшится количество компонентов sum2, разгрузится servo-thread и тп...

Ну и во всех hal файлах использовать names для компонент - уменьшит креляцию с существующими конфигами и как следствие - упростится интеграция ;)
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Ответить

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