[WIKI] FAQ по EMC2 LinuxCNC

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

[WIKI] FAQ по EMC2 LinuxCNC

Сообщение Nick »

FAQ переехал в wiki: FAQ по LinuxCNC
Вы можете помочь нам в оформлении статьи. Для внесения изменений надо залогинится в вики (логин и пароль такие же, как на форуме).
Как внести изменения в статью в wiki
(для просмотра содержимого нажмите на ссылку)
Q: EMC2 выдает такую ошибку: "Unexpected realtime delay: chek dmesg for details.". Что делать?
A: Это означает, что один из интервалов задержки стал больше Base period. Нужно увеличить base period в настройках EMC2. Запустите Приложения -> EMC2 -> Latеncy Test, попробуйте нагрузить компьютер, откройте несколько окон веб-браузера, запустите фильм, поставьте копироваться большой файл, по-перемещайте окна по экрану. После всего этого смотрим в окно Latency Test и запоминаем параметр Max Jitter для Base thread (если вы используете серво двигатели, Вам понадобятся оба параметра). Запускаем Приложения -> EMC2 -> Stepconf и в окне настройки конфигурации указываем Base period Maximum Jitter.

Q: При выполнении поиска начал осей (homing) EMC2 выдает ошибку "joint limit error"
A: Наверняка Вы используете в качестве датчика начала (home) один из концевых переключателей оси. Для корректного выполнения поиска в этом случае нужно:
  • Чтобы Home Location не было равно Home Switch Location. Т.к. после процедуры поиска начала станок остановится в положении Home Location, и оно не должно вызывать срабатывания концевого датчика оси.
  • Чтобы в конфигурационном файле в разделе описания оси присутствовала строчка "HOME_IGNORE_LIMITS = YES".
Q: Как запустить станок избегая процедуру поиска начал (homing)? Возникает ошибка: "Не могу исполнить программу если не найдены начала" ("Can't run a program when not homed").
A: EMC2 отказывается выполнять программы до тех пор пока не найдены начала осей потому, что EMC2 должен точно знать в каком положении находится станок, чтобы не дать ему выехать за пределы осей. Настоятельно рекомендую установить концевики и делать поиск нулей при каждом запуске EMC2 (при наличии концевиков это делается нажатием одной клавиши). Если концевиков нет, начала оси можно выставлять вручную.

Если совсем не хочется выставлять начала, то можно в файле конфигурации в раздел [TRAJ] нужно добавить строчку: "NO_FORCE_HOMING = 1" и EMC2 не будет выдавать эту ошибку. Но в этом случае нужно быть особенно внимательным следя за работой станка, т.к. EMC2 не сможет контролировать пределы осей и появится вероятность их превышения, что может привести к поломке станка :attention:!

Q: LinuxCNC не запускается, выдает ошибку RTAI[hal]: ERROR, LOCAL APIC CONFIGURED BUT NOT AVAILABLE/ENABLED.
A: Проблема с установкой EMC2 #48
Это незавершенный раздел, Вы можете помочь в его оформлении.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

ну тогда 1 во все пины :).
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение galexey »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

А что именно интересует?

Обычно все выглядит так: у компонента encoder есть пин index-enable, если этот пин выставить в 1, то при следующем сигнале на
encoder.N.phase-Z значения пинов encoder.N.counts и encoder.N.position будут скинуты в 0.

Также можно сначала искать 0 по датчику, а потом уточнять его по индексной метке.
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение galexey »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Да, по идее так и должно получиться. (только можно не просто остановился, а поехал в нужное место)
Можно датчик + энкодер - сначала до датчика (чтобы сначала с точностью до оборота вручную не выставлять), а потом по метке обнуляемся.

Картинки 3 и 4.
emc2-motion-homing-diag.png (4767 просмотров) <a class='original' href='./download/file.php?id=6606&mode=view' target=_blank>Загрузить оригинал (70.02 КБ)</a>
PS http://www.linuxcnc.org/docs/2.4/html/c ... tml#r0_1_2
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение galexey »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Ты вот эту табличку видел:
SEARCH_VELLATCH_VELUSE_INDEXHoming Type
nonzerononzeroNOSwitch-only
nonzerononzeroYESSwitch + Index
0nonzeroYESIndex-only
00NONone
Other combinationsError
Т.е. если поставишь
SEARCH_VEL = 0
LATCH_VEL = 10
USE_INDEX = YES
то ось обнулится просто по первому индексу.
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение galexey »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

galexey писал(а): то как по сигналу индекса он доеедет до нужного положения
Никак. Скажет что "дома" на первом импульсе индекса.
Ну точнее, скажет дом, выставит значение оси HOME_OFFSET, и поедет в положение HOME.
Поэтому дополнительный концевик и нужен. Или по крайней мере желателен.
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение galexey »

Спасибо за разъяснение.
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение galexey »

Поставил концевики на ось Х. Хочу чтобы они были и лимитами и домом. В hal.ini прописано
# --- MIN-HOME-X ---
net min-home-x <= hm2_5i20.0.gpio.051.in
# --- MAX-X ---
net max-x <= hm2_5i20.0.gpio.052.in

# ---setup home / limit switch signals---

net min-home-x => axis.0.home-sw-in
net min-home-x => axis.0.neg-lim-sw-in
net max-x => axis.0.pos-lim-sw-in

в ini
HOME_IGNORE_LIMITS = YES

