Конфигурация EMC2 LinuxCNC

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

Конфигурация EMC2 LinuxCNC

Сообщение Nick »

После того как Вы произвели установку EMC2, можно переходить к конфигурации.
Начнем с простого пути, использования утилиты Stepconf. Sterconf это графическая утилита для настройки EMC2 для различных станков. Конечно она не реализует все возможности EMC2, но подойдет для большинства станков со step-dir контроллерами управляемыми через lpt порт. Stepconf устанавливается вместе с EMC2 и его можно запустить из меню Приложения -> EMC2 -> Stepconf.
Это незавершенный раздел, Вы можете помочь в его оформлении.
Нужны исправления, комментарии. Публикуйте их в этой теме.

Содержание


Настройка EMC2 (338082 просмотра) <a class='original' href='./download/file.php?id=781&mode=view' target=_blank>Загрузить оригинал (41.24 КБ)</a>
Настройка EMC2
Конфигурация ЕМС2 (338082 просмотра) <a class='original' href='./download/file.php?id=780&mode=view' target=_blank>Загрузить оригинал (44.23 КБ)</a>
Конфигурация ЕМС2

Выбор конфигурации

В первом окне Stepconf есть выбор: создать новую конфигурацию или изменить старую. Выбираем создать новую. Также можно проставить галки напротив Create shortcut, чтобы в последствии запускать EMC2 с созданной конфигурацией в один клик.

Screenshot-EMC2 Stepper Mill Configuration-2.png (338082 просмотра) <a class='original' href='./download/file.php?id=782&mode=view' target=_blank>Загрузить оригинал (95.31 КБ)</a>

Параметры станка, контроллера и быстродействия

Настройки станка
Вводим название станка, в документации говорится, что можно использовать заглавные и строчные буквы, цифры и знаки "-" и "_".
Выбираем конфигурацию осей. XYZ (Фрезер), XYZA (4-х осевой фрезер) или XZ (Токарный станок). Названия только для примера. Если у Вас двух осевой станок, то можете выбрать XYZ, и ось Z оставить не настроенной.
Единицы измерения станка: дюймы или миллиметры.

Настройки контроллера
Можно выбрать из набора предустановленных параметров если Ваш контроллер в список. Или настроить все самому.
Параметры Step time, Step space, Direction hold, Direction setup смотрите в документации к вашему контроллеру.

Настройки lpt
Если у Вас только один lpt, то можно ничего не трогать по умолчанию стоит установка стандартного адреса lpt порта.

Настройки быстродействия
Base period - это одна из основных величин быстродействия, она определяет максимальную скорость работы с контроллером. Она определяет так называемый heartbeat (сердцебиение системы в целом) от которого зависит время для генерации сингала Step. Фактически, чем меньше base period тем больше максимальная частота генерации шагов (например, при Base period = 30 000 ns максимальная частота генерации шагов равна 33333Гц, что при 200 шагах на оборот в режиме микрошага 1:8 дает максимум 20 оборотов в секунду).

Base period зависит от параметров компьютера. Правильно определить base period можно при помощи утилиты Latency test, она тоже входит в состав EMC2. Latency это задержка с которой компьютер может остановить процесс работы для обработки внешнего запроса. В нашем случае, запросом является периодичный "heartbeat" (стук сердца) на основе которого вычисляется нужное время для следующего шага. Для того, чтобы контроллер работал правильно и не пропускал шаги минимальный base period должен быть равным длительность direction setup+direction hold+step space+maximum latency.

Итак, запускаем Latency test, и пытаемся нагрузить компьютер разными задачами, чтобы наверняка получить максимальную задержку. Можно запустить проигрываться фильм, полазить по интернету, скопировать большой файл, перемещать окна. Через несколько минут смотрим значение Base thread Max jitter (максимальное дрожание base period) и вставляем это значение в соответствующую строку в Stepconf.

Onscreen prompt for tool change - уведомление о смене инструмента. Если эта опция включена, то EMC2 будет останавливаться и выдавать сообщение о смене инструмента, каждый раз, когда в управляющей программе будет встречаться код M6. Оставьте эту опцию включенной, только если Вы не собираетесь делать автоматическую смену инструмента.

Настройка LPT для EMC2 (338082 просмотра) <a class='original' href='./download/file.php?id=783&mode=view' target=_blank>Загрузить оригинал (99.1 КБ)</a>
Настройка LPT для EMC2
Настройка LPT для EMC2 (338082 просмотра) <a class='original' href='./download/file.php?id=784&mode=view' target=_blank>Загрузить оригинал (88.29 КБ)</a>
Настройка LPT для EMC2

Настройки пинов LPT

