Помогите настроить CNCLinux для работы с серводвигателями.
-
Argentum47
- Мастер
- Сообщения: 911
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Помогите настроить CNCLinux для работы с серводвигателями.
Во всех гайдах и самом степконфе описывается настройка шаговиков, но их параметры неприменимы к серводвигателям (шаги на оборот, деление микрошага), играться случайными значениями в поисках верного опасно, ибо у портала хватит дури выйти погулять через ворота бокса со станком или сделать с другой стороны ещё одни.
Трёхосевой фрезер, на портале два двигателя, передача зубчатая косозубая (шаг 5), колеса по 30 зубов. Двигатели M02430 750Вт 3000об/мин, разрешение энкодера 2500. У каждого свой сервоусилитель. Управляется по связке LPT<>PLC6X-G2, LPT порт - PCI плата. В маче можно было настроить это всё относительно легко, здесь я чёт потерялся и очкую.
Трёхосевой фрезер, на портале два двигателя, передача зубчатая косозубая (шаг 5), колеса по 30 зубов. Двигатели M02430 750Вт 3000об/мин, разрешение энкодера 2500. У каждого свой сервоусилитель. Управляется по связке LPT<>PLC6X-G2, LPT порт - PCI плата. В маче можно было настроить это всё относительно легко, здесь я чёт потерялся и очкую.
-
Argentum47
- Мастер
- Сообщения: 911
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Похоже не получается даже адрес порта правильный указать, со всеми адресами, которые выдаёт lspci тест в настройках осей ничего не двигает(в винде был c400), Enable на PLC плате включен принудительно
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Как найти адресс LPT в Linux? #1
вот здесь писали про ЛПТ
как по мне настройка LCNC через степ конфиг не сложнее чем мача
вот здесь писали про ЛПТ
как по мне настройка LCNC через степ конфиг не сложнее чем мача
-
Argentum47
- Мастер
- Сообщения: 911
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Там так и не получилось, а после четвёртой страницы все пошли слать друг друга по кругу, потому что всем казалось что ответ найден, но найти порт у Автаева получилось только в винде и заработал он только в маче.solo писал(а):Как найти адресс LPT в Linux? #1
вот здесь писали про ЛПТ
как по мне настройка LCNC через степ конфиг не сложнее чем мача
Легче, если у тебя портал на одном шаговике, мало того что степконф не даёт явно указать шаги на мм как мач, так похоже ещё и зависимая ось в cnclinux через жёпу настраивается...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Значит так, как я понял серва управляется по 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 порта.
В 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 для работы с серводвигателям
Он как раз с двумя COM портами, попробую может драйвер какой поискать для него. В lspci -v или -vv выводятся четыре адреса с400, с800, с000 и ещё какой-то, их как правильно писать в степконф c400 или cx400?torvn77 писал(а): И ещё, помню что я читал, о том, что не всякая внешняя плата с LPT годится, вроде если LPT скомбинирован с чем нибудь, например COM портом,
то интерфейсы смешиваются и используемый в LinuxCNC драйвер с таким чипом работать не может, так как чип не является стандартным чипом для LPT порта.
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Вообще в полном виде хексовое число должно записываться так: 0x12345Argentum47 писал(а):cx400
где 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 для работы с серводвигателям
Спасибо, попробуюtorvn77 писал(а):Вообще в полном виде хексовое число должно записываться так: 0x12345Argentum47 писал(а):cx400
Или если речь идёт о числе определённой длинны, то как 0x000001 0x01
Так вот, есть тема мануальник по настройке Конфигурация EMC2 LinuxCNC #1
В теме есть скриншот, в скриншоте число записано как 0х378 значит в твоём случае число надо писать как 0xC400
-
Argentum47
- Мастер
- Сообщения: 911
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
через pci так и не захотел, пришлось воткнуть его в забракованный ранее родной порт, под виндой его трясло нормально так. CNCL как-то по своему понимает оси, у меня от икса вообще ничего не едет, зато от выхода на Z едет X,а от открытия окна теста оси включается второе реле на плате PLC. Теперь надо как-то настроить зависимую ось, пока портал в узел не завязался. Есть где-нибудь мануал по параметрам файлов, где их искать? Степконф почти ничего не умеет настраивать, даже не знаю хватит ли его начинающим любителям.
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Переход с МАЧ на 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 двигателе на одной оси
вот тема и в начале лежит конфигурация станка с двумя ШД на ось можно посмотреть и по аналогии настроить свою конфигурацию
конфигурация станка лежит : переход / домашняя папка / 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 для работы с серводвигателям
Не очень понял, похоже на перенаправление импульсов с У на пины второго двигателя или что. Пока пробую прикрутить gantry kinssolo писал(а):Переход с МАЧ на Linux. Настройка ЕМС под 3-х осевой станок. #1
вот тема и в начале лежит конфигурация станка с двумя ШД на ось можно посмотреть и по аналогии настроить свою конфигурацию
конфигурация станка лежит : переход / домашняя папка / linuxcnc/configs/имя станка
в этой папке есть два файла "имя станка".ini и "имя станка.hal эти два файла ты создал при помощи степконфига ,
если посмотреть конфигурацию что дана выше, в хел файле есть такая информация показано как настроено работа 2 двигателе на одной оси
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
для "безопасной игры", поснимай ремни с сервArgentum47 писал(а):играться случайными значениями в поисках верного опасно, ибо у портала хватит дури выйти погулять через ворота бокса со станком или сделать с другой стороны ещё одни.
Всё просто! если знаешь КАК!
-
Argentum47
- Мастер
- Сообщения: 911
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Уже более менее подогнал SCALE под нужный, не точно, но хотя бы намного дальше заданного не уедет. Теперь надо настроить датчки для выравнивания балки, как это правильно делать и в CNCL есть что-нибудь вроде мачевской менюхи Diagnostics?NightV писал(а): для "безопасной игры", поснимай ремни с серв
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Это достаточно просто делается руками, например в посте #10 вам привели пример назначения сигналов на конкретные пины LPT порта.Argentum47 писал(а):Теперь надо настроить датчки для выравнивания балки, как это правильно делать и в CNCL есть что-нибудь вроде мачевской менюхи Diagnostics?
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 для работы с серводвигателям
рядовому пользователю это не обязательно знать! крепче спать будет!torvn77 писал(а):LinuxCNC представляет из себя совокупность запущенных в хале независимых(!!! это очень важно понять!!!)
torvn77, в твоих постах много инфы, которой новичкам лучше не знать, ты их пугаешь!
Всё просто! если знаешь КАК!
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
NightV, это да, но пойди разберись что у него напутано, толи прикрутил провода не так,
то ли в мастере не так распиновку указал, толи ещё что.
Проще научить работать с отдельными блоками и потом пойти по цепочке.
то ли в мастере не так распиновку указал, толи ещё что.
Проще научить работать с отдельными блоками и потом пойти по цепочке.
-
Argentum47
- Мастер
- Сообщения: 911
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Да не, torvn77 вполне понятно излагает, с наглядными примерами, Пины выходов я уже переназначил, всё что надо инвертировал и gantry kins прикрутил, сейчас у меня при ручной подаче вылазят joint following error'ы по всем осям, ну и axis пишет что не понимает g-код, который я пытаюсь скормить ему (вроде этого ), причём с какой строки не запускай. Видимо у интерпретатора отличные от мача требования к коду.
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
NightV писал(а):которой новичкам лучше не знать, ты их пугаешь!
Абсолютная победаArgentum47 писал(а):Да не, torvn77 вполне понятно излагает, с наглядными примерами, Пины выходов я уже переназначил,
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Абсолютная будет, когда у ТС всё заработаетtorvn77 писал(а):Абсолютная победа
-
Argentum47
- Мастер
- Сообщения: 911
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Re: Помогите настроить CNCLinux для работы с серводвигателям
Та что делать с ошибками? Ferror = 100 на всех осях 
Ещё вопрос как установить Base period maximum jitter без stepconf'a? он опять мне и gantrykins сотрёт и четвёртую ось поворотной сделает...
Ещё вопрос как установить Base period maximum jitter без stepconf'a? он опять мне и gantrykins сотрёт и четвёртую ось поворотной сделает...