Страница 7 из 14
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 20:56
nkp
gendos писал(а):Так и нужно , но как это встроить в EMC2
можно с ладдером попробовать...
какие размеры стежков?
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 21:11
gendos
Размеры стежков приблизительно от 0,5мм до 3 мм
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 22:06
nkp
начало примерно так:
Код: Выделить всё
loadrt wcomp
loadrt integ
addf wcomp.0 servo-thread
addf integ.0 servo-thread
net m_v motion.current-vel integ.0.in
net res integ.0.reset wcomp.0.over
net ss integ.0.out wcomp.0.in
setp wcomp.0.max 3
здесь мы измеряем пройденый путь и через каждые 3мм даем отмашку...
нужно доделать поочередное вкл-выкл...
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 22:51
gendos
Вставил в HAL
выдал ошибку
Debug file information:
Can not find -sec MOT -var MOT -num 1
Can not find -sec IO -var IO -num 1
Can not find -sec LINUXCNC -var NML_FILE -num 1
Can not find -sec EMC -var NML_FILE -num 1
graver22.hal:153: Pin 'motion.current-vel' was already linked to signal 'current-vel'
2846
наверно нужно убрать из конфигурации зависимость мощности от скорости движения
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 22:56
nkp
Код: Выделить всё
loadrt wcomp
loadrt integ
loadrt toggle
loadrt edge
addf wcomp.0 servo-thread
addf integ.0 servo-thread
addf toggle.0 servo-thread
addf edge.0 servo-thread
net m_v motion.current-vel integ.0.in
net res integ.0.reset wcomp.0.over edge.0.in
net ss integ.0.out wcomp.0.in
setp wcomp.0.max 3
net e_out edge.0.out toggle.0.in
setp edge.0.out-width-ns 50
net s_out toggle.0.out ==> pin_parport-out
pin_parport-out - выход lpt,mesa...
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 23:02
nkp
gendos писал(а):наверно нужно убрать из конфигурации зависимость мощности от скорости движения
скинь весь хал
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 23:07
gendos
Вот файлы
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 23:10
nkp
попробуй:
(для просмотра содержимого нажмите на ссылку)Код: Выделить всё
loadrt wcomp
loadrt integ
loadrt toggle
loadrt edge
addf wcomp.0 servo-thread
addf integ.0 servo-thread
addf toggle.0 servo-thread
addf edge.0 servo-thread
net current-vel integ.0.in
net res integ.0.reset wcomp.0.over edge.0.in
net ss integ.0.out wcomp.0.in
setp wcomp.0.max 3
net e_out edge.0.out toggle.0.in
setp edge.0.out-width-ns 50
#net s_out toggle.0.out ==> pin_parport-out
пока можешь запустить с закомментированой строкой и смотреть реакцию в halshow
на пине toggle.0.out
только скорость поставь поменьше - а то отрисовка может не успевать...
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 23:24
gendos
на пине toggle.0.out есть изменения в зависимости от пройденного пути
Когда уберу закомментированую строку , что делать?
убрал закомментированую строку пишет
Pin 'pin_parport-out' does not exist
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 23:37
nkp
gendos писал(а):Когда уберу закомментированую строку , что делать?
вместо pin_parport-out надо прописать реальный (свободный) пин выхода LPT , а с него как то вкл-выкл что там надо...
Re: emc2 и со2 лазер
Добавлено: 25 янв 2014, 23:38
gendos
Понял спасибо , буду пробовать.
Re: emc2 и со2 лазер
Добавлено: 26 янв 2014, 18:55
gendos
Прописал пин 17 выхода LPT подключил 17 пин через резистор к выходу преоброзователя шим в 0-5 вольт,
которым раньше регулировал мощность лазера при изменении скорости движения и оборотов шпинделя.
Пинктир при движении получился.
Попробую обьяснить возникшие проблемы .
Перестало работать изменение мощности в зависимости от скорости движения, в результате сильно прожигает
в момент остановки и старта .(отключал 17 пин лазер переставал жеч)
Изменение мощности у меня задавалось ШИМом, может возможно вкл- выкл лазера выводить не на пин ,
а в HAL отключать или обьединить с ШИМ
Вот часть и весь мой HAL
Код: Выделить всё
net spindle-cmd <= motion.spindle-speed-out
net spindle-cmd => scale.spindle.in
net current-vel <= motion.current-vel
net current-vel => scale.spindle.gain
net spindle-cmd-out <= scale.spindle.out
net spindle-cmd-out => pwmgen.0.value
net spindle-on <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 1000
setp pwmgen.0.scale 10000000
setp pwmgen.0.offset 0.01
loadrt wcomp
loadrt integ
loadrt toggle
loadrt edge
addf wcomp.0 servo-thread
addf integ.0 servo-thread
addf toggle.0 servo-thread
addf edge.0 servo-thread
net current-vel integ.0.in
net res integ.0.reset wcomp.0.over edge.0.in
net ss integ.0.out wcomp.0.in
setp wcomp.0.max 1
net e_out edge.0.out toggle.0.in
setp edge.0.out-width-ns 50
net s_out toggle.0.out ==> parport.0.pin-17-out
Re: emc2 и со2 лазер
Добавлено: 26 янв 2014, 19:02
nkp
gendos писал(а): может возможно вкл- выкл лазера выводить не на пин ,а в HAL отключать или обьединить с ШИМ
ну конечно надо так...
просто я не следил за темой и совсем не в курсе был предыдущих решений...
==============
pwmgen.0.value - вот это задание шим,правильно?
а включаешь сейчас командой включения шпинделя(М3?)
Re: emc2 и со2 лазер
Добавлено: 26 янв 2014, 19:12
nkp
(для просмотра содержимого нажмите на ссылку)Код: Выделить всё
# Создан stepconf в Wed Oct 9 22:06:44 2013
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt core_xy_kins
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 3500
loadrt stepgen step_type=0,0,0
loadrt abs count=1
loadrt pwmgen output_type=1
loadrt scale names=scale.spindle
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.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
addf scale.spindle servo-thread
addf pwmgen.update servo-thread
addf abs.0 servo-thread
#==================================================
loadrt and2
addf and2.0 servo-thread
net spindle-cmd <= motion.spindle-speed-out
net spindle-cmd => scale.spindle.in
net current-vel <= motion.current-vel
net current-vel => scale.spindle.gain
net spindle-cmd-out <= scale.spindle.out
net spindle-cmd-out => pwmgen.0.value
net spindle-on <= motion.spindle-on => and2.0.in0
net enbl and2.0.out pwmgen.0.enable
net s_out toggle.0.out and2.0.in1
#-----------------------------------------------------------
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 1000
setp pwmgen.0.scale 10000000
setp pwmgen.0.offset 0.01
#setp pwmgen.0.pwm-freq 100.0
#setp pwmgen.0.scale 701666.6666667
#setp pwmgen.0.offset 0.01
setp pwmgen.0.dither-pwm true
net spindle-cw <= motion.spindle-forward
#net probe-in => motion.probe-input
net estop-out => parport.0.pin-01-out
setp parport.0.pin-02-out-invert 1
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
setp parport.0.pin-04-out-invert 1
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
setp parport.0.pin-06-out-invert 1
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
setp parport.0.pin-07-out-invert 1
net zdir => parport.0.pin-07-out
setp parport.0.pin-14-out-invert 1
net spindle-cw => parport.0.pin-14-out
setp parport.0.pin-16-out-invert 1
net spindle-pwm => parport.0.pin-16-out
setp parport.0.pin-17-out-invert 1
#net xenable => parport.0.pin-17-out
#net probe-in <= parport.0.pin-10-in
loadrt wcomp
loadrt integ
loadrt toggle
loadrt edge
addf wcomp.0 servo-thread
addf integ.0 servo-thread
addf toggle.0 servo-thread
addf edge.0 servo-thread
net current-vel integ.0.in
net res integ.0.reset wcomp.0.over edge.0.in
net ss integ.0.out wcomp.0.in
setp wcomp.0.max 1
net e_out edge.0.out toggle.0.in
setp edge.0.out-width-ns 50
net probe parport.0.pin-10-in-not => motion.probe-input
net probe-in <= parport.0.pin-10-in
net all-limit <= parport.0.pin-11-in-not
net home-z <= parport.0.pin-12-in-not
setp stepgen.1.position-scale [AXIS_0]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 10200
setp stepgen.1.dirsetup 10200
setp stepgen.1.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.1.position-cmd
net xpos-fb stepgen.1.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.1.step
net xdir <= stepgen.1.dir
net xenable axis.0.amp-enable-out => stepgen.1.enable
net all-limit => axis.1.neg-lim-sw-in
net all-limit => axis.1.pos-lim-sw-in
setp stepgen.0.position-scale [AXIS_1]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 10200
setp stepgen.0.dirsetup 10200
setp stepgen.0.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.0.position-cmd
net ypos-fb stepgen.0.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.0.step
net ydir <= stepgen.0.dir
net yenable axis.1.amp-enable-out => stepgen.0.enable
net all-limit => axis.0.neg-lim-sw-in
net all-limit => axis.0.pos-lim-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 10200
setp stepgen.2.dirsetup 10200
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 all-limit => axis.2.neg-lim-sw-in
net all-limit => axis.2.pos-lim-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
net tool-number <= iocontrol.0.tool-prep-number
net tool-change-loopback iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Re: emc2 и со2 лазер
Добавлено: 26 янв 2014, 21:11
gendos
Запустил ,выдало ошибку
Debug file information:
Can not find -sec MOT -var MOT -num 1
Can not find -sec IO -var IO -num 1
Can not find -sec LINUXCNC -var NML_FILE -num 1
Can not find -sec EMC -var NML_FILE -num 1
graver22.hal:46: Pin 'toggle.0.out' does not exist
1590
Re: emc2 и со2 лазер
Добавлено: 26 янв 2014, 21:17
nkp
(для просмотра содержимого нажмите на ссылку)Код: Выделить всё
# Создан stepconf в Wed Oct 9 22:06:44 2013
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt core_xy_kins
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 3500
loadrt stepgen step_type=0,0,0
loadrt abs count=1
loadrt pwmgen output_type=1
loadrt scale names=scale.spindle
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.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
addf scale.spindle servo-thread
addf pwmgen.update servo-thread
addf abs.0 servo-thread
#==================================================
loadrt wcomp
loadrt integ
loadrt toggle
loadrt edge
addf wcomp.0 servo-thread
addf integ.0 servo-thread
addf toggle.0 servo-thread
addf edge.0 servo-thread
net current-vel integ.0.in
net res integ.0.reset wcomp.0.over edge.0.in
net ss integ.0.out wcomp.0.in
setp wcomp.0.max 1
net e_out edge.0.out toggle.0.in
setp edge.0.out-width-ns 50
loadrt and2
addf and2.0 servo-thread
net spindle-cmd <= motion.spindle-speed-out
net spindle-cmd => scale.spindle.in
net current-vel <= motion.current-vel
net current-vel => scale.spindle.gain
net spindle-cmd-out <= scale.spindle.out
net spindle-cmd-out => pwmgen.0.value
net spindle-on <= motion.spindle-on => and2.0.in0
net enbl and2.0.out pwmgen.0.enable
net s_out toggle.0.out and2.0.in1
#-----------------------------------------------------------
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 1000
setp pwmgen.0.scale 10000000
setp pwmgen.0.offset 0.01
#setp pwmgen.0.pwm-freq 100.0
#setp pwmgen.0.scale 701666.6666667
#setp pwmgen.0.offset 0.01
setp pwmgen.0.dither-pwm true
net spindle-cw <= motion.spindle-forward
#net probe-in => motion.probe-input
net estop-out => parport.0.pin-01-out
setp parport.0.pin-02-out-invert 1
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
setp parport.0.pin-04-out-invert 1
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
setp parport.0.pin-06-out-invert 1
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
setp parport.0.pin-07-out-invert 1
net zdir => parport.0.pin-07-out
setp parport.0.pin-14-out-invert 1
net spindle-cw => parport.0.pin-14-out
setp parport.0.pin-16-out-invert 1
net spindle-pwm => parport.0.pin-16-out
setp parport.0.pin-17-out-invert 1
#net xenable => parport.0.pin-17-out
#net probe-in <= parport.0.pin-10-in
net probe parport.0.pin-10-in-not => motion.probe-input
net probe-in <= parport.0.pin-10-in
net all-limit <= parport.0.pin-11-in-not
net home-z <= parport.0.pin-12-in-not
setp stepgen.1.position-scale [AXIS_0]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 10200
setp stepgen.1.dirsetup 10200
setp stepgen.1.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.1.position-cmd
net xpos-fb stepgen.1.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.1.step
net xdir <= stepgen.1.dir
net xenable axis.0.amp-enable-out => stepgen.1.enable
net all-limit => axis.1.neg-lim-sw-in
net all-limit => axis.1.pos-lim-sw-in
setp stepgen.0.position-scale [AXIS_1]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 10200
setp stepgen.0.dirsetup 10200
setp stepgen.0.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.0.position-cmd
net ypos-fb stepgen.0.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.0.step
net ydir <= stepgen.0.dir
net yenable axis.1.amp-enable-out => stepgen.0.enable
net all-limit => axis.0.neg-lim-sw-in
net all-limit => axis.0.pos-lim-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 10200
setp stepgen.2.dirsetup 10200
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 all-limit => axis.2.neg-lim-sw-in
net all-limit => axis.2.pos-lim-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
net tool-number <= iocontrol.0.tool-prep-number
net tool-change-loopback iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Re: emc2 и со2 лазер
Добавлено: 26 янв 2014, 21:27
gendos
Emc2 запустилась нормально.
Какой сигнал посмотреть в HAL-метре , а то лазер на работе, не могу проверить ?
Re: emc2 и со2 лазер
Добавлено: 26 янв 2014, 21:48
nkp
сейчас мы подключили toggle.0.out и motion.spindle-on на входы логического "И",
а выход and2.0.out на пин разрешения работы шим генератора pwmgen.0.enable
net spindle-on <= motion.spindle-on => and2.0.in0
net enbl and2.0.out pwmgen.0.enable
net s_out toggle.0.out and2.0.in1
так что всё как было до "стежков" - только теперь с пина toggle.0.out мы поочередно (в зависимости от пройденого) разрешаем-запрещаем работу шим...
Re: emc2 и со2 лазер
Добавлено: 26 янв 2014, 21:57
gendos
Понял завтра проверю на лазере .
Re: emc2 и со2 лазер
Добавлено: 27 янв 2014, 15:30
Nick
wcomp + integ + toggle + edge - nkp +1

.