Spindel problems in Gmoccapy

  • tecno
  • tecno's Avatar Topic Author
  • Offline
  • Platinum Member
  • Platinum Member
More
28 Apr 2017 15:52 - 28 Apr 2017 15:53 #92279 by tecno
Replied by tecno on topic Spindel problems in Gmoccapy

File Attachment:

File Name: Blomqvist_...4-28.hal
File Size:4 KB
Still something wrong

Attachments:
Last edit: 28 Apr 2017 15:53 by tecno.

Please Log in or Create an account to join the conversation.

More
28 Apr 2017 16:15 - 28 Apr 2017 16:21 #92281 by Todd Zuercher
Replied by Todd Zuercher on topic Spindel problems in Gmoccapy
You have 3 lines that are essentially trying to do the same thing twice.
These two lines
net spindle-index => encoder.0.phase-Z => encoder.0.phase-A
net spindle-index <= parport.0.pin-10-in
and this one line are functionally equivalent, except for the signal name.
net spindle_index parport.0.pin-10-in => encoder.0.phase-A => encoder.0.phase-Z

Here I've deleted the offending line and reconnected the original parallel port pin line.
# Generated by stepconf 1.1 at Mon Apr 17 15:16:45 2017
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0 ctrl_type=p,p,v
loadrt charge_pump
setp charge-pump.enable 1
net charge-pump <= charge-pump.out

loadrt encoder num_chan=1
loadrt scale count=1
loadrt near

net spindle-cmd-rpm => stepgen.2.velocity-cmd

setp stepgen.2.position-scale 0.9 #steps/RPM
setp stepgen.2.steplen 5000
setp stepgen.2.stepspace 5000
#setp stepgen.2.dirdelay 35000
setp stepgen.2.maxaccel 5000


addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf charge-pump base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread


addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread

addf scale.0 servo-thread
addf near.0 servo-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-index => encoder.0.phase-Z => encoder.0.phase-A

net spindle-cmd-rpm     <= motion.spindle-speed-out
net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-cmd-rps     <= motion.spindle-speed-out-rps
net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-at-speed    => motion.spindle-at-speed

net spindle-enable <= motion.spindle-on => stepgen.2.enable

net spindle-cw <= stepgen.2.step

net spindle-ccw <= stepgen.2.dir

#setp encoder.0.counter-mode 1
setp encoder.0.position-scale 1
setp encoder.0.counter-mode 1
setp encoder.0.x4-mode FALSE

setp scale.0.gain 60
setp near.0.scale 1.2
setp near.0.difference 10
net spindle-cmd => near.0.in1
net spindle-rpm => near.0.in2
net spindle-at-speed near.0.out => motion.spindle-at-speed


net coolant-flood <= iocontrol.0.coolant-flood

net xstep           => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir            => parport.0.pin-03-out
#setp parport.0.pin-04-out-invert 1
net zstep           => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
setp parport.0.pin-05-out-invert 1
net zdir            => parport.0.pin-05-out
net spindle-cw      => parport.0.pin-06-out
net spindle-ccw     => parport.0.pin-07-out
net coolant-flood   => parport.0.pin-09-out
net charge-pump     => parport.0.pin-14-out
net spindle-index   <= parport.0.pin-10-in
net home-z          <= parport.0.pin-11-in-not
net home-x          <= parport.0.pin-12-in-not
net estop-ext       <= parport.0.pin-15-in-not

net spindle-index-enable motion.spindle-index-enable <=> encoder.0.index-enable
net spindle-rps encoder.0.velocity => scale.0.in
net spindle-rpm scale.0.out

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
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_2]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 35000
setp stepgen.1.dirsetup 35000
setp stepgen.1.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.1.position-cmd
net zpos-fb stepgen.1.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.1.step
net zdir <= stepgen.1.dir
net zenable axis.2.amp-enable-out => stepgen.1.enable
net home-z => axis.2.home-sw-in

net estop-ext => 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
Last edit: 28 Apr 2017 16:21 by Todd Zuercher.

Please Log in or Create an account to join the conversation.

  • tecno
  • tecno's Avatar Topic Author
  • Offline
  • Platinum Member
  • Platinum Member
More
28 Apr 2017 16:27 - 28 Apr 2017 16:42 #92282 by tecno
Replied by tecno on topic Spindel problems in Gmoccapy
Now no errors so I can start. But still no rpm show on screen.

I am a bit suspicious on the pulse length that Mach needs quite long pulse.
So maybe there must be some filters schmitt-trigger to make pulse suitable for LCNC.

How to measure incoming pulse width on pin 10?

Found the halscope in gmoccapy. pulsewidth 45/46 ms at low rpm of approx 200rpm
Last edit: 28 Apr 2017 16:42 by tecno.

Please Log in or Create an account to join the conversation.

More
28 Apr 2017 16:51 - 28 Apr 2017 16:51 #92286 by Todd Zuercher
Replied by Todd Zuercher on topic Spindel problems in Gmoccapy
You can easily look at parport.0.pin-10-in with Halscope.

But there are some other issues.
Not sure why you added a scale component for the encoder, the encoder has a scale built in.
Try this:
# Generated by stepconf 1.1 at Mon Apr 17 15:16:45 2017
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0 ctrl_type=p,p,v
loadrt charge_pump
setp charge-pump.enable 1
net charge-pump <= charge-pump.out

loadrt encoder num_chan=1
loadrt scale count=1
loadrt near

net spindle-cmd-rpm => stepgen.2.velocity-cmd

setp stepgen.2.position-scale 0.9 #steps/RPM
setp stepgen.2.steplen 5000
setp stepgen.2.stepspace 5000
#setp stepgen.2.dirdelay 35000
setp stepgen.2.maxaccel 5000


addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf charge-pump base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread


addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread

addf scale.0 servo-thread
addf near.0 servo-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-index => encoder.0.phase-Z => encoder.0.phase-A

net spindle-cmd-rpm     <= motion.spindle-speed-out
net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-cmd-rps     <= motion.spindle-speed-out-rps
net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-at-speed    => motion.spindle-at-speed
net spindle-position encoder.0.position => motion.spindle-revs
net spindle-velocity  encoder.0.velocity => motion.spindle-speed-in
net spindle-enable <= motion.spindle-on => stepgen.2.enable

net spindle-cw <= stepgen.2.step

net spindle-ccw <= stepgen.2.dir

#setp encoder.0.counter-mode 1
setp encoder.0.position-scale 1
setp encoder.0.counter-mode 1
setp encoder.0.x4-mode FALSE

setp scale.0.gain 60
setp near.0.scale 1.2
setp near.0.difference 10
net spindle-cmd => near.0.in1
net spindle-rpm => near.0.in2
net spindle-at-speed near.0.out => motion.spindle-at-speed


net coolant-flood <= iocontrol.0.coolant-flood

net xstep           => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir            => parport.0.pin-03-out
#setp parport.0.pin-04-out-invert 1
net zstep           => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
setp parport.0.pin-05-out-invert 1
net zdir            => parport.0.pin-05-out
net spindle-cw      => parport.0.pin-06-out
net spindle-ccw     => parport.0.pin-07-out
net coolant-flood   => parport.0.pin-09-out
net charge-pump     => parport.0.pin-14-out
net spindle-index   <= parport.0.pin-10-in
net home-z          <= parport.0.pin-11-in-not
net home-x          <= parport.0.pin-12-in-not
net estop-ext       <= parport.0.pin-15-in-not

net spindle-index-enable motion.spindle-index-enable <=> encoder.0.index-enable
#net spindle-rps encoder.0.velocity => scale.0.in
#net spindle-rpm scale.0.out

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
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_2]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 35000
setp stepgen.1.dirsetup 35000
setp stepgen.1.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.1.position-cmd
net zpos-fb stepgen.1.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.1.step
net zdir <= stepgen.1.dir
net zenable axis.2.amp-enable-out => stepgen.1.enable
net home-z => axis.2.home-sw-in

net estop-ext => 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
Last edit: 28 Apr 2017 16:51 by Todd Zuercher.

Please Log in or Create an account to join the conversation.

  • tecno
  • tecno's Avatar Topic Author
  • Offline
  • Platinum Member
  • Platinum Member
More
28 Apr 2017 17:04 #92288 by tecno
Replied by tecno on topic Spindel problems in Gmoccapy
Scale is in Norberts code

No difference, still same 45-46ms pulse width

Please Log in or Create an account to join the conversation.

More
28 Apr 2017 18:30 #92296 by Todd Zuercher
Replied by Todd Zuercher on topic Spindel problems in Gmoccapy
Sorry, I didn't look close enough to Norbert's post.

Changing this line I think might get you there.
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
to
net spindle-rpm encoder.0.velocity => motion.spindle-speed-in

Sorry about that.

Please Log in or Create an account to join the conversation.

  • tecno
  • tecno's Avatar Topic Author
  • Offline
  • Platinum Member
  • Platinum Member
More
28 Apr 2017 19:45 #92302 by tecno
Replied by tecno on topic Spindel problems in Gmoccapy
Will try this tomorrow, thanks.

Please Log in or Create an account to join the conversation.

  • tecno
  • tecno's Avatar Topic Author
  • Offline
  • Platinum Member
  • Platinum Member
More
29 Apr 2017 09:34 - 29 Apr 2017 09:35 #92324 by tecno
Replied by tecno on topic Spindel problems in Gmoccapy

Sorry, I didn't look close enough to Norbert's post.

Changing this line I think might get you there.
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
to
net spindle-rpm encoder.0.velocity => motion.spindle-speed-in

Sorry about that.


No such line in hal!

File Attachment:

File Name: Blomqvist_...4-29.hal
File Size:4 KB






Added that line, nothing. No numbers showing real rpm yet.
Attachments:
Last edit: 29 Apr 2017 09:35 by tecno.

Please Log in or Create an account to join the conversation.

More
29 Apr 2017 09:47 - 29 Apr 2017 09:48 #92327 by newbynobi
Replied by newbynobi on topic Spindel problems in Gmoccapy
I have tried to get your hal file OK.

So first I splitted it up. So in your INI you must load two hal files and one postgui hal file. Please find the modified files attached.

I did that, because this way it is easier to maintain and debug and correct.
I would recommend to split it even more so that you have one file for each part of your machine.

Please see also, that I did a little formating.
Also included the gmoccapy tool change and the tool offset connections.

Norbert

P.S. you must rename the files to fit your needs.
Attachments:
Last edit: 29 Apr 2017 09:48 by newbynobi.

Please Log in or Create an account to join the conversation.

  • tecno
  • tecno's Avatar Topic Author
  • Offline
  • Platinum Member
  • Platinum Member
More
29 Apr 2017 10:28 #92335 by tecno
Replied by tecno on topic Spindel problems in Gmoccapy
Thank you for the cleanup = much appreciated!

Still the problem remains = no real rpm shown.



Also M3/M4. Lathe front tooling spindle rotation shown as negative.
Attachments:

Please Log in or Create an account to join the conversation.

Moderators: newbynobiHansU
Time to create page: 0.278 seconds
Powered by Kunena Forum