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

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

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

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

Заключение


См. также

Нахождение максимальной скорости и ускорения станка
PyVCP дополнительный интерфейс для EMC2 LinuxCNC
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

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

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

Ну не научился я пока читать скрытый текст :(

loadrt hal_parport cfg="0x378 out 1080 out "

addf parport.0.read base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf parport.1.read base-thread
addf parport.1.write base-thread
addf parport.1.reset base-thread


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

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

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

Проба неудачна:

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

Print file information:
...
io started
halcmd loadusr io started
Starting HAL User Interface program: halui
Shutting down and cleaning up EMC2...
Killing task emcsvr, PID=2051
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

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 
insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/emc2/hal_parport.ko': -1 Resource temporarily unavailable
printer.hal:5: exit value: 1
printer.hal:5: insmod failed, returned -1
See the output of 'dmesg' for more information.
2051
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components

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

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

Сообщение nkp »

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

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

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

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

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

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

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

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

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

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

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

Сообщение nkp »

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

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

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

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

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

Сообщение Nick »

Может при аварийном завершении LinuxCNC не освобождает занятый порт.
Попробуй в консоле написать halrun -U (это освобождает все ресурсы занятые LinuxCNC, если были такие), может после этого будет запускаться.

Вообще говорит, что устройство не доступно - наверняка без порта может не грузиться ...
Ворон226 писал(а):insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/emc2/hal_parport.ko': -1 Resource temporarily unavailable
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

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

Ворон226 писал(а):Возвращаю .hal в прежний вид - ругается.
Перегружаю комп - всё работает в старой версии.
Такого не наблюдал, перезагрузки не требовалось.
Наверно, у меня была другая ошибка.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Boris_B
Новичок
Сообщения: 18
Зарегистрирован: 15 июн 2012, 01:10
Репутация: 0
Контактная информация:

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

Сообщение Boris_B »

Boris_B писал(а):Ситуация:
Оборудование: контроллер TB6560HQT 4V3 (красный 4-х осевой). Задействовано 3 оси - X, Y, Z.
Ходовой винт: трапеция Tr 12х4
Хочу работать 1/8 шага.
Настройки EMC2:
- порт LPT - задействованы ножки 2-3,4-5,6-7 - шаг и направление соответствующих осей. Остальные ножки отключены (у меня шпиндель имеет независимое внешнее питание, включается и выключается отдельно от контроллера вручную).
- Настройка оси (настройки одинаковые для всех осей) - шаг мотора 200, микрошаг - 8. максимальная скорость - 13 мм/с,
ускорение - 50 мм/с2 (пробовал от 30 до 1500).
Настройки платы контроллера (переключателями): установка тока 100%, спад тока - быстрый; режим дробления шага - 1. Вот последний пункт у меня вызывает сомнение, хотя примерное измерение линейкой хода каретки говорит, что все правильно (дробление шага происходит один раз и программно).
Режимы резания: березовая фанера 3 мм, скорость реза 4 мм/с, глубина 0.5 мм за проход, фреза пазовая 2 мм. Нужно вырезать квадрат 70х70 мм.
Проблема следующая: не могу получить заданные размеры детали. Вместо 70 мм размер получается порядка 70,5 мм (фреза проскакивает дальше). Ну было бы 69,5 - можно списать на пропуск шагов, А тут мне непонятно, шаги вроде как добавляются. Уже замерил и саму модель (генерирую коды в АртКаме), и замерил диаметр инструмента - точный Ф 2.04 мм. Вот прошу помочь - возможно ошибка в настройках EMC2, либо еще в чем-то.
Разобрался, наконец, с настройками станка. Понял, в чем была ошибка. Ошибка была в следующем - шаг ходового винта оказался в реале немного больше номинального.
Что сделал: начертил квадрат 100х100 и сгенерировал программу по его реализации. После того, как станок отработал, максимально точно (для меня) замерил реально полученные размеры - в реале оказалось - ось X - 100,61 мм, ось Y - 100,69. Итого, в реале шаг ходового винта по оси X составляет 4х100,61/100= 4,0244 мм, шаг винта по оси Y составляет 4х100,69/100=4,0276 мм. Полученные значения реальных шагов ходовых винтов по осям X и Y занес в соответствующие строки таблиц настройки осей станка.
Пожелание разработчикам EMC2: После внесения значения шага ходового винта с дробной частью программа EMC2 сгенерировала ошибку во время теста оси. Но, к счастью, само значение шага с дробной частью протестов со стороны программы не вызвало. Все стало правильно работать и во время реального запуска станка. Хотелось бы, чтобы разработчики устранили этот досадный косяк - чтобы можно было бы двигать кареткой станка и при настройке, когда шаг задан дробный. Данная методика мне кажется тем более актуальной, что в большинстве своем создатели станков с ЧПУ хобби/класса используют ходовые винты низкого класса точности, а то и просто строительные шпильки.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение Nick »

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

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

Сообщение Serg »

Примерно тоже самое, что и про gcodetools/inkscape. :)

А вообще есть способ неправильный с национальной точки зрения, но удобный с технической и программистской:
LANG=ru_RU.UTF-8
LC_NUMERIC=C
В итоге имеем нормальный русский язык и числа типа 1,234.56
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

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

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

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

Сообщение Nick »

Это различные компоненты локали. Локаль определяет все возможные адаптации к различным языкам - перевод интерфейса, формат даты, времени, формат записи чисел и т.д.

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

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

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

Что-то совсем запутался с... E-STOP-ом...
Подробно:
E-STOP включаем:
1. На своей GLADEVCP - прописано с помощью EMC Action - работает
2. Кнопка на панели AXIS - работает
3. Есть запись в .hal
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
4. Нужно прикрутить ещё кнопку, которая на станке (красная такая). Подаю её на 15 вход LPT...
А КУДА её подсоединять? К какому сигналу?

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

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

Сообщение nkp »

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

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

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

Так glade.hal_togglebutton1 (та, что у меня за E-STOP отвечает) подсоединена к действию hal_toggleaction_estop1 в самом Glade... И никаких пинов этих в .hal писать не нужно.

И второй вопрос (выяснил только что при тестировании) - у меня не нажатая glade.hal_togglebutton1 даёт E-STOP в TRUE, а это совсем не так нужно. Как синвертировать эту кнопку? Иначе выключаю кнопку - программа работает, "рисует"... Но кнопки в halui прописанные не работают, так как halui.estop.is-activated в TRUE :( А когда нажимаю кнопку E-stop - EMC в Авосте, а кнопочки "выполнить", "пауза", "продолжить" и "стоп" - отрабатывают по пинам...
Хочешь быть счастливым? Будь им!
Ответить

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