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

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

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

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

Заключение


См. также

Нахождение максимальной скорости и ускорения станка
PyVCP дополнительный интерфейс для EMC2 LinuxCNC
magrelo
Кандидат
Сообщения: 42
Зарегистрирован: 27 ноя 2015, 11:53
Репутация: 0
Настоящее имя: Andrey
Контактная информация:

Re: Вопросы новичка по Glade + HAL

Сообщение magrelo »

Чтобы новую тему не создавать, спрошу тут про логический элемент HAL. Есть номер инструмента tool-number.
Чтобы узнать какой в данный момент инструмент сейчас использую такую громоздкую конструкцию в HAL:
net tool-number conv-s32-u32.1.in
net tool-numberu conv-s32-u32.1.out bitslice.1.in
net tool-laser bitslice.1.out-00 and2.0.in1 ну и т.д.
По документации не нашел элемента , сравненивающем два чила s32. Есть элемент comp но он требует floating thread что то там. Нужно просто (tool-number == 2)?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Вопросы новичка по Glade + HAL

Сообщение nkp »

magrelo писал(а):Чтобы узнать какой в данный момент инструмент
но емс и так вроде знает "какой сейчас инструмент"
зы
может всё можно сделать проще?
magrelo
Кандидат
Сообщения: 42
Зарегистрирован: 27 ноя 2015, 11:53
Репутация: 0
Настоящее имя: Andrey
Контактная информация:

Re: Вопросы новичка по Glade + HAL

Сообщение magrelo »

нет ) у меня на станке 2 инструмента: фреза и лазер китайский 3Вт для маркировки. Я в логике по номеру инструмента переключаю через реле питание инструмента и в лазере еще надо шим модуляцию на холостых переходах выключать.
Вот логика на которую влияет смена инструмента:
#Рабочий проход и инструмент лазер = and2.0.out
net motion-types motion.motion-type conv-s32-u32.0.in
net motion-typeu conv-s32-u32.0.out bitslice.0.in
net motion-work bitslice.0.out-01 and2.0.in0
net tool-ready iocontrol.0.tool-number conv-s32-u32.1.in
net tool-readyu conv-s32-u32.1.out bitslice.1.in
net tool-laser bitslice.1.out-00 and2.0.in1
#Или инструмент шпиндель = or2.0.out
net laser-on and2.0.out or2.0.in0
net tool-laser not.0.in
net tool-spindle not.0.out or2.0.in1
#И если в программе ШИМ спинделя задано, то генерируем ШИМ = and2.1.out
setp parport.0.pin-14-out-invert 1
net spindle-pwm and2.1.in0
net pwm-on or2.0.out and2.1.in1
net pwm-out and2.1.out parport.0.pin-14-out

Просто может вместо bitslice можно что то по проще исполльзовать?
Номера инструментов 1-лазер, 2-фреза. 0й я так понял в станке нельзя использовать.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Вопросы новичка по Glade + HAL

Сообщение nkp »

magrelo писал(а):0й я так понял в станке нельзя использовать.
это для работы "без инструмента"
--------------
вариантов как всегда много несколько)

оставить всё как есть(работает же я так понял ;) )
-------
конвертнуть не в u32 ,а в float и дальше хоть компаратором,хоть near(conv_s32_float )
----------
делать все это в .py файле (раз это уже glade)
Maxmarinin
Новичок
Сообщения: 13
Зарегистрирован: 16 фев 2018, 20:27
Репутация: 0
Настоящее имя: Максим
Контактная информация:

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

Сообщение Maxmarinin »

Всем привет! Решил перейти на EMC с mach3. Установил Debian Wheezy и LinuxCNC 2.7 При загрузке УП постоянно вылетают ошибки в синтаксисе УП, типа этой. УП генерируется постпроцессором emc в HsmWorks. Куда копать?
Вложения
баг.jpg (3822 просмотра) <a class='original' href='./download/file.php?id=133193&mode=view' target=_blank>Загрузить оригинал (5.56 МБ)</a>
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

Строка 2 лишняя
Maxmarinin
Новичок
Сообщения: 13
Зарегистрирован: 16 фев 2018, 20:27
Репутация: 0
Настоящее имя: Максим
Контактная информация:

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

