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

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

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

Screenshot-EMC2 Stepper Mill Configuration-2.png (317796 просмотров) <a class='original' href='./download/file.php?id=782&sid=6adb6272d6f02c5fba881c3227198c6d&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 (317796 просмотров) <a class='original' href='./download/file.php?id=783&sid=6adb6272d6f02c5fba881c3227198c6d&mode=view' target=_blank>Загрузить оригинал (99.1 КБ)</a>
Настройка LPT для EMC2
Настройка LPT для EMC2 (317796 просмотров) <a class='original' href='./download/file.php?id=784&sid=6adb6272d6f02c5fba881c3227198c6d&mode=view' target=_blank>Загрузить оригинал (88.29 КБ)</a>
Настройка LPT для EMC2

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

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

Настройка осей станка в EMC2 LinuxCNC (317796 просмотров) <a class='original' href='./download/file.php?id=785&sid=6adb6272d6f02c5fba881c3227198c6d&mode=view' target=_blank>Загрузить оригинал (66.88 КБ)</a>
Настройка осей станка в EMC2 LinuxCNC
Проверка настроек осей LinuxCNC (317796 просмотров) <a class='original' href='./download/file.php?id=786&sid=6adb6272d6f02c5fba881c3227198c6d&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 (317796 просмотров) <a class='original' href='./download/file.php?id=787&sid=6adb6272d6f02c5fba881c3227198c6d&mode=view' target=_blank>Загрузить оригинал (32.67 КБ)</a>
Настройка управления шпинделем в EMC2

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

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

Дополнительные настройки EMC2 (317796 просмотров) <a class='original' href='./download/file.php?id=788&sid=6adb6272d6f02c5fba881c3227198c6d&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 (317796 просмотров) <a class='original' href='./download/file.php?id=789&sid=6adb6272d6f02c5fba881c3227198c6d&mode=view' target=_blank>Загрузить оригинал (74.23 КБ)</a>
Окончание настройки EMC2

Заключение


См. также

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

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

Сообщение yell »

Движок такой - FL86STH80-5504A
Микрошаг 1/10. Передача на ходовой винт 1:2. Шаг винта - 2мм
verser писал(а):А что, если сделать INCREMENTS .00025 ?
То делает шаг через 4 нажатия.

SCALE в ini - 2000. Если прописать 4000, то двигается при каждом нажатии (0.0005) на 0.001

В приложении файлы ini и hal. Речь идет только об оси Z (AXIS_2), остальных еще нет.
Вложения
cnc.ini
(1.72 КБ) 1055 скачиваний
cnc.hal
(2.54 КБ) 1042 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

А двигатель точно может в таком режиме работать?
Я в том смысле, если ему послать вручную сигнал step?

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

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

Сообщение yell »

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

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

Сообщение Nick »

yell писал(а):Но чую пахнет тем что по факту имеется 1/5.
Тогда либо шагать будет через раз, либо scale был бы другим...

Попробуй подать по 1 сигналу на step.

Скажем так:
в консоле halrun и туда:

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

loadrt trivkins
loadrt motmod base_period_nsec=100000 servo_period_nsec=1000000 num_joints=3

loadrt probe_parport
loadrt hal_parport cfg="0x378 out  "
setp parport.0.reset-time 5000
addf parport.0.read base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

start

И потом:

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

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

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

Сообщение Nick »

Или с запущеной своей конфигурацией просто:

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

halcmd unlinkp parport.0.pin-XX-out 
И потом шагаем

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

halcmd setp parport.0.pin-XX-out 0 
halcmd setp parport.0.pin-XX-out 1 
Только после этого придется linuxcnc перезапустить. Но это думаю не так страшно :)

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

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

Сообщение yell »

Не, ну все корректно настроено. SCALE = 2000. Все правильно. Когда я говорю ему проехать 1мм, он проезжает один 1мм.
Драйвер находится в режиме микрошага 1/10.
Либо производитель драйвера лукавит и под микрошагом 1/10 подразумевается имитация через 1/5 с накоплением. Или LinuxCNC округляет.
Спасибо за совет как послать один шаг. А то я тут на /dev/lp0 что-то пытался слать и не был уверен что правильно делаю.

По твоей методе:
Выставил в 0 - тишина.
Выставил в 1 - движок засвистел. (видимо неправильно просто выставлять пин. нужен импульс)
Я быстренько выставил в 0 - замолк.

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

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

Сообщение Nick »

тогда можно добавить oneshot.
http://www.linuxcnc.org/docs/2.4/html/m ... hot.9.html
Может запищал от того что в полушаге был?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

по oneshot:
добавляем:

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

loadrt oneshot
# 1мс нормально для импульса?
addf oneshot.0 servo-thread 
net step <= oneshot.0.out
net step => parport.0.pin-XX-out 
И потом все так же:

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

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

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

