Страница 39 из 71

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

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

Содержание


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

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

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

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

Заключение


См. также

Нахождение максимальной скорости и ускорения станка
PyVCP дополнительный интерфейс для EMC2 LinuxCNC

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

Добавлено: 03 ноя 2014, 15:51
Albert
Добрый день, Ник.
Переделал свой станок с ДСП пульта на Linux. Уже долго вожусь с ним. И вот возникла не решаемая проблема) Не могу заставить хоумиться. Выдает ошибку будто датчики хоума включены, но они не включены. Попробовал включить датчик и станок начал хоумиться, т.е получается как будто датчики нормально замкнутые, хотя должны быть разомкнутые. Подскажи что может быть? я могу в настройках линукса как-то реверсировать концевики?

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

Добавлено: 03 ноя 2014, 16:19
NightV
ошибка что на скрине к датчику никакого отношения не имеет.
говорит что была задержка, чтобы ты запустил "Latency Test"

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

Добавлено: 03 ноя 2014, 16:56
Albert
Я перепутал фотку. На тест почему-то тоже периодически меня отправляет.. Не знаю почему

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

Добавлено: 03 ноя 2014, 17:45
NightV
в конце где указываеш вход добавь -not
например этот вход
hm2_5i25.0.7i76.0.0.input-28
и чтобы его инвертировать, добавляем -not
hm2_5i25.0.7i76.0.0.input-28-not

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

Добавлено: 03 ноя 2014, 18:43
Albert
С концевиками разобрались. На плате контроллера нужно было переткнуть джампер. NightV а где указывать не понял. Напиши пожалуйста подробнее.

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

Добавлено: 03 ноя 2014, 18:48
NightV
какие платы у тебя? LPT? или что-то другое?

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

Добавлено: 03 ноя 2014, 18:54
Albert
Да. Плата lpt

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

Добавлено: 03 ноя 2014, 20:18
NightV
как и сказал в конце адреса пина добавляешь -not
parport.<адресс-порта>.pin-<номер-пина>-in-not
а вот здесь много интересного про LPT в LinuxCNC http://www.linuxcnc.org/docs/2.4/html/h ... _port.html

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

Добавлено: 03 ноя 2014, 20:20
Ворон226
Albert писал(а):а где указывать не понял
В файле с расширением .hal

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

Добавлено: 03 ноя 2014, 20:40
NightV
кстате.. незнаю как там в stepconf, а в pncconf когда выставляешь пины кто-есть-кто, напротив есть галочка Invert (инвертировать)

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

Добавлено: 03 ноя 2014, 21:54
Albert
Спасибо за помощь. Попробую таким способом для интереса. Если поставить галку на invert то менялось направление движения оси, а у меня ни с этим проблема была.
Не знаете почему у меня периодически всплывает окно (Unexpected real time delay on task1. This message will only display once per session. Run the latency test and resolve before continuing.) Я так понимаю, что ему не нравится число Latency Test. Я выставил то число которое мне показала программа (43000), еще для эксперимента попробовал поставить 15000 проблема осталась.
И еще один вопрос у моего знакомого при запуске emc2 в окне написано версия программы 2.5.0, а у меня версия 2,5,4-62-g22ed1fa. В этих версиях есть отличия в работе EMC?

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

