[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
Это незавершенный раздел, Вы можете помочь в его оформлении.
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Axis и все остальное работает чотко, у меня так:

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

setp hm2_7i43.0.gpio.044.is_output 0
net resume-button <= hm2_7i43.0.gpio.044.in_not
net resume-button => halui.mode.auto and2.2.in0
net is-auto halui.mode.is-auto => and2.2.in1
net resume   and2.2.out => halui.program.resume
Пока не совсем понял, что это "resume" делает.. :monkey:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Resume это продолжить, должен снимать с паузы. Т.е. сначала надо на паузу встать. Кстати можно все одной кнопкой сделать:

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

setp hm2_7i43.0.gpio.044.is_output 0
net pause-button <= hm2_7i43.0.gpio.044.in_not
net pause-button => and2.2.in0 and2.3.in0

net is-paused <= halui.program.is-paused => and.2.in1 
net is-running <= halui.program.is-running => and.3.in1 

net resume and.2.out => halui.program.resume 
net pause and.3.out => halui.program.pause
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Nick писал(а): Кстати можно все одной кнопкой сделать:
Этот вариант может не сработать, т.к. получившийся триггер без защелки за время нажатия кнопки может переключиться много раз. Тут надо переключать по фронту, а не по уровню, да и дребезг подавить не помешает..
Для одной кнопки лучше так будет наверное:

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

setp hm2_7i43.0.gpio.044.is_output 0
setp toggle.0.debounce 100
setp oneshot.0.rising 0
setp oneshot.0.falling 1
setp oneshot.0.width 0.5

net pause-button     toggle.0.in <= hm2_7i43.0.gpio.044.in_not
net resume       toggle.0.out => halui.program.resume oneshot.0.in
net pause      oneshot.0.out => halui.program.pause
У меня по такой схеме работает включение/выключение СОЖ без вопросов

PS. Проверил, то что сам написал - работает отлично, ставит на паузу, снимает с паузы... :hottabych:
Теперь надо, с твоей помощью, пошаговый режим сделать от кнопки, а также кнопкой ХОУМИТЬ ВСЕ ОСИ и можно считать, что навароченный пульт уже готов! :freak:
Последний раз редактировалось zilk 24 фев 2012, 17:45, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Очень правильное замечание! :)
Лучше в добавок проверять текущее состояние, т.е. взять твой oneshot и debaunce и применить к верхнему коду ;).
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Nick писал(а):Лучше в добавок проверять текущее состояние, т.е. взять твой oneshot и debaunce и применить к верхнему коду
Компонент toggle подавляет любой дребезг, смотри выше, я уже проверил...
Ну а текущее состояние может быть можно и не применять - если из AXIS-a тормознуть, например, то нужно всего лишь одно лишнее нажатие кнопки, а вот текущее состояние можно вывести на лампочки как индикацию.. :freak:
Последний раз редактировалось zilk 24 фев 2012, 17:53, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Я в том плане, что перед pause лучше проверить, что мы сейчас действительно is-running, а перед resume, что мы is-paused.
Или оно и так нормально работает и ошибок не выдает если мы скажем в режиме mdi?
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Nick писал(а):Или оно и так нормально работает и ошибок не выдает если мы скажем в режиме mdi?
И в MDI, и в manual работает четко в любых комбинациях.. :)

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Такой вопрос:
прописал в hal

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

net mdi halui.mode.is-mdi => pyvcp.led-01
net t1-req pyvcp.T1-button => halui.mode.mdi 
после нажатия кнопки должен переключаться режим mdi,
но этого не происходит.
halui.mode.is-mdi и соотв лед реагируют.(мол ,да,уже mdi)
Как понять "пин запрашивающий режим MDI"- то есть запрос на переключене режима и само переключение-это две большие разницы?
Или это Axis не отображает смены режима ?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

nkp писал(а):но этого не происходит.
В чем это выражается? И при каких обстоятельствах нажимается кнопка?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Я думаю axis за этим пином не следит, скорее всего F5 это внутренний хоткей axis и именно он вкладку переключает. А обратной силы наверное нет. Надо посмотреть, что там в коде...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Да, он должен переключать EMC2 в режим mdi, но axis это просто интерфейс к emc2 и он может не учитывать текущее состояние emc, на которое он не повлиял...

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

nkp писал(а):Все же не прояснил для себя- halui.mode.mdi должен переключать режим в mdi ?
У меня через halui переключаются и отображаютя в AXIS все режимы, кроме переключения вкладок.

Кстати, для тех месье, что знают толк в извращениях, представляю фрагмент hal, который позволяет одной кнопкой переключать шпиндель в режимы STOP, FORWARD, REVERSE.. :freak:

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

setp hm2_7i43.0.gpio.035.is_output 0
setp toggle.2.debounce 200
setp oneshot.2.rising 0
setp oneshot.2.falling 1
setp oneshot.2.width 0.5
setp oneshot.3.rising 0
setp oneshot.3.falling 1
setp oneshot.3.width 0.5

net spindle-btn      toggle.2.in <= hm2_7i43.0.gpio.035.in_not
net spindle-btn      =>  and2.2.in0 and2.4.in0 not.3.in
net spindle-tgl      toggle.2.out => and2.2.in1 oneshot.2.in
net spindle-not      not.3.out => and2.3.in0
net spindle-os1      oneshot.2.out => and2.3.in1 oneshot.3.in
net spindle-os2      oneshot.3.out => and2.4.in1

net spindle-stop  and2.2.out => halui.spindle.stop
net spindle-fwd   and2.3.out => halui.spindle.forward
net spindle-rev   and2.4.out => halui.spindle.reverse
Пин, на который вешается кнопка, выбирается по вкусу...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

nkp писал(а):Вкладок F3\F5
Да, кроме них. Я настроил некоторые кнопки для пульта, они все отображаются..
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение zilk »

Здравствуйте люди!

Подскажите, кто знает, как решить проблему - есть несколько конфигураций фрезерного станка и на одной из них постоянно вылазит при запуске
[ 168.795879] RTAPI: ERROR: Unexpected realtime delay on task 1
[ 168.795893] This Message will only display once per session.
[ 168.795896] Run the Latency Test and resolve before continuing.
Латенси тест дает примерно 6800 нс. при 5 запущеных glxgears и еще куче окон.
Сравнивал у этих конфигураций хал и ини буквально построчно, включал, выключал некоторые компоненты - никакого эффекта, все равно на одном выдает ошибку! :pssdoff:
Что может влиять на появление этой ошибки? Может ли влиять порядок строк загрузки компонентов loadrt, добавления функций addf или еще чего? Халы конечно не абсолютно одинаковые - тот с которым вываливается ошибка я как раз пытаюсь настраивать и с ним все работает и ошибок в процессе не появляется, только при запуске.
Перечитал весь LinuxCNC Support Forum касательно этой ошибки - ничего не помогло..
Может кто что умное еще подскажет?

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Это однозначно превышение latency.
Скинь эти конфигурции.
Принципиально, порядок добавления addf не должен сильно влиять, только если в одном случае ты будешь делать
addf servo-thread
а в другом
addf base-thread
тогда да, может быть проблема.

В общем, нужно смотреть на конфиги.

PS latency 6800 это очень мало, ты пробовал запускать другие приложения, смотреть несколько видео, копировать файлы и т.д. и еще попробуй запустить glxgears уже послед запуска latency-test. И в любом случае попробуй округлить значение latency вверх хотя бы до 10 000.
Ответить

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