[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
Это незавершенный раздел, Вы можете помочь в его оформлении.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

А никто не решал вопрос управления "сигнальными фонарями" станка?
Только вот стандартные "светофорики" не нравятся - некрасивые они.
Как реализовать такую идею:
К одному пину LPT-порта подключить светодиодный фонарь.
Если идёт выполнение программы - мигание с частотой 1 сек.
Если Авария или E-STOP - частое мигание - пусть 0,3 сек период
Если Пауза или Стоп - просто горит.

В принципе пины этих сигналов известны.
Можно ими управлять компонентом mux8.
Но как реализовать само мигание?
Пока лезет в голову только вариант - изучить работу с Time, или как-то использовать ШИМ...

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

вот один из многих вариантов "мигалки" :
Выделение(033).jpg (2181 просмотр) <a class='original' href='./download/file.php?id=12503&mode=view' target=_blank>Загрузить оригинал (153.99 КБ)</a>
тут первый таймер задает время свечения ,второй- время паузы
немного про ладдер
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

Спасибки - теперь ясно: откуда ноги растут у ваших "картинок" ;)

Но вот не хотелось бы изучать ещё одну прогу со своим языком для "мигалки"... Если уж припрёт - изучу. Куда я денусь? Но может есть другой вариант? Неужели в EMC нету такой возможности? Может использовать компонент FREQGEN?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):Но вот не хотелось бы изучать ещё одну прогу со своим языком для "мигалки"
поверь пока на слово - с ладдером и хал гибкость емс стремится к бесконечности
многие задачи без него описываются громоздко
Ворон226 писал(а):Неужели в EMC нету такой возможности?
почти все то же можно написать и в хал - но на ладдере это :
1.быстрее
2. удобней
3.наглядней - что немаловажно
------------
а тебе как электронщику и вообще карты в руки - это же натуральне провода и контакты :)
разберешся за полчаса
языком программирования это назвали с натяжкой - считай что это схема электроавтоматики станка
а мигалку хоть на том же питоне напиши в компоненте:
вкл - пауза по time - выкл и вё это в бесконечном цикле
можно отдельный пин на задание паузы хоть в ладдере, хоть в хал ,хоть в питоне
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

Я себе это представлял так:
Счетчик с тактовой частотой и несколькими выходами: 0, 2, 4
На mux8 на пины sel подаём сигналы halui:
halui.program.is-running - выполняется программа
halui.program.is-idle - никаких программ не выполняется
halui.estop.is-activated - E-STOP

А на входы in подаём "1", "0 генератора" и "4 генератора"

Выход mux8.out на пин выходной LPT-порта, который управляет "фонариком". Проблема только организовать два прерывистых сигнала...

(учить-то нужно... Но столько всего нужно!!! Да и хочется сделать красиво, а не кучу всяких подпрограмм и т.п. Хотя, это может мои заблуждения)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Сергей Саныч »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

набросал пример на ладдере...
в хал добавляем сам компонент ладдера и связи пинов:
loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
addf classicladder.0.refresh servo-thread
loadusr classicladder custom.clp

net is-running halui.program.is-running classicladder.0.in-01
net is-idle halui.program.is-idle classicladder.0.in-00
net is-activated halui.estop.is-activated classicladder.0.in-02

#net fire classicladder.0.out-00 parport.0.pin-09-out

(вместо 9-го пина порта какой то свободный на лампу выход)
в папку конфига сам файл ладдера:
custom.clp
(5.61 КБ) 1049 скачиваний
получаем:
https://www.youtube.com/watch?v=oXsv1ZscZHU
алгоритм немного подправить надо - потому как пауза тоже считается выполнением программы ;)
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

Во как! Спасибо!
Теперь ведь придётся разбираться ;) А как иначе?

И pwmgen посмотрю...

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

поправил алгоритм - теперь реагирует на паузу:
custom.clp
(5.62 КБ) 1052 скачивания
в хал добавить строку:
net is-paused halui.program.is-paused classicladder.0.in-03
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

Всё-таки пробую pwmgen в первую очередь...

Написал такую штуковину:
1. В .hal:

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

loadrt  pwmgen output_type=0
loadrt  mux8

