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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

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

Сообщение Bmax77 »

В общем настраиваю в Stepconf, делаю тест оси скорость 8000, ускорение 15000, микрошаг 8. (Крутится устойчиво длительное время)
Сохраняю настройки, запускаю LCNC, пытаюсь покрутить ось, тут же получаю Joint 3 following error.
Снижаю ползунком скорость, пробую, в общем в LCNC без ошибки работает на скорости раз в 5 ниже чем в Stepconf.
Что я делаю не так?
Аватара пользователя
vovafed
Мастер
Сообщения: 1822
Зарегистрирован: 08 фев 2013, 16:19
Репутация: 325
Настоящее имя: Владимир
Откуда: башкортостан
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение vovafed »

уменьшите ускорение хотябы до 3000-4000
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение PKM »

Ускорение 15000 мм/с2? Многовато
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Bmax77 »

PKM писал(а):Ускорение 15000 мм/с2? Многовато
Но в тесте то работало стабильно, а из LCNC сразу ошибка.
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Bmax77 »

vovafed писал(а):уменьшите ускорение хотябы до 3000-4000
Ну так и пришлось сделать, чтобы работало, но опять же в тесте то работает!
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение PKM »

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

Re: Настройка поворотной оси Stepconf

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

Ускорение, да, великовато, но в случае с ШД без обратной связи скорее всего приведет не к ошибке, а срыву шагов. Откуда LCNC будет знать, что механика не может отработать, как надо?
Выложите конфиги, посмотрим.
Чудес не бывает. Бывают фокусы.
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Bmax77 »

https://www.youtube.com/watch?v=PIbwx5cUh0k
Вот такие обороты дает движок в тесте.
Вот конфиги:
ini
(для просмотра содержимого нажмите на ссылку)
# Создан stepconf в Sun Sep 22 10:29:39 2013
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf

[EMC]
MACHINE = 4AXIS
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/max/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 43269
SERVO_PERIOD = 1000000

[HAL]
HALFILE = 4AXIS.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[TRAJ]
AXES = 4
COORDINATES = X Y Z A
MAX_ANGULAR_VELOCITY = 5200.00
DEFAULT_ANGULAR_VELOCITY = 60.00
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 1.70
MAX_LINEAR_VELOCITY = 17.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 17.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 375.0
SCALE = 1280.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0

[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 17.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 375.0
SCALE = 1280.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 17.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 375.0
SCALE = 1280.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0

[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 4940.02634681
MAX_ACCELERATION = 15000.0
STEPGEN_MAXACCEL = 18750.0
SCALE = 4.44444444444
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0
hal
(для просмотра содержимого нажмите на ссылку)
# Создан stepconf в Sun Sep 22 10:29:39 2013
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out "
setp parport.0.reset-time 1000
loadrt stepgen step_type=0,0,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 <= motion.spindle-speed-out
net spindle-cw <= motion.spindle-forward

setp parport.0.pin-01-out-invert 1
net estop-out => parport.0.pin-01-out
net ystep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
setp parport.0.pin-03-out-invert 1
net ydir => parport.0.pin-03-out
net xstep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
setp parport.0.pin-05-out-invert 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
net astep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net adir => parport.0.pin-09-out
setp parport.0.pin-14-out-invert 1
net spindle-cw => parport.0.pin-14-out


net estop-ext <= parport.0.pin-10-in-not


setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 22000
setp stepgen.0.dirsetup 22000
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_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 22000
setp stepgen.1.dirsetup 22000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable

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

setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 22000
setp stepgen.3.dirsetup 22000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable axis.3.amp-enable-out => stepgen.3.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-ext => 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
Ну и пару скриншотов:
IMAG0296.jpg (1901 просмотр) <a class='original' href='./download/file.php?id=18865&mode=view' target=_blank>Загрузить оригинал (702 КБ)</a>
Тут видно максимальную скорость в LCNC
IMAG0297.jpg (1901 просмотр) <a class='original' href='./download/file.php?id=18866&mode=view' target=_blank>Загрузить оригинал (930.64 КБ)</a>
А тут в Stepconf

Ну и вопрос до кучи, можно ли эту ось программно вращать без ограничений? Тоесть получить токарный шпиндель?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение nkp »

Bmax77 писал(а):Ну и вопрос до кучи, можно ли эту ось программно вращать без ограничений? Тоесть получить токарный шпиндель?
кажется надо просто убрать лимиты из ini (MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0)
Аватара пользователя
vovafed
Мастер
Сообщения: 1822
Зарегистрирован: 08 фев 2013, 16:19
Репутация: 325
Настоящее имя: Владимир
Откуда: башкортостан
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение vovafed »

Bmax77 писал(а):Ну и пару скриншотов:
там программка есть можно фотки с экрана делать ;)
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Настройка поворотной оси Stepconf

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

Нужно попробовать увеличить для этой оси FERROR и MIN_FERROR раз в 10.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Nick »

Bmax77 писал(а):В общем настраиваю в Stepconf, делаю тест оси скорость 8000, ускорение 15000, микрошаг 8.
Скорость 8 метров в секунду? Что за станок такой?
Какой стоит: STEPGEN_MAXACCEL?
Как все происходит в linuxcnc:
Есть планировщик траектории, он планирует траекторию исходя из MAX_VELOCITY и MAX_ACCELERATION, и передает задание stepgen.
Stepgen генерирует шаги, но обычно он слегка запаздывает (на 1 серво период + могут быть различные компенсации на люфты и т.д.), поэтому его ускоерние ставят больше чем ускорение оси у планировщика, STEPGEN_MAXACCEL это как раз ускорение для stepgen.

Дальше происходит следующее, на больших скоростях разница в том, сколько сказали прошагать шаговику и сколько он прошагает на самом деле будет расти (это может происходить, например, из-за неровных интервалос сервоцикла). Поэтому надо увеличить FERROR.
vovafed писал(а):там программка есть можно фотки с экрана делать
Да, жмешь PrtScr (рядом с F12) и получаешь красивый скриншот ;).
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Настройка поворотной оси Stepconf

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

