Страница 12 из 14
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 24 дек 2012, 20:24
Nick
С высотой, можно сделать так:
Код: Выделить всё
O#<find_metal> SUB
G38.2 Z-10 (ищем метал)
G92 Z0 (обнуление Z)
M66 E1 L0 (смотрим, что на пине motion.analog-in-00, значение сохраняется в #5399)
G0 Z[#5399] (едем на нужную высоту)
O#<find_metal> ENDSUB
В hal надо добавить
Код: Выделить всё
net pen-height => motion.analog-in-00
net pen-height <= сюда пин из gladevcp
Все

.
lobzik писал(а):Да и как мне добавлять строку перед каждым M03?
В какой CAM готовишь Gкод?
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 24 дек 2012, 20:51
nkp
Nick писал(а):С высотой, можно сделать так:
Код: Выделить всё • Развернуть
O#<find_metal> SUB
G38.2 Z-10 (ищем метал)
G92 Z0 (обнуление Z)
M66 E1 L0 (смотрим, что на пине motion.analog-in-00, значение сохраняется в #5399)
G0 Z[#5399] (едем на нужную высоту)
O#<find_metal> ENDSUB
решетки вроде в коде лишние...
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 24 дек 2012, 21:27
Nick
Вроде нет... ... хотя да - лишние!
Вот так правильно:
Код: Выделить всё
O<find_metal> SUB
G38.2 Z-10 (ищем метал)
G92 Z0 (обнуление Z)
M66 E1 L0 (смотрим, что на пине motion.analog-in-00, значение сохраняется в #5399)
G0 Z[#5399] (едем на нужную высоту)
O<find_metal> ENDSUB
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 25 дек 2012, 09:37
lobzik
Nick писал(а):
В какой CAM готовишь Gкод?
Пока пользовался мачем готовил в пронесте, а сейчас нужно наверное переходить на что-то под линукс. Может Gcode tools? Как там у вас разработка автораскладчика?
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 25 дек 2012, 10:09
Nick
lobzik писал(а):Как там у вас разработка автораскладчика?
Пока подзависла...
Sheetcam пробовал? Вроде как он и под linux идет.
Кстати, можно попробовать pronest под wine запустить. (sudo apt-get install wine) и потом на файле инсталятора кликаешь правой кнопкой и открыть в wine.
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 26 дек 2012, 12:37
lobzik
Попробовал установить код поиска металла, один раз сработал, а сейчас пишет: probe tripped during non-probe MDI command

Подозреваю, что это дребег контакта между пробником и металлом. Как это можно исправить? Да, и еще значение подпрыжки не сохраняетя после перезагрузки ЕМС, неудобно...
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 26 дек 2012, 16:05
Nick
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 27 дек 2012, 12:19
lobzik
По поводу дребезга все получилось, а вот по поводу сохранения значения ничего не понял. И еще вопрос по регулировке высоты по напряжению: как лучше сделать, читать напряжение по RS232, а потом сравнимать с заданным и регулировать высоту, или регулировать по дискретным сигналам UP и DOWN? И еще, как подключить компонент UPDOWN?
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 27 дек 2012, 12:34
nkp
UPDOWN
Внизу описание компонентов
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 27 дек 2012, 15:31
lobzik
А с какими пинами нужно связывать, чтоб этот компонент управлял осью Z?
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 27 дек 2012, 15:58
Nick
Что-то не могу найти, где-то я в общих словах это уже описывал...
сигнал на который на пины приходит это постоянный сигнал или дискретный.
Т.е.:
1. пока на пине up висит 1 постоянно поднимаем
или
2. на пине up появилась 1 подняли на 0.1мм, потом ждем 0 и снова 1 для еще 0.1
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 27 дек 2012, 16:10
lobzik
Пока на пине UP висит 1 поднимаем
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 27 дек 2012, 18:29
Nick
примерно так:
Код: Выделить всё
# делаем пин который будет тикать раз в servo-thread, not раз в период будет менять свое значение.
loadrt not names=timer
addf timer servo-thread
net timer <= timer.out => timer.in
# загружаем два and - они будут в качестве масок для таймера.
loadrt and2 names=and.up, and.down
addf and.up servo-thread
addf and.down servo-thread
# загружаем updown
loadrt updown names=updown.thc
addf updown.thc servo-thread
# загружаем sum2
loadrt sum2 names=sum2.thc
# теперь на выходе and.up.out будут 10101010 только если на пине up есть 1.
net timer => and.up.in0
net up-pin => and.up.in1
# подключаем пины updown.thc
net andup <= and.up.out => updown.thc.countup
# тоже самое с down
net timer => and.down.in0
net down-pin => and.down.in1
# подключаем пины updown.thc
net anddown <= and.down.out => updown.thc.countdown
# настраиваем updown максимум и минимум, помноженные на коэффициент суммы ниже
setp updown.thc.max 10000
setp updown.thc.min -10000
setp updown.thc.wrap 0
#теперь к сумме:
net updownd <= updown.thc.count => sum2.thc.in0
net z-cmd <= axis.2.motor-pos-cmd => sum2.thc.in1
# множитель для thc (в среднем скорость будет 500 единиц в секунду, т.е. 0.001 = 0.5 мм/сек)
setp sum2.thc.gain0 0.001
net z-motor-cmd <= sum2.thc.out => stepgen.2.position-cmd
Вроде более менее все.
Останется убрать предыдущую строку с axis.2.motor-pos-cmd и добавить пины к up-pin и down-pin.
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 10 янв 2013, 15:12
lobzik
Попробовал код, немного подправил, EMC загрузился, но не работает ось Z, Как только пытаюсь ей "пошевелить" выпадает ошибка: joint 2 following error
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 10 янв 2013, 16:42
Nick
А ты с нее обратную связь не отключил? Покаж hal.
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 10 янв 2013, 16:58
lobzik
Код: Выделить всё
# Include your customized HAL commands here
setp halui.jog-speed 300
# the jogging from the buttons
net remote-jog-x-plus halui.jog.0.plus <= gladevcp.hal_button6
net remote-jog-x-minus halui.jog.0.minus <= gladevcp.hal_button4
net remote-jog-y-plus halui.jog.1.plus <= gladevcp.hal_button2
net remote-jog-y-minus halui.jog.1.minus <= gladevcp.hal_button8
net remote-jog-z-plus halui.jog.2.plus <= gladevcp.hal_button3
net remote-jog-z-minus halui.jog.2.minus <= gladevcp.hal_button9
#Пробник высотомер
net pen-height => motion.analog-in-00
net pen-height <= gladevcp.hal_spinbutton1-f
#Задержка антидребезг
unlinkp parport.0.pin-11-in-not
unlinkp motion.probe-input
net probe-filter => motion.probe-input
loadrt debounce cfg=1
addf debounce.0 base-thread
setp debounce.0.delay 100
net probe-raw parport.0.pin-11-in-not => debounce.0.0.in
net probe-filter <= debounce.0.0.out
net probe-filter => gladevcp.hal_led1
net u_thc => gladevcp.hal_spinbutton2-f
net u_thc => gladevcp.hal_meter1
#Компонент updown
# делаем пин который будет тикать раз в servo-thread, not раз в период будет менять свое значение.
loadrt not names=timer
addf timer servo-thread
net timer <= timer.out => timer.in
# загружаем два and - они будут в качестве масок для таймера.
loadrt and2 names=and.up,and.down
addf and.up servo-thread
addf and.down servo-thread
# загружаем updown
loadrt updown names=updown.thc
addf updown.thc servo-thread
# загружаем sum2
loadrt sum2 names=sum2.thc
# теперь на выходе and.up.out будут 10101010 только если на пине up есть 1.
net timer => and.up.in0
net up-pin => and.up.in1
# подключаем пины updown.thc
net andup <= and.up.out => updown.thc.countup
# тоже самое с down
net timer => and.down.in0
net down-pin => and.down.in1
# подключаем пины updown.thc
net anddown <= and.down.out => updown.thc.countdown
# настраиваем updown максимум и минимум, помноженные на коэффициент суммы ниже
setp updown.thc.max 10000
setp updown.thc.min -10000
setp updown.thc.wrap 0
##########
unlinkp axis.2.motor-pos-cmd
unlinkp stepgen.2.position-cmd
#теперь к сумме:
net updownd <=sum2.thc.in0 updown.thc.count
net z-cmd <= axis.2.motor-pos-cmd => sum2.thc.in1
# множитель для thc (в среднем скорость будет 500 единиц в секунду, т.е. 0.001 = 0.5 мм/сек)
setp sum2.thc.gain0 0.001
net z-motor-cmd <= sum2.thc.out => stepgen.2.position-cmd
net up-pin parport.0.pin-12-in-not
net down-pin parport.0.pin-13-in-not
Вот он.
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 10 янв 2013, 17:50
Nick
И основной еще давай!
В двух словах: надо отключить feedback оси Z от stepgen и выдавать на него тот же z-cmd. Это не очень хорошо, т.к. мы реально не знаем куда может уехать ось.
Или можно сделать так: если знаем пределы до которых должен работать THC, скажем +-5см, то просто поставь в ini в [AXIS_2] FERROR = 50 и все.
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 11 янв 2013, 10:59
lobzik
Вот основной HAL
Код: Выделить всё
# Создан stepconf в Wed Dec 19 16:38:53 2012
# Все изменения в этом файле будут перезаписаны
# при следующем запуске 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 5000
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-cw <= motion.spindle-forward
net probe-in => motion.probe-input
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
setp parport.0.pin-03-out-invert 1
net xdir => parport.0.pin-03-out
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
setp parport.0.pin-05-out-invert 1
net ydir => 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
net estop-out => parport.0.pin-14-out
setp parport.0.pin-16-out-invert 1
net spindle-cw => parport.0.pin-16-out
setp parport.0.pin-17-out-invert 1
net spindle-cw => parport.0.pin-17-out
net all-home <= parport.0.pin-10-in
net probe-in <= parport.0.pin-11-in-not
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 43000
setp stepgen.0.dirsetup 43000
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 all-home => 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 43000
setp stepgen.1.dirsetup 43000
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 all-home => 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 43000
setp stepgen.2.dirsetup 43000
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 all-home => 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: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 11 янв 2013, 12:19
Nick
Значит, либо вот эту строчки добавить:
Код: Выделить всё
unlinkp axis.2.motor-pos-fb
net z-cmd => axis.2.motor-pos-fb
Но, лучше наверное FFERROR для оси Z увеличить. Так на экране будет показываться реальная координата оси и вообще лучше будет....
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Добавлено: 11 янв 2013, 14:04
lobzik
Ничего не получилось, при ручном управлении положение оси на экране меняется, двигатель не крутится
