Страница 7 из 9
Re: Все-таки SCARA
Добавлено: 22 сен 2015, 17:41
el.nebrey
И тоде вопрос про окно TK
Где его можно на постоянку отключить, чтоб не грузилось? У меня толи конфликты прерываний, или еще что, но с этим окном монитор вышибает на пару секунд периодически, и все тормозит. А иногда вышибает с концами. только перезагрузка компа помогает.
Re: Все-таки SCARA
Добавлено: 22 сен 2015, 18:36
el.nebrey
Закрутились!
Спасибо)
Теперь шаги настроить и по мелочи вроде.
Кстати, гугл не помог найти требования по периодам шагов и пауз для tb6560. Может у кого был опыт настройки для этой железки?
Нвая странность. При ручном управлении осью 0, все выключаются.
Re: Все-таки SCARA
Добавлено: 22 сен 2015, 20:19
el.nebrey
убрал лишнюю ось
сигналы включения сделал отдельными
но при движении оси 0 вправо включает ось 2, а при движении влево выключает(
Re: Все-таки SCARA
Добавлено: 22 сен 2015, 20:26
el.nebrey
Re: Все-таки SCARA
Добавлено: 22 сен 2015, 23:36
el.nebrey
Уже решил снова попробовать переделать стандартную конфигурацию.
И как сделать фитбэк не нашел. Сам пробовал тщетно.
UAVpilot писал(а):Нет. Когда заданная позиция оси сильно отличается от реальной (от фидбэка). В случае шаговиков никакого реального фидбэка нет и задание позиции должно быть замкнуто на фидбэк через stepgen. Но в конфиге это наверняка не сделано, поэтому и ругается.
P.S. Мне одному кажется, что этот вопрос вновь поднялся сразу после того как он был решён у РЕКЛАМА?..
последняя конфигурация, скорости убавил, ускорения равными скоростям поставил. По прежнему в режиме координат ошибка следования моментально.
Re: Все-таки SCARA
Добавлено: 22 сен 2015, 23:40
el.nebrey
может есть возможность, чтоб при выполнении задания он не пытался перейти в режим координат?
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 01:21
РЕКЛАМА
Я пока бросил эксперименты, строю мастерскую грязную (сварка) что-бы из той что грязная сделать чистую, и собрать все мои станки в одно место.
Так что по теме ничего не подскажу. На мой взгляд где-то ошибка изначально в профиле, где ее искать ума не приложу.
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 01:28
NightV
я вообще ничего не понял по фото... рука с 2 координатами, слабенький по Z и телескоп с 2 движками!? НО это не скара!?
el.nebrey писал(а):И как сделать фитбэк не нашел
на шаговых ее нет, единственный совет, почитай теорию, серво и шаговые двигатели.
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 04:12
el.nebrey
Позже постараюсь лучше фото сделать. Скара очень похожа, только у меня на одну координату меньше. Да Z слабый. Но это все для пенопласта, сильный не нужен.
Я так понял, что в режиме координат программе необходимо инвертировать X и Y обратно в углы поворота двигателей. А так как скара для серво построена, в ней нужды в этом нет. Значит нужно уравнения сделать обратными, и с ними прописать фидбэк.
из
pos->x = 540*sin(joints[0])+450*sin((joints[1]+joints[0]));
pos->y = 540*cos(joints[0])+450*cos((joints[1]+joints[0]))
в
joints[0] = pos->x;
joints[1] = pos->y
только тут наверное выбор будет между двумя вариантами координат, нужно еще условие добавить.
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 09:04
Nick
Погоди. Фидбек есть в stepgen, а не только в сервах.
У тебя он не подключен?
Хотя вот же он :
Код: Выделить всё
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
Чтобы не было ferror можешь поставить его в ini по больше для каждой оси.
Код: Выделить всё
Вот это поставь
FERROR = 500
MIN_FERROR = 50
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 09:35
el.nebrey
Поставил ferror, так же ошибка осталась.
Разве может программа через этот фидбэк просчитать необходимый угол поворота двигателя, который ей только предстоит сделать?
Nick писал(а):Погоди. Фидбек есть в stepgen, а не только в сервах.
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 09:54
Nick
el.nebrey писал(а):Разве может программа через этот фидбэк просчитать необходимый угол поворота двигателя, который ей только предстоит сделать?
Она считает отклонение осей. Может.
Какая именно ошибка? На всех осях Ferror увеличил?
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 10:04
el.nebrey
да, увеличил на всех.
и в двух конфигурациях.
в scara
joint 0 following error
joint 1 following error
в той которую с тривиальной начал
joint 0 following error
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 10:29
Nick
Покажи еще раз последний hal...
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 10:34
el.nebrey
Код: Выделить всё
# core HAL config file for simulation - 3 axis
# load RT modules
loadrt scarakins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt ddt count=12
###############################
loadrt stepgen step_type=0,0,0
addf stepgen.make-pulses 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
###############################
# add motion controller functions to servo thread
addf ddt.0 servo-thread
addf ddt.1 servo-thread
addf ddt.2 servo-thread
addf ddt.3 servo-thread
addf ddt.4 servo-thread
addf ddt.5 servo-thread
addf ddt.6 servo-thread
# create HAL signals for position commands from motion module
net J0cmd <= axis.0.motor-pos-cmd => stepgen.0.position-cmd
net J1cmd <= axis.1.motor-pos-cmd => stepgen.1.position-cmd
net J2cmd <= axis.2.motor-pos-cmd => stepgen.2.position-cmd
# loop position commands back to motion module feedback
net J0fb => stepgen.0.position-fb => axis.0.motor-pos-fb
net J1fb => stepgen.1.position-fb => axis.1.motor-pos-fb
net J2fb => stepgen.2.position-fb => axis.2.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
# define the signals, and hook them up
net J0pos => ddt.0.in
net J0vel <= ddt.0.out
net J0vel => ddt.1.in
net J0acc <= ddt.1.out
net J1pos => ddt.2.in
net J1vel <= ddt.2.out
net J1vel => ddt.3.in
net J1acc <= ddt.3.out
net J2pos => ddt.4.in
net J2vel <= ddt.4.out
net J2vel => ddt.5.in
net J2acc <= ddt.5.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
# amp control
net xena axis.0.amp-enable-out => stepgen.0.enable
net yena axis.1.amp-enable-out => stepgen.1.enable
net zena axis.2.amp-enable-out => stepgen.2.enable
# connect signals to step pulse generator outputs
net 0step <= stepgen.0.step
net 0dir <= stepgen.0.dir
net 1step <= stepgen.1.step
net 1dir <= stepgen.1.dir
net 2step <= stepgen.2.step
net 2dir <= stepgen.2.dir
loadrt hal_parport cfg="0x0378"
addf parport.0.read base-thread 1
addf parport.0.write base-thread -1
# finally connect physical pins to the signals
net 0step => parport.0.pin-04-out
net 0dir => parport.0.pin-05-out
net 1step => parport.0.pin-02-out
net 1dir => parport.0.pin-03-out
net 2step => parport.0.pin-07-out
net 2dir => parport.0.pin-06-out
# set stepgen module scaling - get values from ini file
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.2.position-scale [AXIS_2]SCALE
# set stepgen module accel limits - get values from ini file
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net xflt axis.0.amp-fault-in
net yflt axis.1.amp-fault-in
net zflt axis.2.amp-fault-in
loadusr -W scaragui
net j0 axis.0.joint-pos-fb scaragui.joint0
net j1 axis.1.joint-pos-fb scaragui.joint1
net j2 axis.2.joint-pos-fb scaragui.joint2
setp scarakins.D1 10
setp scarakins.D2 90
setp scarakins.D3 50
setp scarakins.D4 80
setp scarakins.D5 50
setp scarakins.D6 50
Код: Выделить всё
loadrt hal_parport cfg="0x0378 out"
setp parport.0.reset-time 500
addf parport.0.read base-thread 1
addf parport.0.write base-thread -1
addf parport.0.reset base-thread
# finally connect physical pins to the signals
net 0step => parport.0.pin-01-out
setp parport.0.pin-01-out-reset 1
net 0dir => parport.0.pin-07-out
net 1step => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net 1dir => parport.0.pin-03-out
net 2step => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
net 2dir => parport.0.pin-04-out
net 0ena => parport.0.pin-14-out
net 1ena => parport.0.pin-02-out
net 2ena => parport.0.pin-06-out
net 0ena => stepgen.0.enable
net 1ena => stepgen.1.enable
net 2ena => stepgen.2.enable
# create a signal for the estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
# connect "spindle on" motion controller pin to a physical pin
net spindle-on motion.spindle-on => parport.0.pin-09-out
###
### You might use something like this to enable chopper drives when machine ON
### the Xen signal is defined in core_stepper.hal
###
# net Xen => parport.0.pin-01-out
###
### If you want active low for this pin, invert it like this:
###
# setp parport.0.pin-01-out-invert 1
###
### A sample home switch on the X axis (axis 0). make a signal,
### link the incoming parport pin to the signal, then link the signal
### to EMC's axis 0 home switch input pin
###
# net Xhome parport.0.pin-10-in => axis.0.home-sw-in
###
### Shared home switches all on one parallel port pin?
### that's ok, hook the same signal to all the axes, but be sure to
### set HOME_IS_SHARED and HOME_SEQUENCE in the ini file. See the
### user manual!
###
# net homeswitches <= parport.0.pin-10-in
# net homeswitches => axis.0.home-sw-in
# net homeswitches => axis.1.home-sw-in
# net homeswitches => axis.2.home-sw-in
###
### Sample separate limit switches on the X axis (axis 0)
###
# net X-neg-limit parport.0.pin-11-in => axis.0.neg-lim-sw-in
# net X-pos-limit parport.0.pin-12-in => axis.0.pos-lim-sw-in
###
### Just like the shared home switches example, you can wire together
### limit switches. Beware if you hit one, EMC will stop but can't tell
### you which switch/axis has faulted. Use caution when recovering from this.
###
# net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in
это по скаре
и вот по стандартной
Код: Выделить всё
# Generated by stepconf 1.1 at Sun Sep 20 20:44:13 2015
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt scarakins
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 500
loadrt stepgen step_type=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-at-speed => motion.spindle-at-speed
net xstep => parport.0.pin-01-out
setp parport.0.pin-01-out-reset 1
net xenable => parport.0.pin-02-out
net ydir => parport.0.pin-03-out
net zdir => parport.0.pin-04-out
net zstep => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
net xenable => parport.0.pin-06-out
setp parport.0.pin-07-out-invert 1
net xdir => parport.0.pin-07-out
net ystep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net xenable => parport.0.pin-14-out
net home-x <= parport.0.pin-10-in
net home-y <= parport.0.pin-11-in
net home-z <= parport.0.pin-12-in
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 11000
setp stepgen.0.dirsetup 11000
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 home-x => axis.0.home-sw-in
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 11000
setp stepgen.1.dirsetup 11000
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
net home-y => axis.1.home-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 11000
setp stepgen.2.dirsetup 11000
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
net home-z => axis.2.home-sw-in
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
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 10:42
Nick
el.nebrey писал(а):
# set stepgen module scaling - get values from ini file
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.2.position-scale [AXIS_2]SCALE
# set stepgen module accel limits - get values from ini file
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
А чего максимальная скорость не задана?
Двигатели вообще двигаются?
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 11:01
el.nebrey
Но в том hal, который через stapconf сделан эти строчки точно так же выглядят. Или не туда смотрю?
В скаре и правда почти не двигаются, но пытаются. Настройку шагов там еще почти не трогал, думал разобраться с этим, когда более серьезные проблемы будут ликвидированы.
Они в скаре по прежнему странно работают. При ручном движении оси 0, в одну и другую сторону, влючается и выключается двигатель 2, соответственно. Это я вообще не понимаю в какое место смотреть.
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 11:45
NightV
el.nebrey, извиняюсь, сейчас дошло... нижний двиг, это поворотная ось, а не линейная

но причем тут кинематика SCARA? там нет поворотных осей, только линейные... ито все по вертикали

Re: Все-таки SCARA
Добавлено: 23 сен 2015, 11:56
el.nebrey
как же, даже визуализация манипулятора scara демонстрирует что оcи 0 и 1 поворотные, а 2 уже линейная и вертикальная. все один в один, как у меня.
Re: Все-таки SCARA
Добавлено: 23 сен 2015, 12:02
el.nebrey