На этой странице мы можем настроить значения всех пинов параллельного порта.
Значения для этих настроек смотрите в документации к контроллеру.

Настройка осей станка в EMC2 LinuxCNC (338082 просмотра) <a class='original' href='./download/file.php?id=785&mode=view' target=_blank>Загрузить оригинал (66.88 КБ)</a>
Настройка осей станка в EMC2 LinuxCNC
Проверка настроек осей LinuxCNC (338082 просмотра) <a class='original' href='./download/file.php?id=786&mode=view' target=_blank>Загрузить оригинал (21.23 КБ)</a>
Проверка настроек осей LinuxCNC

Настройка осей станка

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

Motor Steps Per Revolution - количество шагов двигателя на один оборот.

Driver Microstepping - настройка микрошага контроллера. Для микрошага 1:8 устанавливайте "8"

Pulley Ratio - значение редуктора, если между валом двигателя и ходовым винтом стоит редуктор установите передаточное число.

Leadscrew Pitch - шаг ходового винта. Можно поменять направление движения вдоль оси установив отрицательное значение шага винта.

Maximum Velocity - Максимальная скорость перемещения.

Maximum Acceleration - Максимальное ускорение по данной оси.

Home Location - положение начала оси. Это положение в котором станок остановится после поиска начала.

Table Travel - границы оси. Положение начала должно быть внутри table travel, причем оно не должно совпадать с границами оси.

Home Switch Location - Положение концевика начального положения. Если у Вас совмещены home switch и limit switch в одном концевике, то значение home location не должно быть равным home switch location иначе появится ошибка "joint limit error", т.е. станок не должен остановиться в точке срабатывания ограничительного концевика.

Home Search Velocity - скорость поиска начала оси. Если концевой датчик расположен рядом с концом оси это значение должно быть выбрано с учетом того, что станок должен будет успеть остановиться до того как он ударится о конец оси. Если концевик замыкается только когда ответная часть рядом с ним, то скорость должна быть выбрана таким образом, чтобы станок успел остановиться пока концевик не разомкнулся. Если станок движется в противоположную сторону от концевика при поиске начала установите отрицательную скорость.

Home Latch Direction - направление уточнения начала, после первоначальной установки начала, они уточняются на очень маленькой скорости. Если выбрана опция "Same" при повторном срабатывании концевика начала будут установлены, если "Opposite" станок будет медленно откатываться пока концевик не разомкнется.

Ниже будут приведены вычисления параметров оси:
  • Time to accelerate to max speed - время ускорения до максимальной скорости (время остановки)
  • Distance to accelerate to max speed - дистанция ускорения до максимальной скорости (дистанция остановки)
  • Pulse rate at max speed - частота сигналов на максимальной скорости
  • Axis SCALE - количество шагов в одной единице измерения шагов/мм (шагов/дюйм)
После введения всех параметров ось можно протестировать. Для этого нажимаем Test this axis.

Настройка управления шпинделем в EMC2 (338082 просмотра) <a class='original' href='./download/file.php?id=787&mode=view' target=_blank>Загрузить оригинал (32.67 КБ)</a>
Настройка управления шпинделем в EMC2

Настройка шпинделя

Если шпиндель регулируется при помощи ШИМ:
Устанавливаем Carrier frequency (Несущая частота) согласно инструкции к Вашему контроллеру шпинделя.
Устанавливаем Speed 1, Speed 2, PWM 1, PWM 2 - значения скоростей в оборотах в минуту при заданном значении ШИМ. Эту информацию можно найти в инструкции к Вашему контроллеру, либо попробовать определить самостоятельно. Этими параметрами определяется линейная зависимость скорости шпинделя от значения PWM.

Дополнительные настройки EMC2 (338082 просмотра) <a class='original' href='./download/file.php?id=788&mode=view' target=_blank>Загрузить оригинал (70.45 КБ)</a>
Дополнительные настройки EMC2

Настройка дополнительного интерфейса

  • Include Halui - Добавить пользовательскую панель Halui.
  • Include PyVCP GUI panel - Добавить панель pyVCP.
    См. статью по настройке и применению pyVCP в EMC2
  • Include ClassicLadder PLC - Добавить программируемый контроллер на лестничной логике (Programmable Ladder Logic Controller).

Окончание настройки EMC2 (338082 просмотра) <a class='original' href='./download/file.php?id=789&mode=view' target=_blank>Загрузить оригинал (74.23 КБ)</a>
Окончание настройки EMC2

Заключение


См. также

Нахождение максимальной скорости и ускорения станка
PyVCP дополнительный интерфейс для EMC2 LinuxCNC
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Serg »

