Настройка токарного шпинделя

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Настройка токарного шпинделя

Сообщение valor »

На токарном станке настраиваю шпиндель, привод от асинхронника с частотником, пытаюсь настроить шим.
конвертер шим-напряжение от пурелогик. Проблема с реверсным вращением шпинделя, при задании в настройках PWM
диапазона 0-0 и 3000-1
прямые обороты совпадают с показанием энкодера, а вот обратные занижены,
то-есть M3s300 дает 300 оборотов а M4s300 дает где-то 200,
с оборотами вроде помогло задание диапазонов в виде -3000 - -1 и 3000 - 1
обороты в обе стороны стали одинаковы, но в обоих случаях при М4 не срабатывает SPINDLE-AT-SPEED и соответственно не начинается движение в режиме подачи мм на оборот, подскажите где я мог неправильно настроить?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение Serg »

В документации целая глава есть на эту тему с примерами.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

Я главу то прочитал, все 4 страницы про шпиндель, про SPINDEL AT SPEED вообще всего 1 абзац, и на мой вопрос там ответа нет, (ну или я тупой), сейчас поменял местами фазы а и б энкодера, и теперь прямые обороты не включают шпиндель ат спид, а обратные включают.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение nkp »

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

Re: Настройка токарного шпинделя

Сообщение Serg »

А что за PWM такой с двумя диапазонами?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

завтра утром доберусь до работы и все покажу, сделаю фото железа и выложу все конфиги,
pwm не двух диапазонный, я имел ввиду настройку в stepconf там указываются соответствия шим к оборотам, в первый раз я указал для скважности 0 соответствие нулю оборотов а для 1 соответствие 3000 оборотов
когда проверял реверс стал смотреть значения pwmgen и увидел что для М4 значение отрицательное, поэтому решил задать диапазон не от нуля а от -3000 оборотов и соответственно от -1 шим, это не логично для меня, но обороты стали соответствовать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение Serg »

valor писал(а):когда проверял реверс стал смотреть значения pwmgen и увидел что для М4 значение отрицательное
Вполне логично. Однако реверс на вашем частотнике скорее всего делается не отрицательным напряжением, а переключением соотв. дискретного входа. Посему надо просто на pwmgen подавать абсолютное значение задаания (в HAL есть соотв. компонент).
Точно так-же и с энкодером - для сравнения надо использовать абсолютное значение с энкодера. Это можно сделать либо тем-же компонентом, либо просто оторвав фазу B.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

Все верно, оторвать фазу б нельзя, потому-что тогда не будет работать функция G33.1, а она мне нужна.
вот мой hal файл сгенерированный 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="0x378 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0
loadrt encoder num_chan=1
loadrt abs count=1
loadrt scale count=1
loadrt lowpass count=1
loadrt near
loadrt pwmgen output_type=1

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf encoder.update-counters base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf encoder.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
addf abs.0 servo-thread
addf scale.0 servo-thread
addf lowpass.0 servo-thread
addf near.0 servo-thread

net spindle-cmd-rpm => pwmgen.0.value
net spindle-on <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 0.0
setp pwmgen.0.scale 2700.0
setp pwmgen.0.offset 0.0
setp pwmgen.0.dither-pwm true
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 spindle-cw <= motion.spindle-forward
net spindle-ccw <= motion.spindle-reverse

setp encoder.0.position-scale 800.000000
net spindle-position encoder.0.position => motion.spindle-revs
net spindle-velocity-feedback-rps encoder.0.velocity => motion.spindle-speed-in
net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable
net spindle-phase-a encoder.0.phase-A
net spindle-phase-b encoder.0.phase-B
net spindle-index encoder.0.phase-Z

