Страница 8 из 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

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

Что с MDI сделал, чтобы заработало?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 04 фев 2012, 00:39
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

Re: FAQ по EMC2 LinuxCNC

Добавлено: 04 фев 2012, 01:57
Nick
Т.е. без constant не работает?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 04 фев 2012, 13:02
zilk
Nick писал(а):Т.е. без constant не работает?
Да, без constant не работает. По-видимому, параметр напрямую запихнуть в пин невозможно, также как и значение пина - в параметр. Вот для первого случая и есть constant, а для второго - похоже ничего нет, а очень не помешало бы чтобы не корячиться с написанием скриптов...

Re: FAQ по EMC2 LinuxCNC

Добавлено: 08 фев 2012, 05:48
roach
вопрос. почему шпиндель не останавливается при нажатии на паузу?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 08 фев 2012, 06:01
roach
roach писал(а):вопрос. почему шпиндель не останавливается при нажатии на паузу?
разобрался, можно скорость шпинделя до 0% уменьшить

Re: FAQ по EMC2 LinuxCNC

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

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

halcmd setp halui.program.pause 1
halcmd setp halui.program.stop 1
А вот снять с паузы или перезапустить программу аналогичным способом ну никак не выходит. При установке на паузу например, параметр halui.program.is-paused устанавливается в 1 и стоит мертво, пока не нажмешь соответствующую кнопку в интерфейсе программы. Отсюда еще вопрос - как продублировать кнопки интерфейса командами в терминале, на какие компоненты они завязаны? Особо интересует управление пошаговым режимом через терминал.
А то что-то не выходит каменный цветок... :freak:
Спасибо!

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 11:25
Nick
та-да :) :
halui.program.resume
halui.program.step

А зачем тебе все это через консоль?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 11:36
nkp
А как а убунте запустить скрипт без запроса системы (показать?-запустить?)
Хочу в панель под кнопки засунуть скрипы для разных задач.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 11:43
Nick
Поставь ему разрешение на выполнение. Или обзови python script.py или bash script.sh или sh bash script.sh, или поставь выполнять в терминале.

Re: FAQ по EMC2 LinuxCNC

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

PS. Запустить выполнение программы из консоли не удалось - пишет ошибку, мол, "не могу делать это (EMC_TASK_PLAN_RUN) в ручном режиме"
Запустить выполнение после паузы удается только один раз или сделать только один шаг в пошаговом, дальше только через интерфейс... :cry:

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 11:52
nkp
Во всех случаях появляется :
(для просмотра содержимого нажмите на ссылку)
1.png (3420 просмотров) <a class='original' href='./download/file.php?id=4324&mode=view' target=_blank>Загрузить оригинал (19.13 КБ)</a>
Как от него избавиться?

Re: FAQ по EMC2 LinuxCNC

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

Чтобы программы запускать без этого окна, запускай не сам программу, а сделай ярлык, который будет содержать следующую команду:
sh aaa.sh и все :).

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 12:29
nkp
Не , ну работает же :)

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 12:35
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?)
Я как раз от такого варианта и отталкивался.. :?

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 13:43
Nick
zilk писал(а):Хмм, странно.. А как же у этого товарища получилось все завести на кнопки? У него вроде все через HAL обрабатывается, никаких контроллеров..
Вопрос в том, как ты будешь кнопки компу подключать? Через mesa, через lpt, через USB? Для таких кнопок можно любой вариант сделать.
nkp писал(а):Не , ну работает же :)
Чего? :)

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 13:49
zilk
Nick писал(а):Вопрос в том, как ты будешь кнопки компу подключать? Через mesa, через lpt, через USB?
Кнопки буду через месу подключать, на втором LPT все входы забиты - там уже висит пара энкодеров и еще по мелочи, для пульта..

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 14:08
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 точно так же.

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 14:40
zilk
Что-то не совсем так.. Запускаю выполнение программы, нажимаю кнопку - выполнение останавливается, halui.mode.is-auto переходит в 0, нажимаю еще раз - дергается вперед и вываливает ошибку: "Файл закончился без знака процента или конца программы" и капец... :wtf:

Re: FAQ по EMC2 LinuxCNC

Добавлено: 24 фев 2012, 14:45
Nick
а к чему кнопка подключена? какой пин? кнопочки в Axis работают правильно?