Для Homing'а точность не помешает, хотя для сервоприводов с индексной меткой это не принципиально.
Обычные, не очень паршивые микрики довольно точны...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение NightV »

UAVpilot писал(а):Для Homing'а точность не помешает
toweroff, UAVpilot имеет ввиду что с шаговиками очень даже желательно, ладно если одну детальку "отфоумился > отбил ноль инструмента > детальки > вырезал" а вот если партия (или нужно добивать детальку с утра) то ноль после каждого фоуминга будет разный, тоесть будет плавать +\-
Всё просто! если знаешь КАК!
toweroff
Кандидат
Сообщения: 40
Зарегистрирован: 28 янв 2014, 12:18
Репутация: 1
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение toweroff »

Вы неправильно поняли :)
Именно для Homing будет использоваться оптопара RPI-1133 (+ доп.схема, т.к. у моего CNC-3020 замыкание происходит к +5в -- китайцы на высоте). У нее паспортная точность по графикам около 0.05мм, для меня вполне достаточно
А вот ограничительного концевика для Z в виде микрика, думаю, будет также достаточно. Точность по оси ведь все равно будет плясать от эталонного датчика высоты, а не от лимитного
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение NightV »

toweroff писал(а):А вот ограничительного концевика для Z в виде микрика
всмысле как лимит в минус (вниз), или лимит вверх, после оптопары? если так то конечно пойдет, и вообще не понял зачем лимиту точность :thinking:
Всё просто! если знаешь КАК!
toweroff
Кандидат
Сообщения: 40
Зарегистрирован: 28 янв 2014, 12:18
Репутация: 1
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение toweroff »

NightV писал(а):
toweroff писал(а):А вот ограничительного концевика для Z в виде микрика
всмысле как лимит в минус (вниз), или лимит вверх, после оптопары? если так то конечно пойдет, и вообще не понял зачем лимиту точность :thinking:
лимит вверх, конечно. Оптопары, скорее всего, не будет. Ее точность там не нужна, да и конструктив такой, что крепить проблематично. Микрик подойдет идеально, нужно только для крепежа найти метчик М2
Я как доделаю, размещу где-нибудь здесь отчет, может пригодится кому
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Nick »

главное, чтобы его хода после замыкания хватило на остановку станка, иначе он долго не проживет ;)

ЗЫ Иногда крепежные отверстия можно рассверлить, чтобы не искать М2.
toweroff
Кандидат
Сообщения: 40
Зарегистрирован: 28 янв 2014, 12:18
Репутация: 1
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение toweroff »

Что-то я никак не соображу, как настроить ось Z и вообще как лучше сделать

По идее, лучше все-таки сделать Home для Z в верхней точке, от которой будем опускаться вниз
За ноль принимаем высоту пробника (после смены инструмента будет touch-off)

В настройках оси задаю:

- Home location: 48
- Table travel: 48 -- 0
- Home switch location: 48

Тестирую ось (Test this axis). Кнопка влево тащит в сторону уменьшения (вниз), вправо - в сторону увеличения (вверх), т.е. вроде как все хорошо

Запускаю LinuxCNC, жму на поиск начала -- ошибка "End of move in home state 5" и никакого движения

Меняю Table travel на 0 -- 48, ось движется вниз (!), т.е. ОТ заданного расположения Home switch, после того, как упрется, пытается еще столько же проехать (т.е. до -96.0), после чего та же ошибка

Что я не так делаю?
Последний раз редактировалось toweroff 17 сен 2014, 14:52, всего редактировалось 1 раз.
toweroff
Кандидат
Сообщения: 40
Зарегистрирован: 28 янв 2014, 12:18
Репутация: 1
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение toweroff »

UPD

Разобрался. Настройки такие:

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

Re: Конфигурация EMC2 LinuxCNC

Сообщение Nick »

toweroff писал(а):Разобрался. Настройки такие:

- Home location: 48
- Table travel: 0 -- 48
- Home switch location: 48
- Home Search Velocity: - (!) 15
Да, направление поиска нуля задается знаком скорости поиска.
Кстати, если этот концевик за одно является лимитом по оси, то лучше сделай:
- Home location: 47
- Table travel: 0 -- 47
- Home switch location: 48
(т.е. концевик получается вне рабочей зоны)
Тогда потом даже случайно на него не наедешь и не придется с него съезжать с override limits.
toweroff писал(а):End of move in home state 5
Я такой и не видел никогда :)
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение yell »