Сообщение Maxmarinin »

Спасибо всё пока получается! Постпроцессор -то EMC, но он для фрезера, а у меня токарка, я смотрю что он на "y" ругается .В общем ночь была. Станок переделал на сервы и решил с Mach3 на LinuxCNC перейти но пока будут работать через LPT по Step-dir, приводы позволяют. И вопрос к знатокам, где настроить компенсацию люфта? С X всё в порядке, там швп C5 с преднатягом, а вот по Z обычная C7 и люфт 7-8 соток. Вторая гайка покупалась отдельно и неприлично болтается на швп, регулировка помогает мало. Ну и с нарезкой резьб надо разобраться, старый диск с одной меткой справлялся прекрасно, но из под Mach.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Maxmarinin писал(а):И вопрос к знатокам
Читайте документацию, она довольно подробная и можно найти даже переведённые части - сэкономите много своего времени.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
pokery
Опытный
Сообщения: 135
Зарегистрирован: 10 май 2011, 17:47
Репутация: 0
Откуда: Волгоград
Контактная информация:

Синий китаец на TB6560

Сообщение pokery »

LinuxCNC установил, теперь занялся конфигурацией. Есть несколько вопросов.
1. Латенси тест показывает запредельное значение в 2 миллиона. Я так думаю, что это далеко не нормально. Куда копать, чтобы посмотреть, что не так? Система: АМД феном 3-х ядерный, плата Gygabite MA-770 DS3, 4 гига оперативки, видео MSI 9600GT 1Gb.
2. Вот эти значения Step time, Step space, Direction hold, Direction setup на что-то влияют, если их оставить по-умолчанию? В документации к моему контроллеру ничего такого не нашёл (синяя плата 3-х осевая, HY-TB3DV-M).
3. Вместо винтов на станке буду использовать обычные винты на М8. Правильно ли я ввёл значение 1.25 в поле мм/об? По крайней мере, перемещение происходит вроде как надо, т.е. от минус 15мм, до +15.
4. Движки Nema 23 вращаются не очень быстро, максимальные значения, которые удалось поставить, это 10 мм/сек максимальная скорость. Если ставить 11 и больше, двиг начинает пищать и тут же останавливается. На плате есть джамперы, установил следующее: 25% Current, Fast Decay, 1/2 шаг.

Вроде бы остальных вопросов пока нет.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

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

Сообщение solo »

pokery писал(а):1. Латенси тест показывает запредельное значение в 2 миллиона
с этого надо начать , а то может материнка не годится ,
лично я в биосе повыключал все, что относится к энергосбережению , установил мах частоту процессора , оставил одно рабочее ядро ,
pokery
Опытный
Сообщения: 135
Зарегистрирован: 10 май 2011, 17:47
Репутация: 0
Откуда: Волгоград
Контактная информация:

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

Сообщение pokery »

В биосе отключил всё на странице Power Manegement. У пунктов, где нет слова Disable, они просто переключатся на другие значения, но не отключаются.
140320181426.jpg (3611 просмотров) <a class='original' href='./download/file.php?id=134634&mode=view' target=_blank>Загрузить оригинал (220.41 КБ)</a>
На всякий случай отключил USB планшет. Всё одно:
140320181427.jpg (3611 просмотров) <a class='original' href='./download/file.php?id=134635&mode=view' target=_blank>Загрузить оригинал (233.91 КБ)</a>
Насчёт ядер, в биосе таких пунктов нет, только частота проца, памяти и шины.

Сегодня прочитал (ну насколько я понял, с английским не очень), что этот тест работает эмпирически (не знаю, что это), т.е. если во время работы EMC2 не запускать другие приложения, то всё будет в порядке. В принципе я так и попробовал: 3д шестерёнки - никаких изменений, терминал - тоже, как только запускаю либр офис или магазин убунты - сразу 2 мильона с половиной. Поставил цифру 30000 в настройки, погонял движки - вроде всё нормально (ну как нормально, со скоростями не понял, а может это у них максимум у этих движков).
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

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

Сообщение solo »