Сообщение yell »

возможно, что-то не так делаю. в предыдущей раз я делал по второй твоей методе:
Nick писал(а):Или с запущеной своей конфигурацией просто:

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

halcmd unlinkp parport.0.pin-XX-out
halcmd setp parport.0.pin-XX-out 0 
halcmd setp parport.0.pin-XX-out 1 
В этот раз я так понял предполагалось что нужно начинать с halrun. Он сказал что уже запущен. Я остановил halrun -U
Далее опять halrun и туда:

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

loadrt trivkins
loadrt motmod base_period_nsec=100000 servo_period_nsec=1000000 num_joints=3

loadrt probe_parport
loadrt hal_parport cfg="0x378 out  "
setp parport.0.reset-time 5000
addf parport.0.read base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

loadrt oneshot
addf oneshot.0 servo-thread 
net step <= oneshot.0.out
net step => parport.0.pin-XX-out 

start

setp oneshot.0.in 0
setp oneshot.0.in 1 
И тишина. Как это проделать в варианте с уже запущенной конфигурацией?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Можешь тоже самое со вторым вариантом:
loadrt и т.д. после отключения пина через unlinkp.

yell писал(а):И тишина. Как это проделать в варианте с уже запущенной конфигурацией?
В этой строчке XX поменял?
net step => parport.0.pin-XX-out
ммм... может еще надо длинну импульса настроить...
setp oneshot.0.width 0.001
yell
Опытный
Сообщения: 183
Зарегистрирован: 28 июн 2013, 14:27
Репутация: 22
Контактная информация:

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

Сообщение yell »

добавил setp oneshot.0.width 0.001
после этого вроде заработало.
движок дергается только после двух импульсов

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

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

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

Сообщение Nick »

Возможно...
Еще может быть у них хитрый морфинг - может на больших частотах он его делает... хотя нет, с морфингом должно быть наоборот...
Аватара пользователя
WhiteMask
Опытный
Сообщения: 196
Зарегистрирован: 28 дек 2013, 20:01
Репутация: 73
Откуда: Днепр, Украина
Контактная информация:

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

Сообщение WhiteMask »

Вот такой тест, а максимум дает написать только 50000
Чё делать? Какое значение вписать?
tmp_20140610_1053251024245034.jpg (2136 просмотров) <a class='original' href='./download/file.php?id=29345&sid=6adb6272d6f02c5fba881c3227198c6d&mode=view' target=_blank>Загрузить оригинал (1.67 МБ)</a>
WMMARKET.COM.UA 3D принтеры и аксессуары. Услуги 3Dпечати до 20мкм
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

WhiteMask писал(а):Чё делать?
вот здесь требования к компу в этом отношении описаны...
можно попробовать улучшить результаты - всё это есть на форуме ...
Аватара пользователя
verser
Мастер
Сообщения: 1885
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

WhiteMask писал(а):Какое значение вписать?
Такое лучше не вписывать. Посмотри, может поможет, как я решал подобную проблему в п.2 здесь http://cnc-club.ru/forum/viewtopic.php? ... 75#p110897
Plastik
Новичок
Сообщения: 7
Зарегистрирован: 11 июн 2014, 06:31
Репутация: 0
Контактная информация:

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

Сообщение Plastik »

Уважаемые специалисты ! Помогите настроить emc2 по этим бумажкам по подробнее
пожалуйста, концевиков нету,
Спасибо заранее.
IMG_20140604_173741.jpg (2100 просмотров) <a class='original' href='./download/file.php?id=29366&sid=6adb6272d6f02c5fba881c3227198c6d&mode=view' target=_blank>Загрузить оригинал (329.18 КБ)</a>
IMG_20140604_173727.jpg (2100 просмотров) <a class='original' href='./download/file.php?id=29367&sid=6adb6272d6f02c5fba881c3227198c6d&mode=view' target=_blank>Загрузить оригинал (359 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Я так понимаю
первый пин ВКЛ шпиндель
2 DIR X
3 Step X
и т.д.
Если концевиков нет - остальное не подключаем.
Plastik
Новичок
Сообщения: 7
Зарегистрирован: 11 июн 2014, 06:31
Репутация: 0
Контактная информация:

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

Сообщение Plastik »

Спасибо за быстрый ответ.
Plastik
Новичок
Сообщения: 7
Зарегистрирован: 11 июн 2014, 06:31
Репутация: 0
Контактная информация:

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

Сообщение Plastik »

Пытался через Mach3 , намучился и решил попробовать Emc2.
Plastik
Новичок
Сообщения: 7
Зарегистрирован: 11 июн 2014, 06:31
Репутация: 0
Контактная информация:

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

Сообщение Plastik »

А что за Pin16 Bereit? У меня emc на русском.
Ответить

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