Nick писал(а):Скорость 8 метров в секунду? Что за станок такой?
Это поворотная ось, там градусы в секунду.
PS: причем очень быстроповоротая :)
Чудес не бывает. Бывают фокусы.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение solo »

У меня похожее было получалось что LCNC не успевал выдавать импульсы степ я просто уменьшил (базе регион) если материнка позволяет это сделать , или как вариант надо изменить на драйвере ШД микрошаг в меньшую сторону и соответственно параметр скале в настройки оси, разгрузить LCNC от генерации большой частоты степ импульсов на поворотной оси. Мне это помогло.
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Bmax77 »

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

Re: Настройка поворотной оси Stepconf

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

Bmax77 писал(а):Тоесть в чистом виде Stepconf успевает такую частоту генерить, а LCNC со всей нагрузкой уже не справляется с такой частотой.
Не, не так. LCNC способен выдавать импульсы вплоть до базовой частоты - у тебя 23111 Гц. Для оси A расчетная частота 21955 Гц, то есть ниже.
Смотри в сторону увеличения FERROR.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Nick »

Bmax77 писал(а):Тоесть в чистом виде Stepconf успевает такую частоту генерить, а LCNC со всей нагрузкой уже не справляется с такой частотой.
Stepconf просто не следит за "обратной связью" (в кавычках потому, что у stepgen обратная связь виртуальная - он просто читает сколько сделал импульсов step и выдает это обратно, к реальной обраной связи это не совсем относится...)
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Bmax77 »

nkp писал(а):Ну и вопрос до кучи, можно ли эту ось программно вращать без ограничений? Тоесть получить токарный шпиндель?
Возвращаясь к этому вопросу, нашел вот эту тему http://linuxcnc.org/index.php/english/f ... mitstart=0
Кто хорошо понимает английский, получилось у них полностью решить проблему, чтобы можно было переключать режим работы 4й оси.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Nick »

А что именно надо сделать?
Если надо вращать бесконечно, то проще всего просто стереть (а еще лучше закомментировать) строки задания пределов оси в ini...
Bmax77
Мастер
Сообщения: 400
Зарегистрирован: 13 авг 2013, 11:05
Репутация: 39
Контактная информация:

Re: Настройка поворотной оси Stepconf

Сообщение Bmax77 »

И что у LCNC не произойдет переполнения там чегото и реально бесконечно будет крутиться?
G1 A∞ Fnnn ведь не сработает, предел то все равно будет так или иначе. А было б замечательно заставить его крутиться с нужной скоростью, а потом переключить в режим позиционирования по углу.
Ответить

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