pokery писал(а):с английским не очень
я сам с английским совсем ни как
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Latency-Test
вот здесь есть материнки "Гигабит" и примеры что и как настраивали в биосе , может будет полезно ,
просто с такими показателями МАХ джитер частота импульсов степ буде около 200 гц , как по мне это плохо и медленно
pokery
Опытный
Сообщения: 135
Зарегистрирован: 10 май 2011, 17:47
Репутация: 0
Откуда: Волгоград
Контактная информация:

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

Сообщение pokery »

По таблице материнок не понял ничего, относительно гигабайтных- какой то SMI, в биосе такого нет, прочитал про это дело - то надо его отключить, то не надо. Там же по этой ссылке есть про это тема, какие то скрипты, не стал пробовать, да и не разбираюсь в этом.

Насчёт Max Jitter. Оказывается перескакивает сразу на значение 2 с половиной миллиона после нажатия клавиш Alt + Tab (т.е. переключение задач), причём даже тогда, когда запущен только латенси тест. Если это сочетание клавиш не нажимать, то выше 19000 не поднимается, причём даже тогда, когда запускать на фоне всё остальное, включая либр офис, какое-нибудь видео, копирование файлов и т.д. Странно.

По поводу значений Step time, Step space, Direction hold, Direction setup. Есть в документации к LinuxCNC таблица контроллеров, синий китаец идёт самым первым, там все четыре значения по 150000, но у меня только максимум можно ввести сто тысяч, что я и сделал. Разницы не увидел никакой.

По поводу значения переключателя Current на контроллере. Попробовал поставить на 50%, движки сразу греться сильно стали, так что оставил на 25%.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

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

Сообщение ScrewDriver »

Парни, появился небольшой вопрос.
Во всю настраиваю LinuxCNC, собственно споткнулся вот об какую штуку:
если концевик стоит в максимуме оси, то система доезжает до него и дальше радостно едет в ноль. Можно это где-то переключить, чтобы у концевика ось останавливалась?
Грубо говоря поехала она в плюс по оси, на 299 встретила концевик, ну и пусть там и остается, нечего у нули катить обратно.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

В ini параметр HOME сделать равным HOME_OFFSET
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

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

Сообщение ScrewDriver »

PKM писал(а): В ini параметр HOME сделать равным HOME_OFFSET
Эм... я пока только графическим конфигуратором ковырялся =) Чет даже стыдно.
Спасибо, завтра попробую этот параметр поменять.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Maxmarinin
Новичок
Сообщения: 13
Зарегистрирован: 16 фев 2018, 20:27
Репутация: 0
Настоящее имя: Максим
Контактная информация:

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

Сообщение Maxmarinin »

Всем привет! На EMC перешёл месяц назад, а мозг уже где-то на восьмом месяце :oops: Есть токарный станок на сервах, надо резать резьбы, сделал энкодер шпинделя.
Энкодер шпинделя.jpg (3441 просмотр) <a class='original' href='./download/file.php?id=135342&mode=view' target=_blank>Загрузить оригинал (879.93 КБ)</a>
Готовую конфигурацию нашёл тут: http://7xcnc.com/hardware/encoder/ Отредактировал свои custom.hal и custom_postgui.hal, а прога не грузится, ругается Путем изучения документации, подправил файлы всё стало грузиться но работать не начало. Сразу после запуска LCNC светодиод горит зелёным, типа шпиндель вращается, а после включения шпинделя загорается красным, ну типа стоим. При этом оси не едут и программа не выполняется. Halscope сигналы encoder.0.phase-Z и encoder.0.phase-A отображает. Может кто из гуру посмотрит на конфиги и сразу ткнёт меня носом, буду благодарен
custom.hal
############# Spindle Encoder #############
# add scale and lowpass, these will be used in custom_postgui.hal
loadrt scale count=1
loadrt lowpass count=1


# add the encoder to HAL and attach it to threads.
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread

# set the HAL encoder to 60 pulses per revolution.
setp encoder.0.position-scale 60

# set the HAL encoder to non-quadrature simple counting using A only.
setp encoder.0.counter-mode true
#setp encoder.0.counter-mode 1 - alternative line

# connect the HAL encoder outputs to LinuxCNC.
net spindle-position encoder.0.position => motion.spindle-revs
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable

