Страница 15 из 48

[WIKI] FAQ по EMC2 LinuxCNC

Добавлено: 25 окт 2010, 09:53
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
Это незавершенный раздел, Вы можете помочь в его оформлении.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 25 июн 2012, 14:45
Nick
ну тогда 1 во все пины :).

Re: FAQ по EMC2 LinuxCNC

Добавлено: 20 июл 2012, 10:04
galexey
Подскажите, как работает хоуминг по индексу энкодера?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 20 июл 2012, 10:07
Nick
А что именно интересует?

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

Также можно сначала искать 0 по датчику, а потом уточнять его по индексной метке.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 20 июл 2012, 10:54
galexey
Ну с концевиком все понятно. Включили станок, нажали на поиск начала. Станок едет пока не замкнет концевик. А с индексом энкодера не понимаю. Включили станок, нажали на поиск начала. Станок едет, энкодер на оси сделал полный оборот, индекс появился, счетчик энкодера сбросился и станок остановился?

Re: FAQ по EMC2 LinuxCNC

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

Картинки 3 и 4.
emc2-motion-homing-diag.png (4772 просмотра) <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

Re: FAQ по EMC2 LinuxCNC

Добавлено: 20 июл 2012, 12:28
galexey
Все равно не понимаю. Станок стоит в неопределенной позиции. С этой позиции он доедет до концевика и это и будет его дом и координаты обнулятся. А если нет концевика, как можно используя только индекс энкодера приехать в дом?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 20 июл 2012, 13:04
Nick
Ты вот эту табличку видел:
SEARCH_VELLATCH_VELUSE_INDEXHoming Type
nonzerononzeroNOSwitch-only
nonzerononzeroYESSwitch + Index
0nonzeroYESIndex-only
00NONone
Other combinationsError
Т.е. если поставишь
SEARCH_VEL = 0
LATCH_VEL = 10
USE_INDEX = YES
то ось обнулится просто по первому индексу.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 20 июл 2012, 13:40
galexey
Ну ось то обнулится, но это же не говорит о том что мы приехали в дом? Если станок в неопределенном положении по включению и ехать ему далеко, то как по сигналу индекса он доеедет до нужного положения? С концевиком все понятно, едем пока не упремся.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 20 июл 2012, 14:53
Nick
galexey писал(а): то как по сигналу индекса он доеедет до нужного положения
Никак. Скажет что "дома" на первом импульсе индекса.
Ну точнее, скажет дом, выставит значение оси HOME_OFFSET, и поедет в положение HOME.
Поэтому дополнительный концевик и нужен. Или по крайней мере желателен.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 20 июл 2012, 15:13
galexey
Спасибо за разъяснение.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 июл 2012, 20:07
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, и оно не должно вызывать срабатывания концевого датчика оси.
А где это нужно прописывать?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 июл 2012, 20:17
galexey
Похоже нашел
HOME_OFFSET = -1.000000
Правильно?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 июл 2012, 22:53
aegis
подскажите есть ли вариант выставления шага подач в ручном режиме с теми значениями которые я сам захочу? ато если упустить мелочь то там выставляется все дискретно 2-6-12-21-34-50-69-91...
конкретно в моем случае не хватает 40,,45 или около того. просто двигая верхний ползунок изменения подачи меняется также и холостая (я ставлю 50, потом сбавляю до 40 примерно этим ползунком)
в ини файле находил только дискретность перемещений, но это с другой оперы

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 июл 2012, 23:41
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. Так подойдет?
Если будут вопросы пиши, панельку тебе нарисуем :)

Re: FAQ по EMC2 LinuxCNC

Добавлено: 26 июл 2012, 18:16
aegis
Nick, не, заготовку отрезаю дисковой фрезой. фреза на оправке в шпинделе, заготовка на супорте... позже попробую, так как сейчас надо работать, но похоже это то что надо

Re: FAQ по EMC2 LinuxCNC

Добавлено: 08 сен 2012, 22:19
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.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 08 сен 2012, 22:34
PKM
glaz, на какой мат.плате?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 08 сен 2012, 22:37
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.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 17 сен 2012, 13:48
Nick
glaz писал(а):ЗЫ: Рано обрадовался.. тест то проходит теперь отлично но при запуске станка вываливается ошибка сегментации..
Это из-за трехмерное визуализации. Вообще можно использовать интерфейсы без нее или использовать программную реализацию OpenGL, для этого понадобится пакет: sudo apt-get install libgl1-mesa-swx11
или использовать: LIBGL_ALWAYS_SOFTWARE=1, но этот способ у меня вроде не срабатывал...

Re: FAQ по EMC2 LinuxCNC

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