addf    pwmgen.0   base-thread
addf    mux8.0   servo-thread

    setp mux8.0.in1  3
    setp mux8.0.in2  0.5
    setp mux8.0.in4  1
  
    setp pwmgen.0.scale         1
    setp pwmgen.0.pwm-freq  0
    setp pwmgen.0.enable      1

net  mux8sel0 halui.estop.is-activated     mux8.0.sel0
net  mux8sel1 halui.program.is-paused   mux8.0.sel1
net  mux8sel2 halui.program.is-running   mux8.0.sel2
net  mux8out  mux8.0.out                        pwmgen.0.valui
net  pwmout   pwmgen.0.pwm                 parport.0.pin-06-out
Линукс ругается на строку: addf pwmgen.0 base-thread
Изменил на addf pwmgen.0 servo-thread - ругается на эту же строку
Зарэмил эту строку - начал ругаться на следующую, которой упоминается pwmgen...

Что может не нравиться Линуксу? Текст ошибки прилагаю...

П.С. Да, забыл прокомментировать... Установки параметров pwmgen сделал такими, чтобы он был в режиме ЧМ (частотной модуляции), чтобы частота на выходе равнялась числу на входе (scale = 1).
Вложения
error001.txt
(3.2 КБ) 1102 скачивания
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

nkp писал(а):поправил алгоритм - теперь реагирует на паузу...
Проверил - работает. Если не разберусь с pwmgen - буду использовать твой вариант. ;)
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

может:
loadrt pwmgen output_type=0
addf pwmgen.update servo-thread
addf pwmgen.make-pulses base-thread
==============
в этой задаче генератор может оказаться предпочтительней
но ладдер - это сила вцелом :)
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

nkp писал(а):... но ладдер - это сила вцелом :)
Один из моих первых учителей на заводе конструировал автоматы на одних реле! Вот он подобные схемы рисовал ;)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

nkp писал(а):может:
loadrt pwmgen output_type=0
addf pwmgen.update servo-thread
addf pwmgen.make-pulses base-thread
Теперь ругается на
net mux8out mux8.0.out pwmgen.0.valui
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

value
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

тьфу ты... записался... ;)
Работает ;)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

И опять pwmgen...

Установил параметры:
setp pwmgen.0.scale 1 (зачем мне умножать?)
setp pwmgen.0.pwm-freq 0 (означает, что буду использовать частотную модуляцию)
setp pwmgen.0.enable 1 (тут всё понятно - пускай работает всегда!)

На вход pwmgen.0.valui подаю с выхода mux8 числа 3, 2, 1 и 0
А на выходе pwmgen.0.pwm не вижу генерации :( Только либо TRUE (когда на входе 3, 2 или 1) или FALSE (когда на входе 0).

Что не так? Может какой пин обидел или какой параметр не прописал?
(числа на вход приходят, енабль тоже)
Может pwmgen не может генерить герцы? Только килогерцы ему подавай?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Сергей Саныч »

Похоже, я малость погорячился, когда порекомендовал pwmgen - частота у него задается не входным сигналом (пином), а параметром. Но вообще-то в режиме PWM скважность определяется как
The duty cycle is calculated according to dc = (value/scale) + offset
то есть при scale=1 и offset=0, value имеет право принимать значения в пределах от 0 до 1.
Вообще, работа в режиме ЧМ (PDM) в доках описана достаточно невнятно.
Ворон226 писал(а):Может pwmgen не может генерить герцы? Только килогерцы ему подавай?
Да нет, не похоже, вот здесь http://wiki.linuxcnc.org/cgi-bin/wiki.p ... CycleTimer 1 Гц генерируют.
Последний раз редактировалось Сергей Саныч 06 мар 2013, 19:54, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Ворон226 »

Serg-tmn писал(а):Похоже, я малость погорячился, когда порекомендовал pwmgen - частота у него задается не входным сигналом (пином), а параметром...
Вообще, работа в режиме ЧМ (PDM) в доках описана достаточно невнятно.
При ЧМ частота не может задаваться параметром по определению.
А ведь у меня как-то получалось добиваться моргания на выходе - буду проверять дальше... Посмотреть нечем, кроме светодиода на выходе LPT.
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а): на выходе pwmgen.0.pwm не вижу генерации Только либо TRUE (когда на входе 3, 2 или 1) или FALSE (когда на входе 0).
это в halscope ?
Ответить

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