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

nkp писал(а):
Ворон226 писал(а):TRUE
а вот так: True ???
А что по этому поводу пишут?

Из мануала по EMC2:

6.2 Hal Data
6.2.1 Bit
Значение bit или on, или off.

значения bit = true или 1 и false или 0 (True, TRUE, true все варианты допустимы).


Для Питона нашел только true и True, но особо синтаксис не оговаривался (в том, что я нашел).

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Ворон226 писал(а):И кто может объяснить в чём дело? Типа, не выпендривайся, а пиши прямо: нолик и единичка?
0 и 1 не всегда тоже прокатят - 0 и 1 это переменные типа int, а True и False - bool, если напишешь например 1 === True - то выйдет Ложь, при том, что 1 == True и 1===1 и True===True.

В большинстве современных языком размер (буков) имеет значение :)

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

Re: FAQ по EMC2 LinuxCNC

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

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

вот есть пара ссылок про True / False, поржать
http://bash.im/quote/268036
http://stackoverflow.com/questions/2055 ... s-i-expect
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Impartial »

Ворон226 писал(а):то не ругается и всё работает... Но мне-то нужно оперативно менять значение этого параметра! Что делать?
pin in float in1_;
pin in float in2_;
param rw float scale=1;
param rw float difference=0;

Эту строчку в драйвере нужно переписать так:
pin in float difference;

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

Re: FAQ по EMC2 LinuxCNC

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

Impartial писал(а):
Ворон226 писал(а):то не ругается и всё работает... Но мне-то нужно оперативно менять значение этого параметра! Что делать?
....
Эту строчку в драйвере нужно переписать так:
pin in float difference;

Потом подключить к нему регулятор.
Эт понятно...

Если уж одну строчку, то можно ваще всё переписать... Но ведь потом нужно переписанное "на место" положить! Научишь? Только, оттого, что я в этом вопросе чайник, мне, на первый раз, нужно прям по шагам и на русском чайниковском языке объяснить.

На сегодня прописал в пользовательском компоненте так:

pin in float in1;
pin in float scale;
pin in float difference;
pin out bit out

if 0 < in1 * scale < difference
out = 0
else
out = 1

Это, конечно, логика написанного ;)

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

Re: FAQ по EMC2 LinuxCNC

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

И вопрос в догонку:

В чем заключается глубокий смысл делать пины-параметры, а не просто пины входы и выходы? Ведь и обычному пину-входу можно присвоить некоторое значение. Например

setp motion.analog-in-00 10

Ведь должно быть объяснение тому, что придуман именно пин-ПАРАМЕТР?
Хочешь быть счастливым? Будь им!
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение Impartial »

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):мне, на первый раз, нужно прям по шагам и на русском чайниковском языке объяснить.
сам попробовал - опишу по шагам:
берем код нашего "нового" компонента
(для просмотра содержимого нажмите на ссылку)

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

component nearvrn "Determine whether two values are roughly equal.";
    pin in float in1_;
    pin in float in2_;
    pin in float difference;
    param rw float scale=1; 
    pin out bit out """
    \\fBout\\fR if their absolute difference is no greater than \\fBdifference\\fR (i.e.,
    |in1-in2| <= difference).  \\fBout\\fR is false otherwise.""";
    function _;
    license "GPL";
