Все-таки SCARA
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
И тоде вопрос про окно TK
Где его можно на постоянку отключить, чтоб не грузилось? У меня толи конфликты прерываний, или еще что, но с этим окном монитор вышибает на пару секунд периодически, и все тормозит. А иногда вышибает с концами. только перезагрузка компа помогает.
Где его можно на постоянку отключить, чтоб не грузилось? У меня толи конфликты прерываний, или еще что, но с этим окном монитор вышибает на пару секунд периодически, и все тормозит. А иногда вышибает с концами. только перезагрузка компа помогает.
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
Закрутились!
Спасибо)
Теперь шаги настроить и по мелочи вроде.
Кстати, гугл не помог найти требования по периодам шагов и пауз для tb6560. Может у кого был опыт настройки для этой железки?
Нвая странность. При ручном управлении осью 0, все выключаются.
Спасибо)
Теперь шаги настроить и по мелочи вроде.
Кстати, гугл не помог найти требования по периодам шагов и пауз для tb6560. Может у кого был опыт настройки для этой железки?
Нвая странность. При ручном управлении осью 0, все выключаются.
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
убрал лишнюю ось
сигналы включения сделал отдельными
но при движении оси 0 вправо включает ось 2, а при движении влево выключает(
сигналы включения сделал отдельными
но при движении оси 0 вправо включает ось 2, а при движении влево выключает(
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
вот внешность прототипа)
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
Уже решил снова попробовать переделать стандартную конфигурацию.
И как сделать фитбэк не нашел. Сам пробовал тщетно.
И как сделать фитбэк не нашел. Сам пробовал тщетно.
последняя конфигурация, скорости убавил, ускорения равными скоростям поставил. По прежнему в режиме координат ошибка следования моментально.UAVpilot писал(а):Нет. Когда заданная позиция оси сильно отличается от реальной (от фидбэка). В случае шаговиков никакого реального фидбэка нет и задание позиции должно быть замкнуто на фидбэк через stepgen. Но в конфиге это наверняка не сделано, поэтому и ругается.
P.S. Мне одному кажется, что этот вопрос вновь поднялся сразу после того как он был решён у РЕКЛАМА?..
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
может есть возможность, чтоб при выполнении задания он не пытался перейти в режим координат?
- РЕКЛАМА
- Почётный участник

- Сообщения: 736
- Зарегистрирован: 11 дек 2012, 21:46
- Репутация: 80
- Откуда: Брянск
- Контактная информация:
Re: Все-таки SCARA
Я пока бросил эксперименты, строю мастерскую грязную (сварка) что-бы из той что грязная сделать чистую, и собрать все мои станки в одно место.
Так что по теме ничего не подскажу. На мой взгляд где-то ошибка изначально в профиле, где ее искать ума не приложу.
Так что по теме ничего не подскажу. На мой взгляд где-то ошибка изначально в профиле, где ее искать ума не приложу.
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Все-таки SCARA
я вообще ничего не понял по фото... рука с 2 координатами, слабенький по Z и телескоп с 2 движками!? НО это не скара!?
на шаговых ее нет, единственный совет, почитай теорию, серво и шаговые двигатели.el.nebrey писал(а):И как сделать фитбэк не нашел
Всё просто! если знаешь КАК!
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
Позже постараюсь лучше фото сделать. Скара очень похожа, только у меня на одну координату меньше. Да 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
только тут наверное выбор будет между двумя вариантами координат, нужно еще условие добавить.
Я так понял, что в режиме координат программе необходимо инвертировать 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
только тут наверное выбор будет между двумя вариантами координат, нужно еще условие добавить.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Все-таки SCARA
Погоди. Фидбек есть в stepgen, а не только в сервах.
У тебя он не подключен?
Хотя вот же он :
Чтобы не было ferror можешь поставить его в ini по больше для каждой оси.
У тебя он не подключен?
Хотя вот же он :
Код: Выделить всё
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-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
Поставил ferror, так же ошибка осталась.
Разве может программа через этот фидбэк просчитать необходимый угол поворота двигателя, который ей только предстоит сделать?
Разве может программа через этот фидбэк просчитать необходимый угол поворота двигателя, который ей только предстоит сделать?
Nick писал(а):Погоди. Фидбек есть в stepgen, а не только в сервах.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Все-таки SCARA
Она считает отклонение осей. Может.el.nebrey писал(а):Разве может программа через этот фидбэк просчитать необходимый угол поворота двигателя, который ей только предстоит сделать?
Какая именно ошибка? На всех осях Ferror увеличил?
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
да, увеличил на всех.
и в двух конфигурациях.
в scara
joint 0 following error
joint 1 following error
в той которую с тривиальной начал
joint 0 following error
и в двух конфигурациях.
в scara
joint 0 following error
joint 1 following error
в той которую с тривиальной начал
joint 0 following error
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Все-таки SCARA
Покажи еще раз последний hal...
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
Код: Выделить всё
# 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
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Все-таки SCARA
А чего максимальная скорость не задана?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
Двигатели вообще двигаются?
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
Но в том hal, который через stapconf сделан эти строчки точно так же выглядят. Или не туда смотрю?
В скаре и правда почти не двигаются, но пытаются. Настройку шагов там еще почти не трогал, думал разобраться с этим, когда более серьезные проблемы будут ликвидированы.
Они в скаре по прежнему странно работают. При ручном движении оси 0, в одну и другую сторону, влючается и выключается двигатель 2, соответственно. Это я вообще не понимаю в какое место смотреть.
В скаре и правда почти не двигаются, но пытаются. Настройку шагов там еще почти не трогал, думал разобраться с этим, когда более серьезные проблемы будут ликвидированы.
Они в скаре по прежнему странно работают. При ручном движении оси 0, в одну и другую сторону, влючается и выключается двигатель 2, соответственно. Это я вообще не понимаю в какое место смотреть.
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Все-таки SCARA
el.nebrey, извиняюсь, сейчас дошло... нижний двиг, это поворотная ось, а не линейная 
но причем тут кинематика SCARA? там нет поворотных осей, только линейные... ито все по вертикали
но причем тут кинематика SCARA? там нет поворотных осей, только линейные... ито все по вертикали
Всё просто! если знаешь КАК!
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
как же, даже визуализация манипулятора scara демонстрирует что оcи 0 и 1 поворотные, а 2 уже линейная и вертикальная. все один в один, как у меня.
Последний раз редактировалось el.nebrey 23 сен 2015, 12:23, всего редактировалось 1 раз.
-
el.nebrey
- Новичок
- Сообщения: 31
- Зарегистрирован: 19 сен 2015, 13:50
- Репутация: 2
- Настоящее имя: Алексей Сергеевич Вазлёв
- Контактная информация:
Re: Все-таки SCARA
вот тут лучше видно
