Помогите настроить CNCLinux для работы с серводвигателями.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Помогите настроить CNCLinux для работы с серводвигателями.

Сообщение Argentum47 »

Во всех гайдах и самом степконфе описывается настройка шаговиков, но их параметры неприменимы к серводвигателям (шаги на оборот, деление микрошага), играться случайными значениями в поисках верного опасно, ибо у портала хватит дури выйти погулять через ворота бокса со станком или сделать с другой стороны ещё одни.

Трёхосевой фрезер, на портале два двигателя, передача зубчатая косозубая (шаг 5), колеса по 30 зубов. Двигатели M02430 750Вт 3000об/мин, разрешение энкодера 2500. У каждого свой сервоусилитель. Управляется по связке LPT<>PLC6X-G2, LPT порт - PCI плата. В маче можно было настроить это всё относительно легко, здесь я чёт потерялся и очкую.
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

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

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение solo »

Как найти адресс LPT в Linux? #1
вот здесь писали про ЛПТ
как по мне настройка LCNC через степ конфиг не сложнее чем мача
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

solo писал(а):Как найти адресс LPT в Linux? #1
вот здесь писали про ЛПТ
как по мне настройка LCNC через степ конфиг не сложнее чем мача
Там так и не получилось, а после четвёртой страницы все пошли слать друг друга по кругу, потому что всем казалось что ответ найден, но найти порт у Автаева получилось только в винде и заработал он только в маче.

Легче, если у тебя портал на одном шаговике, мало того что степконф не даёт явно указать шаги на мм как мач, так похоже ещё и зависимая ось в cnclinux через жёпу настраивается...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение torvn77 »

Значит так, как я понял серва управляется по step/dir через LPT порт.
В LinuxCNCдля формирования сигналов степдир используется компонент stepgen, мануальник к которому можно найти здесь:
http://linuxcnc.org/docs/2.7/html/man/m ... gen.9.html
Начнём с самого очевидного, скорости работы step/dir у современных устройств больше, чем компьютер способен их генерировать:
По этому параметры задающие ширину и промежутки между импульсами ставятся в минимальные значения.
setp stepgen.N.steplen 1
setp stepgen.N.stepspace 0
sep stepgen.N.dirhold 0
setp stepgen.N.dirsetup 1
setp здесь это команда, название которой дано из выполняемой ей функции: set pin.
setp stepgen.N.maxaccel 400.0
setp stepgen.N.maxvel 133.0
Задают скорость и ускорение соответственно, указываются в миллиметрах в секунду,
при этом указанные для этого компонента значения должны быть больше тех, что указаны для планировщика движений.

setp stepgen.N.position-scale 80
Масштабный коэффициент, являющийся отношением числа импульсов step к фактически пройденному расстоянию.

На счёт поиска адреса LPT не скажу, но помниться мне что в выводе lspci он называется не тривиально, так, что с ходу не поймёшь что это именно он, или он вообще не выводится..
Ещё кто-то рассказывал как этот адрес найти не то в /proc, не то в /sys, но кроме этого я ничего не помню.
И ещё, помню что я читал, о том, что не всякая внешняя плата с LPT годится, вроде если LPT скомбинирован с чем нибудь, например COM портом,
то интерфейсы смешиваются и используемый в LinuxCNC драйвер с таким чипом работать не может, так как чип не является стандартным чипом для LPT порта.
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

torvn77 писал(а): И ещё, помню что я читал, о том, что не всякая внешняя плата с LPT годится, вроде если LPT скомбинирован с чем нибудь, например COM портом,
то интерфейсы смешиваются и используемый в LinuxCNC драйвер с таким чипом работать не может, так как чип не является стандартным чипом для LPT порта.
Он как раз с двумя COM портами, попробую может драйвер какой поискать для него. В lspci -v или -vv выводятся четыре адреса с400, с800, с000 и ещё какой-то, их как правильно писать в степконф c400 или cx400?
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение torvn77 »

