Страница 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 :good:.