# connect the HAL encoder inputs to the real encoder.
net spindle-phase-a encoder.0.phase-A <= parport.0.pin-11-in
net spindle-phase-b encoder.0.phase-B
net spindle-index encoder.0.phase-Z <= parport.0.pin-12-in
############# End Spindle Encoder #############

# load a near component and attach it to a thread
loadrt near
addf near.0 servo-thread
loadrt abs
addf abs.0 servo-thread
addf scale.0 servo-thread

# connect one input to the commanded spindle speed
net spindle-cmd => near.0.in1

# connect one input to the encoder-measured spindle speed
net spindle-velocity => near.0.in2

# connect the output to the spindle-at-speed input
net spindle-at-speed motion.spindle-at-speed <= near.0.out

# set the spindle speed inputs to agree if within 1%
setp near.0.scale 1.01

#net spindle-fb-filtered-rps => abs.0.in
#net spindle-fb-filtered-abs-rps => scale.0.in

custom_postgui.hul
# **** Setup of spindle speed display using pyvcp -START ****
# **** Use ACTUAL spindle velocity from spindle encoder
# **** spindle-velocity bounces around so we filter it with lowpass
# **** spindle-velocity is signed so we use absolute component to remove sign
# **** ACTUAL velocity is in RPS not RPM so we scale it.

setp scale.0.gain 60
setp lowpass.0.gain 0.010000
net spindle-velocity => lowpass.0.in
net spindle-fb-filtered-rps lowpass.0.out => abs.0.in
net spindle-fb-filtered-abs-rps abs.0.out => scale.0.in
net spindle-fb-filtered-abs-rpm scale.0.out => pyvcp.spindle-speed

# **** set up spindle at speed indicator ****

net spindle-cmd => near.0.in1
net spindle-velocity => near.0.in2
net spindle-at-speed <= near.0.out
setp near.0.scale 1.500000
net spindle-at-speed => pyvcp.spindle-at-speed-led
Вложения
custom.hal
(1.75 КБ) 964 скачивания
custom_postgui.hal
(997 байт) 772 скачивания
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

Навскидку 1% очень мало здесь

# set the spindle speed inputs to agree if within 1%
setp near.0.scale 1.01

Для пробы увеличить до 1.2
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

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

Сообщение solo »

Maxmarinin писал(а):Сразу после запуска LCNC светодиод горит зелёным, типа шпиндель вращается, а после включения шпинделя загорается красным, ну типа стоим
может просто надо инвертировать сигнал motion.spindle-on , обычно об этом сигнале упоминается в "мой станок. hal"
Re: EMC2 Integrators Manual Перевод на русский язык #28
Maxmarinin
Новичок
Сообщения: 13
Зарегистрирован: 16 фев 2018, 20:27
Репутация: 0
Настоящее имя: Максим
Контактная информация:

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

Сообщение Maxmarinin »

По поводу масштаба, проверю когда доберусь до станка. А на счет motion.spindle-on (bit, out), так что-то я вообще его у себя в hal его не нашёл. А ведь ещё, видимо, должны быть прописаны motion.spindle-reverse (bit, out) и motion.spindle-revs (float, in) Для корректного выполнения перемещений синхронизированных со шпинделем, этот сигнал должен быть завязан на пин положения энкодера шпинделя. Энкодер шпинделя должен быть масштабирован согласно увеличению spindle-revs на 1.0, для каждого оборота шпинделя в направлении часовой стрелки (M3). Вот мой основной hal
# Generated by stepconf 1.1 at Sun Feb 25 01:22:49 2018
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hal_parport cfg="0 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
net spindle-cmd-rpm <= motion.spindle-speed-out
net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-cmd-rps <= motion.spindle-speed-out-rps
net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-at-speed => motion.spindle-at-speed

net xstep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net xdir => parport.0.pin-05-out
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir => parport.0.pin-07-out

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable

setp stepgen.1.position-scale [AXIS_2]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 35000
setp stepgen.1.dirsetup 35000
setp stepgen.1.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.1.position-cmd
net zpos-fb stepgen.1.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.1.step
net zdir <= stepgen.1.dir
net zenable axis.2.amp-enable-out => stepgen.1.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Ответить

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