Argentum47 писал(а):cx400
Вообще в полном виде хексовое число должно записываться так: 0x12345
где 0х префикс, означающий что число шестнадцатиричное, а 12345 собственно число с цифрами [0-9abcdef]
Если надо показать то, что число содержит определённое количество цифр в принципе, то с лева пустые разряды указываются в виде нулей:
Вот например единица из четырёх символов
0x0001
а вот единица из шести символов:
0x000001
Далее, есть тема-мануальник по настройке Конфигурация EMC2 LinuxCNC #1
В теме есть скриншот, в скриншоте адрес LPT порта записан как 0х378,
значит в твоём случае число надо писать как 0xC400
Последний раз редактировалось torvn77 19 апр 2016, 01:41, всего редактировалось 3 раза.
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

torvn77 писал(а):
Argentum47 писал(а):cx400
Вообще в полном виде хексовое число должно записываться так: 0x12345
Или если речь идёт о числе определённой длинны, то как 0x000001 0x01
Так вот, есть тема мануальник по настройке Конфигурация EMC2 LinuxCNC #1
В теме есть скриншот, в скриншоте число записано как 0х378 значит в твоём случае число надо писать как 0xC400
Спасибо, попробую
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

через pci так и не захотел, пришлось воткнуть его в забракованный ранее родной порт, под виндой его трясло нормально так. CNCL как-то по своему понимает оси, у меня от икса вообще ничего не едет, зато от выхода на Z едет X,а от открытия окна теста оси включается второе реле на плате PLC. Теперь надо как-то настроить зависимую ось, пока портал в узел не завязался. Есть где-нибудь мануал по параметрам файлов, где их искать? Степконф почти ничего не умеет настраивать, даже не знаю хватит ли его начинающим любителям.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение solo »

Переход с МАЧ на Linux. Настройка ЕМС под 3-х осевой станок. #1
вот тема и в начале лежит конфигурация станка с двумя ШД на ось можно посмотреть и по аналогии настроить свою конфигурацию
конфигурация станка лежит : переход / домашняя папка / linuxcnc/configs/имя станка
в этой папке есть два файла "имя станка".ini и "имя станка.hal эти два файла ты создал при помощи степконфига ,
если посмотреть конфигурацию что дана выше, в хел файле есть такая информация
setp parport.0.pin-04-out-invert 1
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1

setp parport.0.pin-05-out-invert 1
net xstep => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
setp parport.0.pin-06-out-invert 1
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
setp parport.0.pin-07-out-invert 1
net zdir => parport.0.pin-07-out
setp parport.0.pin-08-out-invert 1
net ystep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1

net ydir => parport.0.pin-09-out
setp parport.0.pin-16-out-invert 1
net ydir => parport.0.pin-16-out

setp parport.0.pin-17-out-invert 1
net xdir => parport.0.pin-17-out
показано как настроено работа 2 двигателе на одной оси
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

solo писал(а):Переход с МАЧ на Linux. Настройка ЕМС под 3-х осевой станок. #1
вот тема и в начале лежит конфигурация станка с двумя ШД на ось можно посмотреть и по аналогии настроить свою конфигурацию
конфигурация станка лежит : переход / домашняя папка / linuxcnc/configs/имя станка
в этой папке есть два файла "имя станка".ini и "имя станка.hal эти два файла ты создал при помощи степконфига ,
если посмотреть конфигурацию что дана выше, в хел файле есть такая информация
(для просмотра содержимого нажмите на ссылку)
setp parport.0.pin-04-out-invert 1
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1

setp parport.0.pin-05-out-invert 1
net xstep => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
setp parport.0.pin-06-out-invert 1
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
setp parport.0.pin-07-out-invert 1
net zdir => parport.0.pin-07-out
setp parport.0.pin-08-out-invert 1
net ystep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1

net ydir => parport.0.pin-09-out
setp parport.0.pin-16-out-invert 1
net ydir => parport.0.pin-16-out

setp parport.0.pin-17-out-invert 1
net xdir => parport.0.pin-17-out
показано как настроено работа 2 двигателе на одной оси
Не очень понял, похоже на перенаправление импульсов с У на пины второго двигателя или что. Пока пробую прикрутить gantry kins
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение NightV »

Argentum47 писал(а):играться случайными значениями в поисках верного опасно, ибо у портала хватит дури выйти погулять через ворота бокса со станком или сделать с другой стороны ещё одни.
для "безопасной игры", поснимай ремни с серв ;)
Всё просто! если знаешь КАК!
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