net spindle-pwm     => parport.0.pin-04-out
net xstep           => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 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
net spindle-cw      => parport.0.pin-08-out
net spindle-ccw     => parport.0.pin-09-out
setp parport.0.pin-17-out-invert 1
net xdir            => parport.0.pin-17-out
net spindle-phase-b <= parport.0.pin-10-in
net spindle-index   <= parport.0.pin-11-in
net both-home-z     <= parport.0.pin-12-in
net both-home-x     <= parport.0.pin-13-in
net spindle-phase-a <= parport.0.pin-15-in

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 33000
setp stepgen.0.dirsetup 33000
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
net both-home-x => axis.0.home-sw-in
net both-home-x => axis.0.neg-lim-sw-in
net both-home-x => axis.0.pos-lim-sw-in

setp stepgen.1.position-scale [AXIS_2]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 33000
setp stepgen.1.dirsetup 33000
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 both-home-z => axis.2.home-sw-in
net both-home-z => axis.2.neg-lim-sw-in
net both-home-z => axis.2.pos-lim-sw-in

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

net tool-number <= iocontrol.0.tool-prep-number
net tool-change-loopback iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

Проблему решил, в файле custom_postgui.hal надо было поменять строку
net spindle-velocity-feedback-rps => near.0.in2
на строку
net spindle-fb-filtered-abs-rps => near.0.in2
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение Serg »

valor писал(а):Все верно, оторвать фазу б нельзя, потому-что тогда не будет работать функция G33.1, а она мне нужна.
Оторвать можно и всё работать будет - надо только сменить режим работы счётчика:

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

encoder.N.counter-mode bit i/o
        Enables counter mode. When true, the counter counts each rising edge of the phase-A input, ignoring the value on phase-B. This is useful for counting the output of a single channel (non-quadrature) sensor. When false (the default), it counts in quadrature mode.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

а при жестком нарезании резьбы когда он будет понимать что шпиндель остановился а потом реверсировался?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение Serg »

Когда после реверса скорость шпинделя уменьшится до нуля, а потом снова станет ненулевой. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

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

Re: Настройка токарного шпинделя

Сообщение Serg »

Такое может быть, если энкодер с малым разрешением.
В коде LinuxCNC при синхронизации не используется направление.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

https://www.youtube.com/watch?v=OL7VKCo_KKIэнкодер 200 линий на оборот, при подключении фазы б нарезает резьбу от м2.5 в дюрали на 300 оборотах.

на видео м3 как раз на этих деталях всплыли косяки с реверсными оборотами.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение Serg »

valor писал(а):энкодер 200 линий на оборот, при подключении фазы б нарезает резьбу от м2.5 в дюрали на 300 оборотах.
Ну да, маловато линий - больше тратится времени на то, чтобы понять, что шпиндель уже стоит и след. импульса не будет...
У меня на станке 1024 линии - всё ок.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

А у вас энкодер через лпт? или месу?
у меня энкодер где-то до 1500 оборотов нормально работает, потом похоже порт не успевает, вроде где-то слышал что надо резисторы подтяжки на ножки лпт поставить?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение Serg »

valor писал(а):А у вас энкодер через лпт? или месу?
Через месу.
при нынешних ценах на Mesa мне даже лень задумываться о наличии LPT на матплатах и переживать за большой джиттер. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
valor
Кандидат
Сообщения: 61
Зарегистрирован: 14 мар 2013, 13:40
Репутация: 2
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение valor »

valor писал(а):Проблему решил, в файле custom_postgui.hal надо было поменять строку
net spindle-velocity-feedback-rps => near.0.in2
на строку
net spindle-fb-filtered-abs-rps => near.0.in2

Проблема решилась не полностью, теперь шпиндель эт спид срабатывает, а вот резьба по циклу G76 не режется, выходит на глубину первого реза и встает, ошибок не выдает.
Аватара пользователя
Dmaster
Мастер
Сообщения: 1272
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Настройка токарного шпинделя

Сообщение Dmaster »

valor писал(а):ыходит на глубину первого реза и встает, ошибок не выдает.
Не видит Индексную точку на энкодере шпинделя ИЛИ отсчет энкодера идет в обратную сторону. (смените направление счета)
" Linux CNC - наше всё"
Ответить

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