[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 »

zilk писал(а):Теперь бы сообразить, как быстренько сделать образ системы, пока все работает...
dd if=/dev/<название винча (например sda1)> of=/home/... все. В файле of будет образ :).
Обратно также, только в обратном порядке. Но аккуратно, чтобы не на тот винч чего-нибудь лишнего не записать :attention: !
ЗЫ чтобы было понятнее if - input file, of - output file.

Что с MDI сделал, чтобы заработало?
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Nick писал(а): Что с MDI сделал, чтобы заработало?
У меня только так заработало - это для параметров типа u32, P и Q могут иметь и дробную часть, которая игнорируется

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

#!/bin/sh

a=$1 # параметр P
b=$2 # параметр Q

halcmd setp constant.0.value $a
halcmd setp constant.1.value $b

halcmd net conv-a constant.0.out conv-float-u32.0.in
halcmd net conv-b constant.1.out conv-float-u32.1.in

a-out=$(halcmd getp conv-float-u32.0.out)
b-out=$(halcmd getp conv-float-u32.1.out)

halcmd setp <parametr-a> $a-out
halcmd setp <parametr-b> $b-out

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Т.е. без constant не работает?
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Nick писал(а):Т.е. без constant не работает?
Да, без constant не работает. По-видимому, параметр напрямую запихнуть в пин невозможно, также как и значение пина - в параметр. Вот для первого случая и есть constant, а для второго - похоже ничего нет, а очень не помешало бы чтобы не корячиться с написанием скриптов...
Аватара пользователя
roach
Мастер
Сообщения: 205
Зарегистрирован: 01 июн 2011, 07:55
Репутация: 0
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение roach »

вопрос. почему шпиндель не останавливается при нажатии на паузу?
Аватара пользователя
roach
Мастер
Сообщения: 205
Зарегистрирован: 01 июн 2011, 07:55
Репутация: 0
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение roach »

roach писал(а):вопрос. почему шпиндель не останавливается при нажатии на паузу?
разобрался, можно скорость шпинделя до 0% уменьшить
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Здравствуйте все!
В процессе допиливания конфигурации до нужной кондиции возник ворос: как из терминала можно снять с паузы или запустить автоматическое выполнение программы?
Остановка или пауза без проблем выполняется командой типа

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

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

та-да :) :
halui.program.resume
halui.program.step

А зачем тебе все это через консоль?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Поставь ему разрешение на выполнение. Или обзови python script.py или bash script.sh или sh bash script.sh, или поставь выполнять в терминале.
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Nick писал(а):А зачем тебе все это через консоль?
Ну оно не то чтобы через консоль надо - просто хочу вывести все это через железные кнопки на своем навороченном пульте, но пока не знаю как, потому и начал издалека... :freak:
Вот еще кто бы на пальцах объяснил, как к кнопке прикрутить команду хомления всех осей.. :cry:

PS. Запустить выполнение программы из консоли не удалось - пишет ошибку, мол, "не могу делать это (EMC_TASK_PLAN_RUN) в ручном режиме"
Запустить выполнение после паузы удается только один раз или сделать только один шаг в пошаговом, дальше только через интерфейс... :cry:
Последний раз редактировалось zilk 24 фев 2012, 12:04, всего редактировалось 1 раз.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

zilk писал(а):Ну оно не то чтобы через консоль надо - просто хочу вывести все это через железные кнопки на своем навороченном пульте, но пока не знаю как, потому и начал издалека...
Кнопки можно как пины завести? Какой у них будет контроллер?
Да, запустить программу из ручного режима нельзя, для этого нужно перейти в режим auto.
halui.mode.auto
Проверить можно так:
halui.mode.is-auto

Чтобы программы запускать без этого окна, запускай не сам программу, а сделай ярлык, который будет содержать следующую команду:
sh aaa.sh и все :).
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Не , ну работает же :)
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Хмм, странно.. А как же у этого товарища получилось все завести на кнопки? У него вроде все через HAL обрабатывается, никаких контроллеров.. http://www.anderswallin.net/2006/11/jogging-emc2/
4 Pushbuttons: These pushbuttons control coolant on/off (blue, m5i20.0.in-06), spindle on/off (yellow, m5i20.0.in-XX?), and program execution (red=pause m5i20.0.in-XX?, green=play/step m5i20.0.in-XX?)
Я как раз от такого варианта и отталкивался.. :?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

zilk писал(а):Хмм, странно.. А как же у этого товарища получилось все завести на кнопки? У него вроде все через HAL обрабатывается, никаких контроллеров..
Вопрос в том, как ты будешь кнопки компу подключать? Через mesa, через lpt, через USB? Для таких кнопок можно любой вариант сделать.
nkp писал(а):Не , ну работает же :)
Чего? :)
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Ну тогда:

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

net resume-button <= mesa<...>-in 
net resume-button => halui.mode.auto
net resume-button => and.0.in0
net is-auto halui.mode.is-auto => and.0.in1
net resume <= and.0.out 
net resume => halui.program.resume
Т.е. мы сначала ставим режим auto, и потом как только встанет на auto и кнопка нажата запускаем программу.
С halui.program.step точно так же.
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

а к чему кнопка подключена? какой пин? кнопочки в Axis работают правильно?
Ответить

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