[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
Это незавершенный раздел, Вы можете помочь в его оформлении.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

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

Подробнее...

Станок отрабатывает прорисовку контура. Перед последним сегментом контура прописываем (в g-кодах) разрешение на опрос motion.distance-to-go - думаю это делать путем перемножения (mult2) с motion.analog-out-00 (его и буду прописывать в единицу из нуля). Выход mult2.out направляю на вход near.0.in1, где он (по сути значение motion.distance-to-go - ведь motion.analog-out-00 равен 1) сравнивается со значением "ползунка" (значение "ползунка" подаём на near.0.difference). При совпадении значений на выходе near.0.out появляется значение FALSE.

Выход near.0.out в подпрограмме vel умножается с несколькими значениями для получения скорости насоса. Т.е. при срабатывании near.0.out в ноль - насос остановится и контур дорисуется без вращения насоса.

По окончании контура (а мы были на последнем его сегменте) - motion.analog-out-00 перебрасываем в ноль - motion.distance-to-go блокируется.

Так я собираюсь оперативно, в процессе прорисовки контуров "ползунком" подобрать нужное значение остатка траектории для выключения насоса, которое затем тупо прописывать в hal-е без "ползунков", и прочих сложностей...

Если near.N.out bit out , то значит ли это, что нужно просто в подпрограмме прописать

h.newpin("upr", hal.HAL_BIT, hal.HAL_IN)

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):сли near.N.out bit out , то значит ли это, что нужно просто в подпрограмме прописать .....
да -можно и так.
а если near.N.out сразу на stepgen.3.enable
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

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

Вариант.

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

Re: FAQ по EMC2 LinuxCNC

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

nkp писал(а):
Ворон226 писал(а):сли near.N.out bit out , то значит ли это, что нужно просто в подпрограмме прописать .....
да -можно и так.
а если near.N.out сразу на stepgen.3.enable
Т.е. если near.N.out FALSE, то stepgen.3.enable остановит насос.
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

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

Сделал так

setp stepgen.3.enable near.0.out

А точно в custom_postgui.hal нужно писать

net pyvcp2 near.0.difference pyvcp.dist-f

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

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

А мне казалось, что параметры устанавливаются. Значит УСТАНАВЛИВАЮТСЯ, если ЗНАЧЕНИЕ (число, например), а если ПИН, то СОЗДАЁМ связи. Так?

А точно в custom_postgui.hal нужно писать

net pyvcp2 near.0.difference pyvcp.dist-f

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):А точно в custom_postgui.hal нужно писатьnet pyvcp2 near.0.difference pyvcp.dist-f???
здесь если прописать в основной хал - то возможна ошибка:
gui еще не готов - хал читает пин pyvcp.dist-f - а его как бы нет еще
а так custom_postgui.hal загружает компоненты и связи только после gui
зы
сумбурно как то написал ;)
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

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

Загрузил и

111.hal:1: Warning: File contains DOS-style line endings.
111.hal:131: value 'motion.distance-to-go' invalid for float
111.hal:131: setp failed


Неужели я был прав?

setp stepgen.3.enable near.0.out ???

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

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

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

Re: FAQ по EMC2 LinuxCNC

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

Похоже ошибка-то в том, что я написал:

setp mult2.0.in0 motion.distance-to-go
setp mult2.0.in1 motion.analog-out-00

а нужно

net multin1 mult2.0.in0 motion.distance-to-go
net multin2 mult2.0.in1 motion.analog-out-00

Об этом и написано:

111.hal:1: Warning: File contains DOS-style line endings.
111.hal:131: value 'motion.distance-to-go' invalid for float - инвалидная переменная!
111.hal:131: setp failed - ошибочное применение setp!!!
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

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

Проверил на станке:

111.hal:1: Warning: file contains DOS-style line endings
111.hal:134: pin 'mult2.out' does not exist
2536
PID TTY STAT TIME COMMAND


134 СТРОКА - это

net multout mult2.out near.0.in1

А вот и ошибка: не mult2.out , а mult2.0.out!


Но это ещё не всё...

Далее получаю следующую ошибку:

Warning: file contains DOS-style line endings
custom_postgui.hal:4: pin 'near.0.difference' does not exist
2753
PID TTY STAT TIME COMMAND
2805
PID TTY STAT TIME COMMAND


4 строка custom_postgui.hal:

net pyvcp2 near.0.difference pyvcp.dist-f

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

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

"Попробовать" смогу только после обеда... ;)

Но вот я почитал про NEAR поподробнее...

Может организовать лучше всего так?

На near.0.in1 подать motion.distance-to-go
На near.0.in2 подать с "ползунка"
А near.0.difference оставить в покое, ведь он по умолчанию =0

Тогда при совпадении motion.distance-to-go и значения "ползунка" получим на выходе near.0.out битовое значение, которое направим на stepgen.3.enable

Остаётся вопрос:

КАК организовать передачу значения "ползунка" на пин near.0.in2 ??? (что-то я никак не просеку логику)

В custom_postgui.hal:

net pyvcp2 near.0.in2 pyvcp.dist-f ??? И этого будет достаточно?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):net pyvcp2 near.0.in2 pyvcp.dist-f ??? И этого будет достаточно?
да
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

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

Непростая это "штучка" - NEAR!

NEAR определяет, являются ли два значения примерно равны...
Имеет два входа. три пина, описаны два параметра.
С пинами всё понятно: два входных (in1 и in2) типа float и один выходной (out) типа bit
Два параметра: Scale и Difference
Если модуль разницы in1-in2 <= Difference или in1/scale <= in2 <= in1*scale , то на выходу out устанавливается значение TRUE (единица).

И, всё таки, для реализации моей задачи нужно, каким-то образом, задавать параметр Difference с помощью "ползунка" панели. Когда это делаю так:

net pyvcp2 near.0.difference pyvcp.dist-f

Линукс ругается - pin 'near.0.difference' does not exist!!!

Если значение near.0.difference задавать просто:

setp near.0.difference 10

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):Но мне-то нужно оперативно менять значение этого параметра! Что делать?
если не получается с стандартным NEAR - то написать свой компонент,выполняющий подобную функцию
там и difference будет работать как хочеться ;)
если не получиться- пиши- поможем :)
Ответить

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