Страница 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
пенорезка.jpg (2658 просмотров) <a class='original' href='./download/file.php?id=58586&mode=view' target=_blank>Загрузить оригинал (197.45 КБ)</a>
вот внешность прототипа)

Re: Все-таки SCARA

Добавлено: 22 сен 2015, 23:36
el.nebrey
Уже решил снова попробовать переделать стандартную конфигурацию.
И как сделать фитбэк не нашел. Сам пробовал тщетно.
UAVpilot писал(а):Нет. Когда заданная позиция оси сильно отличается от реальной (от фидбэка). В случае шаговиков никакого реального фидбэка нет и задание позиции должно быть замкнуто на фидбэк через stepgen. Но в конфиге это наверняка не сделано, поэтому и ругается.

P.S. Мне одному кажется, что этот вопрос вновь поднялся сразу после того как он был решён у РЕКЛАМА?..
prezz.tar.gz
(4.79 КБ) 1014 скачиваний
последняя конфигурация, скорости убавил, ускорения равными скоростям поставил. По прежнему в режиме координат ошибка следования моментально.

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, извиняюсь, сейчас дошло... нижний двиг, это поворотная ось, а не линейная :hehehe:
но причем тут кинематика SCARA? там нет поворотных осей, только линейные... ито все по вертикали :hehehe:

Re: Все-таки SCARA

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

Re: Все-таки SCARA

Добавлено: 23 сен 2015, 12:02
el.nebrey
пенорезка.jpg (2576 просмотров) <a class='original' href='./download/file.php?id=58607&mode=view' target=_blank>Загрузить оригинал (155.45 КБ)</a>
вот тут лучше видно