;;
#include "rtapi_math.h"
FUNCTION(_) {
	double in1 = in1_, in2 = in2_;
	if(in1 < 0) {
		in1 = -in1;
		in2 = -in2;
	}
	if((scale > 1 && in1/scale <= in2 && in2 <= in1*scale) || fabs(in1-in2) <= difference)
		out = 1;
	else
		out = 0;
}
и сохраняем в файл nearvrn.comp
ложим этот файл в домашнюю папку (/home/ИМЯ_ЮЗЕРА)
открываем терминал (главное меню - приложения - стандартные - терминал)
там пишем: sudo comp --install nearvrn.comp
нажимаем enter
он просит ввести пароль администратора - вводим пароль , который задавали при установке системы
(когда вводится пароль - символы в терминале не видны)
нажимаем enter
если пароль верен и ошибок в коде компонента нет - то в терминале будет выведено примерно такое:
Выделение(001).jpg (2539 просмотров) <a class='original' href='./download/file.php?id=12074&mode=view' target=_blank>Загрузить оригинал (313.34 КБ)</a>
типа , что в папке /usr/realtime-2.6.32-122-rtai/modules/linuxcnc создан компонент nearvrn.ko
проверяем - да - в означенной папке появился наш компонент:
Выделение.jpg (2539 просмотров) <a class='original' href='./download/file.php?id=12073&mode=view' target=_blank>Загрузить оригинал (425.79 КБ)</a>
теперь для проверки работоспособности загружаем его,прописывая в хал:
Выделение(003).jpg (2539 просмотров) <a class='original' href='./download/file.php?id=12076&mode=view' target=_blank>Загрузить оригинал (51.64 КБ)</a>
запускаем Lcnc- открываем halshow -и смотрим:
Выделение(002).jpg (2539 просмотров) <a class='original' href='./download/file.php?id=12075&mode=view' target=_blank>Загрузить оригинал (308.65 КБ)</a>
да - такой компонент появился - и наши изменения работают - difference теперь не параметр ,а пин.
код взял оригинальный отсюда
изменил лишь строку с difference
с кодом выше по теме не устанавливалось - были ошибки...
----------------------------
если в системе установлен не linuxcnc а emc2 - разницы не будет ,только компонент (наверно) будет лежать в папке: /usr/realtime-2.6.32-122-rtai/modules/emc2
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

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

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

Re: FAQ по EMC2 LinuxCNC

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

Сломал голову...
Линукс ругается на ошибку - ну никак не могу найти...

Может кто свежим взглядом определит?

Debug file information:
3458
PID TTY STAT TIME COMMAND
3509
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components


Понятно, что компонент не загружен, но какой??? (после обновления EMC2 до версии 2.4.6
Вложения
printer.hal
(4.51 КБ) 948 скачиваний
error.txt
(2.54 КБ) 982 скачивания
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

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

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

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

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

Re: FAQ по EMC2 LinuxCNC

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

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

Re: FAQ по EMC2 LinuxCNC

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

Подскажите: что означает:

Debug file information:
Can not find -sec TASK -var TASK_LD_PRELOAD -num 1
Can not find -sec DISPLAY -var DISPLAY_LD_PRELOAD -num 1
1393
PID TTY STAT TIME COMMAND
1464
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

Сообщение nkp »

тут вот куда смотреть надо:
Starting EMC2 DISPLAY program: axis
No option 'tto_g11' in section: 'DEFAULT'
No option 'program_alpha' in section: 'DEFAULT'
No option 'show_offsets' in section: 'DEFAULT'
Error: could not open velxml.xml !

то есть емс загружает последовательно компоненты программы и пишет в отчет
если что то не так - Error
вот в тексте и просматриваем последовательно до ошибки
у тебя начал загружаться axis и что то пошло не так....
ищи там (в ини проверь ,XML)
а еще немного подробней процесс виден - если запускать емс с терминала(иногда это очень полезно!)
и запускать с -d
то есть пишем в терминале : и далее выбираем нужную конф. как обычно
если стоит Lcnc
то пишем соответственно:

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

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

Да, говорит, что не может параметры в файле ini найти. Ищет вот это в разделе [default]
No option 'tto_g11' in section: 'DEFAULT'
No option 'program_alpha' in section: 'DEFAULT'
No option 'show_offsets' in section: 'DEFAULT'
Также не может найти xml - наверное с панелькой pyvcp?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: FAQ по EMC2 LinuxCNC

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

"Дело было не бабине..." ;)

Именно .xml

Сказывается различный синтаксис у EMC2 и Python. В velxml.xml вместо Tab использовал пробелы. И последние две строки потерял...

А беда в том, что пока не разобрался и переносом файлов с Винды на Линукс посредством флэшки. Файлы, записанные на Винде - читаются в Линуксе. Но если начинаю удалять или записывать на флэшку из Линукса - проблемы:
Линукс перестаёт читать флэшку (при чем иногда читает, иногда нет)
В Винде на флэшке появляются папки, которые имеют разрешение только на чтение...

Наверное, нужно отформатировать флэшку в формат, пригодный и Линуксу и Винде.

Читаю...

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

Re: FAQ по EMC2 LinuxCNC

Сообщение Nick »

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

Re: FAQ по EMC2 LinuxCNC

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

Вот и выясняю...
Хочешь быть счастливым? Будь им!
Ответить

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