Добавлено: 04 ноя 2014, 08:13
Ворон226
Если latency test показал 43000, то ставить нужно не меньше 50000
И, конечно, попробовать уменьшить этот показатель, (например, как сказано http://wiki.linuxcnc.org/cgi-bin/wiki.p ... gSMIIssues - хотя я сам не разобрался)
(пора бы в ВИКИ инструкцию по уменьшению значения базового периода в Latency Test написать...)

снова Base period - так все-таки: уменьшать или увеличивать?

Добавлено: 05 ноя 2014, 10:18
Гармонист
Поспоорил с другом: он грит что для увеличения быстродействия Base period - нужно увеличивать, а я говорю что уменьшать(ссылаясь на этот пост)
Nick писал(а):Base period - это одна из основных величин быстродействия, она определяет максимальную скорость работы с контроллером. Она определяет так называемый heartbeat (сердцебиение системы в целом) от которого зависит время для генерации сингала Step. Фактически, чем меньше base period тем больше максимальная частота генерации шагов
т.е. - чтобы станок быстрее летал - Base period - нужно уменьшать, т.к. это минимальная задержка в наносекундах.
Грубо говоря - чем меньше задержка - тем чаще можно шагать.
При этом лучше ставить "эту задержку" более "минимального значения отклика системы"(Latency test) - иначе в момент генерации очередного шага - процессор будет занят другой задачем - и не сделает шаг в нужное время - т.е. не сделает шаг вообще(тк для шаговиков нет проверки сделан шаг или нет)

и вроде как я выиграл спор, вот только есть нестыковочки:


1. По тексту сравнивается с "сердцебиением". Но чем быстрее "сердцебиение" системы - тем быстрее должна работать система.
Получается Base period - нужно увеличивать? Или это неудачное сравнение с сердцебиением?

далее еще читаем
Nick писал(а):Для того, чтобы контроллер работал правильно и не пропускал шаги минимальный base period должен быть равным длительность direction setup+direction hold+step space+maximum latency.
2. минимальный base period - т.е. -по логике слово "минимальный" если перефразировать - "может быть бОльше, но минимальный должен быть".
Или еще шире "чтобы система работала стабильнее - минимальный base period должен быть более ... "
Сновая получается Base period - нужно увеличивать?

3. а теперь смотрим картинку там же:
Изображение
на ней: Direction setup = 20000, Direction hold=20000, step space=5000, maximum latency = ?(но больше 0-ля)
по формуле base period должен быть = 20000+20000+5000+? = > 45000!
а на картинке - base period =15000 :wtf:

елки-палки - так увеличивать надо Base period или уменьшать?
Конечно можно тупо поиграться параметрами и определить опытным путем - но хотелось бы услышать спецов :hottabych:

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

Добавлено: 05 ноя 2014, 10:40
Сергей Саныч
Гармонист писал(а):1. По тексту сравнивается с "сердцебиением". Но чем быстрее "сердцебиение" системы - тем быстрее должна работать система.
Получается Base period - нужно увеличивать? Или это неудачное сравнение с сердцебиением?
Не надо путать период и частоту. Частота - величина обратная периоду. То есть, уменьшая base period, мы увеличиваем частоту тактов, или, если угодно, "пульс" EMC.
Гармонист писал(а):Direction setup = 20000, Direction hold=20000, step space=5000, maximum latency = ?(но больше 0-ля)
по формуле base period должен быть = 20000+20000+5000+? = > 45000!
Эти величины имеют некоторое отношение к base period, но они могут иметь длительность в несколько тактов. Так что такое сложение некорректно.
Чем меньше базовый период, тем выше "пульс" системы, но до тех пор, пока она не начнет "задыхаться". Даже в медицине, как известно, тахикардия часто приводит к аритмии :)

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

Добавлено: 05 ноя 2014, 11:00
Гармонист
Сергей Саныч писал(а):Так что такое сложение некорректно.
вот и я думаю - стоит убрать эту формулу из мануала - чтобы не путать никого...
NightV писал(а):думаю здесь нужна поправка
Она определяет так называемый heartbeat (сердцебиение системы в целом) от которого зависит время для генерации сингала Step.
или как-то так, начинающим проще будет освоится
Сергей Саныч писал(а):Не надо путать период и частоту. Частота - величина обратная периоду.
чтобы начинающим было проще освоиться нужно еще раз уточнить как-то так:
Nick писал(а): Она определяет так называемый heartbeat (сердцебиение системы в целом) от которого
перефразировать: Она определяет так называемый heartbeat (период сердцебиения системы в целом) от которого

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

Добавлено: 05 ноя 2014, 18:37
Ворон226
Какое нафиг "сердцебиение"???
Это время выполнения некоторой операции (можно меня бить или изменять "некоторую операцию")!
Чем время выполнения этой операции меньше - тем больше этих операций можно совершить в единицу времени!
Потому для быстродействия (БЫСТРОГО действия) нужно уменьшать время исполнения этого действия.
(давай ещё печень CNC или почки CNC найдём? Введем в описание понятие "объема легких" или "вес мозга"? Да и нервную систему можно отыскать... И диету для станка? Один иностранец выразился после возлияния, а мы тут пыжимся ТОЧНЕЕ перевести статью)

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

Добавлено: 05 ноя 2014, 19:12
Serg
heartbeat в данном контексте переводится как тактовый сигнал или тактовая частота.

P.S. Ну беден на слова и синонимы английский язык, он потому и стал международным, что в нём слов мало...

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

Добавлено: 05 ноя 2014, 19:22
NightV
Ворон226 писал(а):Какое нафиг "сердцебиение"???
критик блин, предложи вариант лучьше, чтобы новичку было понятно

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

Добавлено: 05 ноя 2014, 20:50
Ворон226
NightV писал(а):предложи вариант лучьше
См. выше.

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

Добавлено: 05 ноя 2014, 20:54
NightV
Ворон226 писал(а):См. выше.
UAVpilot писал(а):heartbeat в данном контексте переводится как тактовый сигнал или тактовая частота
это? не для всех понятно что такое "тактовая частота" в программе, например мне, я знаю частоту в чипах, но вот програмнная.... не понятно