NightV писал(а): для "безопасной игры", поснимай ремни с серв ;)
Уже более менее подогнал SCALE под нужный, не точно, но хотя бы намного дальше заданного не уедет. Теперь надо настроить датчки для выравнивания балки, как это правильно делать и в CNCL есть что-нибудь вроде мачевской менюхи Diagnostics?
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение torvn77 »

Argentum47 писал(а):Теперь надо настроить датчки для выравнивания балки, как это правильно делать и в CNCL есть что-нибудь вроде мачевской менюхи Diagnostics?
Это достаточно просто делается руками, например в посте #10 вам привели пример назначения сигналов на конкретные пины LPT порта.
LinuxCNC представляет из себя совокупность запущенных в хале независимых(!!! это очень важно понять!!!) модулей, параметры которых задаются командой setp,
а потоки(!!!) информации(сигналы) между которыми устанавливаются командой net
Вот например связывание двух модулей одним сигналом.
net z-home-sw <= parport.0.pin-12-in
net z-home-sw => axis.2.home-sw-in

Это же можно написать одной строкой:
net z-home-sw <= parport.0.pin-12-in => axis.2.home-sw-in
Значения знаков
<= => направление передачи сигнала, происходит от пина out типа к неопределённому количеству пинов in типа.
z-home-sw имя конкретной связки сигнала, может быть любым, например yuusha_yonin_ni-makikomareta
parport.0.pin-12-in пин одного модуля, в данном случае входной пин LPT порта номер 12,
axis.2.home-sw-in управляющегго осями мудуля, к которому должен подводиться сигнал с датчика home, и не какого попало, а оси Z.
-in в названии намекает что он выходной( в hal естественно), но так пины названы не во всех компонентах.

В общем вам надо сигналы с LPT подсоединить к сигналам компонента axis.
В принципе в конфиге они у вас уже соединены, но только не правильно, от чего и выходит "зато от выхода на Z едет X"
подробнее можно прочитать на этих двух страницах:
Про axis:
http://linuxcnc.org/docs/2.7/html/confi ... xis_joints
Про синтаксис hal:
http://linuxcnc.org/docs/2.7/html/hal/basic-hal.html
Про модуль работающий с LPT портом:
http://linuxcnc.org/docs/2.7/html/hal/p ... -port.html
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение NightV »

torvn77 писал(а):LinuxCNC представляет из себя совокупность запущенных в хале независимых(!!! это очень важно понять!!!)
рядовому пользователю это не обязательно знать! крепче спать будет! :)
torvn77, в твоих постах много инфы, которой новичкам лучше не знать, ты их пугаешь! :)
Всё просто! если знаешь КАК!
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение torvn77 »

NightV, это да, но пойди разберись что у него напутано, толи прикрутил провода не так,
то ли в мастере не так распиновку указал, толи ещё что.
Проще научить работать с отдельными блоками и потом пойти по цепочке.
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

Да не, torvn77 вполне понятно излагает, с наглядными примерами, Пины выходов я уже переназначил, всё что надо инвертировал и gantry kins прикрутил, сейчас у меня при ручной подаче вылазят joint following error'ы по всем осям, ну и axis пишет что не понимает g-код, который я пытаюсь скормить ему (вроде этого
2.txt
(578 байт) 971 скачивание
), причём с какой строки не запускай. Видимо у интерпретатора отличные от мача требования к коду.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение torvn77 »

NightV писал(а):которой новичкам лучше не знать, ты их пугаешь!
Argentum47 писал(а):Да не, torvn77 вполне понятно излагает, с наглядными примерами, Пины выходов я уже переназначил,
Абсолютная победа :hehehe:
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

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

torvn77 писал(а):Абсолютная победа :hehehe:
Абсолютная будет, когда у ТС всё заработает :)
Argentum47
Мастер
Сообщения: 911
Зарегистрирован: 05 июн 2015, 10:00
Репутация: 110
Откуда: Саратов
Контактная информация:

Re: Помогите настроить CNCLinux для работы с серводвигателям

Сообщение Argentum47 »

Та что делать с ошибками? Ferror = 100 на всех осях :thinking:
Ещё вопрос как установить Base period maximum jitter без stepconf'a? он опять мне и gantrykins сотрёт и четвёртую ось поворотной сделает...
Ответить

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