Но при поиске дома станок едет до концевика, наезжает на него, затем начинает отъезжать и выдает ошибку joint 0 on limit switch error
Если концевик оставить только домом, то все нормально.
Nick писал(а):Чтобы Home Location не было равно Home Switch Location. Т.к. после процедуры поиска начала станок остановится в положении Home Location, и оно не должно вызывать срабатывания концевого датчика оси.
А где это нужно прописывать?
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение galexey »

Похоже нашел
HOME_OFFSET = -1.000000
Правильно?
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

Re: FAQ по EMC2 LinuxCNC

Сообщение aegis »

подскажите есть ли вариант выставления шага подач в ручном режиме с теми значениями которые я сам захочу? ато если упустить мелочь то там выставляется все дискретно 2-6-12-21-34-50-69-91...
конкретно в моем случае не хватает 40,,45 или около того. просто двигая верхний ползунок изменения подачи меняется также и холостая (я ставлю 50, потом сбавляю до 40 примерно этим ползунком)
в ини файле находил только дискретность перемещений, но это с другой оперы
нікому нічого не нав'язую.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

galexey писал(а):Похоже нашелHOME_OFFSET = -1.000000Правильно?
Абсолютно! :) Просто после нахождения нуля надо не забыть с концевика съехать ;).
aegis писал(а):конкретно в моем случае не хватает 40,,45 или около того. просто двигая верхний ползунок изменения подачи меняется также и холостая (я ставлю 50, потом сбавляю до 40 примерно этим ползунком)
Ты что резьбы режешь в ручном перемещении? :)

Можно сделать панель pyvcp в ней сделать элемент spinbox (http://linuxcnc.org/docs/html/hal/pyvcp ... ber_inputs) и завести его на halui.jog-speed. Так подойдет?
Если будут вопросы пиши, панельку тебе нарисуем :)
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

Re: FAQ по EMC2 LinuxCNC

Сообщение aegis »

Nick, не, заготовку отрезаю дисковой фрезой. фреза на оправке в шпинделе, заготовка на супорте... позже попробую, так как сейчас надо работать, но похоже это то что надо
нікому нічого не нав'язую.
glaz
Кандидат
Сообщения: 57
Зарегистрирован: 06 фев 2012, 13:02
Репутация: 7
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение glaz »

Возник вопрос как уменьшить latency (BASE_PERIOD),
задержка прыгала до 500 000 при запуске некоторых приложений
удалось победить заменой видеодравера на Vesa

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

gksu gedit /etc/X11/xorg.conf
Section "Device"
...
Driver "vesa"
EndSection

потом перезагрузка, желательно сделать бекап файла xorg.conf перед его изменением

ЗЫ: http://wiki.linuxcnc.org/cgi-bin/wiki.p ... leShooting


И еще если время задержки прыгает раз в минуту то есть вероятность проблемы со SMI
в таком случае надо прописать загрузку модуля rtai_smi.ko в rtapi.conf

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

gksu gedit /etc/linuxcnc/rtapi.conf 
..
MODULES="adeos rtai_hal rtai_ksched rtai_fifos rtai_shm rtai_sem rtai_math rtai_smi"
RTAI=3
MODPATH_adeos=
..
MODPATH_rtai_smi=/usr/realtime-$(uname -r)/modules/rtai_smi.ko
..


http://wiki.linuxcnc.org/cgi-bin/wiki.p ... gSMIIssues


В результате этих изменений задержка упала ниже 9000 ns.
Последний раз редактировалось glaz 08 сен 2012, 22:35, всего редактировалось 1 раз.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение PKM »

glaz, на какой мат.плате?
glaz
Кандидат
Сообщения: 57
Зарегистрирован: 06 фев 2012, 13:02
Репутация: 7
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение glaz »

ASUS P5G41

отключение C1E, ACPI в биос не помогали.


ЗЫ: Рано обрадовался.. тест то проходит теперь отлично но при запуске станка вываливается ошибка сегментации..

В конце концов заработало как надо с таким файлом и удаленным видеодрайвером fglrx (ATI):

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

cat /etc/X11/xorg.conf
Section "Device"
Identifier "Configured Video Device"
Driver "vesa"
EndSection

Section "Monitor"
Identifier "Configured Monitor"
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection


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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

glaz писал(а):ЗЫ: Рано обрадовался.. тест то проходит теперь отлично но при запуске станка вываливается ошибка сегментации..
Это из-за трехмерное визуализации. Вообще можно использовать интерфейсы без нее или использовать программную реализацию OpenGL, для этого понадобится пакет: sudo apt-get install libgl1-mesa-swx11
или использовать: LIBGL_ALWAYS_SOFTWARE=1, но этот способ у меня вроде не срабатывал...
galexey
Опытный
Сообщения: 104
Зарегистрирован: 01 апр 2012, 21:35
Репутация: 9
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение galexey »

Есть фрезер у которого по оси z двигается стол, а шпиндель двигается по оси y. CAM программы генерят код, в которых шпиндель находится на оси z . Из-за этого мне пришлось инвертировать ось z, что не очень удобно. Т.е к примеру при z50 стол едет вниз, а при z-50 вверх к шпинделю. Как поправить постпроцессор я пока не знаю. Подскажите как правильно сделать, чтобы ось двигалась по нормальному, т.е. + вверх, - вниз и при этом не трогать CAM программу.
Ответить

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