Имеется панель управления шпинделем, на которой 6 кнопок:
1. Запустить шпиндель
2. Остановить шпиндель
3. Увеличить скорость вращения шпинделя (изменяется шагами по 50 об/мин)
4. Уменьшить скорость вращения шпинделя (изменяется шагами так же)
5. Вращение по часовой
6. Вращение против часовой
Все кнопки работают по принципу одного нажатия.
Необходимо завести это все на панель управления LinuxCNC. Со стороны электроники я просто делаю 6 релюх на LPT, которые будут эмитировать это самое ручное нажатие кнопок. Теперь вопрос как сконфигурировать LinuxCNC.
Те настройки, которые есть в stepconf приводят к тому, что в результате нажатия на панели ручного управления (в LinuxCNC) тот или иной пин просто выставляется. А мне нужно, чтобы одно нажатие приводило к одному импульсу (и так для всех шести кнопок). Т.е. регулировка скорости не ШИМ.
Ну и нужно чтобы эта реализация была максимально интегрирована в LinuxCNC. Т.е. чтобы не только кнопками можно было управлять шпинделем, но и на G-код чтоб все это дело реагировало.

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

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

yell писал(а):чтобы одно нажатие приводило к одному импульсу
можно использовать такой компонент...
если делать схемку в ладдере - там есть срабатывание по фронту
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Serg »

yell писал(а):Имеется панель управления шпинделем, на которой 6 кнопок:
А что за частотник? Там навернаяка есть аналоговое управление, а то и вообще Modbus...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение yell »

Китайская поделка по типу станков Корвет. Какие-либо порты для интеграции отсутствуют. Реально проще к кнопкам прицепиться, чем изучать как их платы там устроены.
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение yell »

Вроде сориентировался в HAL. Но уперся в такой момент. Логические компоненты есть. А вот возможности реализовать условное ветвление не вижу.
Я вот например в результате ряда преобразований, получил сигнал, который мне был нужен. И мне нужно чтобы по этому сигналу выполнялась какая-нибудь арифметическая операция. Но, например, компонент sum2 не имеет пина, который бы, например, блокировал его (нечто вроде enabled).
Ну или например по некоему сигналу мне нужно просто передать float значение из одного компонента в другой.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

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

Мультиплексоры есть.
Чудес не бывает. Бывают фокусы.
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение yell »

Точно. Я уж и слова-то такие забыл. Спасибо.
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение yell »

yell писал(а):Имеется панель управления шпинделем, на которой 6 кнопок:
1. Запустить шпиндель
2. Остановить шпиндель
3. Увеличить скорость вращения шпинделя (изменяется шагами по 50 об/мин)
4. Уменьшить скорость вращения шпинделя (изменяется шагами так же)
5. Вращение по часовой
6. Вращение против часовой
Все кнопки работают по принципу одного нажатия.
Необходимо завести это все на панель управления LinuxCNC. Со стороны электроники я просто делаю 6 релюх на LPT, которые будут эмитировать это самое ручное нажатие кнопок. Теперь вопрос как сконфигурировать LinuxCNC.
Те настройки, которые есть в stepconf приводят к тому, что в результате нажатия на панели ручного управления (в LinuxCNC) тот или иной пин просто выставляется. А мне нужно, чтобы одно нажатие приводило к одному импульсу (и так для всех шести кнопок). Т.е. регулировка скорости не ШИМ.
Ну и нужно чтобы эта реализация была максимально интегрирована в LinuxCNC. Т.е. чтобы не только кнопками можно было управлять шпинделем, но и на G-код чтоб все это дело реагировало.
Судя по всему, чтобы нормально все работало, нужно по-любому ставить энкодер. И PID-регулятор как-то хитро настраивать.
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Bmax77 »

Помогите разобраться. Суть в следующем: с ноутбука перенес систему на core2duo, настроил биос отключил всякие понижения быстродействия и контроль температуры, латенси тест показывает джиттер в районе 3500 и базовый интервал примерно 28000. Поскольку конфиг уже правлен руками то есть у меня тестовая конфигурация которую я и настроил в соответствии с данными с латенси теста, но LCNC при запуске ругается rtapi error...... check dmesg. Но работает потом нормально без сбоев. Понимаю что где то что то не так, но что и где?
Спасибо
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Serg »

Bmax77 писал(а):при запуске ругается rtapi error...... check dmesg
Это викторина такая? Все должны догадаться что скрывается за вашими точками и что говорит ваш dmesg?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Bmax77 »

эээ нет, выложу дословно))). dmesg смотрел но так и не понял где в нем криминал искать.
я просто в некотором замешательстве, получается что на старом ноуте максимальная скорость была выше чем у меня сейчас на десктопе, при том что латенси тест показывает в 5 раз ниже джиттер чем на ноуте. :thinking:
Ответить

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