Emco lathe - c11 breakout + 7i92 help with spindle setup

More
4 years 11 months ago #227787 by blitz355
When I run in the other direction it simply shows 100 (not -100). One is cw, the other is ccw.

I don't plan to support reverse rotation, do I simply add that line "spindle.0.speed-out-abs" into the hal or are there other attributes I need to include with the addition?

btw, new hal with my newfound ability to turn spindle on via m3/4. Just no spindle speed control
Code:
# Generated by PNCconf at Fri Nov 26 20:31:43 2021 # Using LinuxCNC version:  Master (2.9) # If you make changes to this file, they will be # overwritten when you run PNCconf again loadusr -Wn pyvcp pyvcp -c pyvcp [DISPLAY](PYVCP) loadrt [KINS]KINEMATICS loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS loadrt hostmot2 loadrt hm2_eth board_ip="10.10.10.10" config="num_encoders=2 num_pwmgens=2 num_stepgens=3"  setp    hm2_7i92.0.pwmgen.pwm_frequency 20000 setp    hm2_7i92.0.pwmgen.pdm_frequency 6000000 setp    hm2_7i92.0.watchdog.timeout_ns 5000000 loadrt pid names=pid.x,pid.z,pid.s loadrt abs names=abs.spindle loadrt lowpass names=lowpass.spindle addf hm2_7i92.0.read          servo-thread addf motion-command-handler   servo-thread addf motion-controller        servo-thread addf pid.x.do-pid-calcs       servo-thread addf pid.z.do-pid-calcs       servo-thread addf pid.s.do-pid-calcs       servo-thread addf abs.spindle              servo-thread addf lowpass.spindle          servo-thread addf hm2_7i92.0.write         servo-thread setp hm2_7i92.0.dpll.01.timer-us -50 setp hm2_7i92.0.stepgen.timer-number 1 # external output signals # --- SPINDLE-CW --- setp hm2_7i92.0.gpio.000.is_output true net spindle-cw  =>     hm2_7i92.0.gpio.000.out # --- SPINDLE-CCW --- setp hm2_7i92.0.gpio.005.is_output true net spindle-ccw  =>     hm2_7i92.0.gpio.005.out # external input signals #******************* #  AXIS X JOINT 0 #******************* setp   pid.x.Pgain     [JOINT_0]P setp   pid.x.Igain     [JOINT_0]I setp   pid.x.Dgain     [JOINT_0]D setp   pid.x.bias      [JOINT_0]BIAS setp   pid.x.FF0       [JOINT_0]FF0 setp   pid.x.FF1       [JOINT_0]FF1 setp   pid.x.FF2       [JOINT_0]FF2 setp   pid.x.deadband  [JOINT_0]DEADBAND setp   pid.x.maxoutput [JOINT_0]MAX_OUTPUT setp   pid.x.error-previous-target true # This setting is to limit bogus stepgen # velocity corrections caused by position # feedback sample time jitter. setp   pid.x.maxerror 0.000500 net x-index-enable  <=> pid.x.index-enable net x-enable        =>  pid.x.enable net x-pos-cmd       =>  pid.x.command net x-pos-fb        =>  pid.x.feedback net x-output        <=  pid.x.output # Step Gen signals/setup setp   hm2_7i92.0.stepgen.00.dirsetup        [JOINT_0]DIRSETUP setp   hm2_7i92.0.stepgen.00.dirhold         [JOINT_0]DIRHOLD setp   hm2_7i92.0.stepgen.00.steplen         [JOINT_0]STEPLEN setp   hm2_7i92.0.stepgen.00.stepspace       [JOINT_0]STEPSPACE setp   hm2_7i92.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE setp   hm2_7i92.0.stepgen.00.step_type        0 setp   hm2_7i92.0.stepgen.00.control-type     1 setp   hm2_7i92.0.stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL setp   hm2_7i92.0.stepgen.00.maxvel           [JOINT_0]STEPGEN_MAXVEL # ---closedloop stepper signals--- net x-pos-cmd    <= joint.0.motor-pos-cmd net x-vel-cmd    <= joint.0.vel-cmd net x-output     <= hm2_7i92.0.stepgen.00.velocity-cmd net x-pos-fb     <= hm2_7i92.0.stepgen.00.position-fb net x-pos-fb     => joint.0.motor-pos-fb net x-enable     <= joint.0.amp-enable-out net x-enable     => hm2_7i92.0.stepgen.00.enable # ---setup home / limit switch signals--- net x-home-sw     =>  joint.0.home-sw-in net x-neg-limit     =>  joint.0.neg-lim-sw-in net x-pos-limit     =>  joint.0.pos-lim-sw-in #******************* #  AXIS Z JOINT 1 #******************* setp   pid.z.Pgain     [JOINT_1]P setp   pid.z.Igain     [JOINT_1]I setp   pid.z.Dgain     [JOINT_1]D setp   pid.z.bias      [JOINT_1]BIAS setp   pid.z.FF0       [JOINT_1]FF0 setp   pid.z.FF1       [JOINT_1]FF1 setp   pid.z.FF2       [JOINT_1]FF2 setp   pid.z.deadband  [JOINT_1]DEADBAND setp   pid.z.maxoutput [JOINT_1]MAX_OUTPUT setp   pid.z.error-previous-target true # This setting is to limit bogus stepgen # velocity corrections caused by position # feedback sample time jitter. setp   pid.z.maxerror 0.000500 net z-index-enable  <=> pid.z.index-enable net z-enable        =>  pid.z.enable net z-pos-cmd       =>  pid.z.command net z-pos-fb        =>  pid.z.feedback net z-output        <=  pid.z.output # Step Gen signals/setup setp   hm2_7i92.0.stepgen.02.dirsetup        [JOINT_1]DIRSETUP setp   hm2_7i92.0.stepgen.02.dirhold         [JOINT_1]DIRHOLD setp   hm2_7i92.0.stepgen.02.steplen         [JOINT_1]STEPLEN setp   hm2_7i92.0.stepgen.02.stepspace       [JOINT_1]STEPSPACE setp   hm2_7i92.0.stepgen.02.position-scale  [JOINT_1]STEP_SCALE setp   hm2_7i92.0.stepgen.02.step_type        0 setp   hm2_7i92.0.stepgen.02.control-type     1 setp   hm2_7i92.0.stepgen.02.maxaccel         [JOINT_1]STEPGEN_MAXACCEL setp   hm2_7i92.0.stepgen.02.maxvel           [JOINT_1]STEPGEN_MAXVEL # ---closedloop stepper signals--- net z-pos-cmd    <= joint.1.motor-pos-cmd net z-vel-cmd    <= joint.1.vel-cmd net z-output     <= hm2_7i92.0.stepgen.02.velocity-cmd net z-pos-fb     <= hm2_7i92.0.stepgen.02.position-fb net z-pos-fb     => joint.1.motor-pos-fb net z-enable     <= joint.1.amp-enable-out net z-enable     => hm2_7i92.0.stepgen.02.enable # ---setup home / limit switch signals--- net z-home-sw     =>  joint.1.home-sw-in net z-neg-limit     =>  joint.1.neg-lim-sw-in net z-pos-limit     =>  joint.1.pos-lim-sw-in #******************* #  SPINDLE #******************* setp   pid.s.Pgain     [SPINDLE_0]P setp   pid.s.Igain     [SPINDLE_0]I setp   pid.s.Dgain     [SPINDLE_0]D setp   pid.s.bias      [SPINDLE_0]BIAS setp   pid.s.FF0       [SPINDLE_0]FF0 setp   pid.s.FF1       [SPINDLE_0]FF1 setp   pid.s.FF2       [SPINDLE_0]FF2 setp   pid.s.deadband  [SPINDLE_0]DEADBAND setp   pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT setp   pid.s.error-previous-target true net spindle-index-enable  <=> pid.s.index-enable net spindle-enable        =>  pid.s.enable net spindle-vel-cmd-rpm-abs     => pid.s.command net spindle-vel-fb-rpm-abs      => pid.s.feedback net spindle-output        <=  pid.s.output # ---PWM Generator signals/setup--- setp   hm2_7i92.0.pwmgen.00.output-type 1 setp   hm2_7i92.0.pwmgen.00.scale  [SPINDLE_0]OUTPUT_SCALE net spindle-vel-cmd-rpm     => hm2_7i92.0.pwmgen.00.value net spindle-enable      => hm2_7i92.0.pwmgen.00.enable # ---setup spindle control signals--- net spindle-vel-cmd-rps        <=  spindle.0.speed-out-rps net spindle-vel-cmd-rps-abs    <=  spindle.0.speed-out-rps-abs net spindle-vel-cmd-rpm        <=  spindle.0.speed-out net spindle-vel-cmd-rpm-abs    <=  spindle.0.speed-out-abs net spindle-enable             <=  spindle.0.on net spindle-cw                 <=  spindle.0.forward net spindle-ccw                <=  spindle.0.reverse net spindle-brake              <=  spindle.0.brake net spindle-revs               =>  spindle.0.revs net spindle-at-speed           =>  spindle.0.at-speed net spindle-vel-fb-rps         =>  spindle.0.speed-in net spindle-index-enable      <=>  spindle.0.index-enable # ---Setup spindle at speed signals--- sets spindle-at-speed true #****************************** # connect miscellaneous signals #****************************** #  ---HALUI signals--- net axis-select-x  halui.axis.x.select net jog-x-pos      halui.axis.x.plus net jog-x-neg      halui.axis.x.minus net jog-x-analog   halui.axis.x.analog net x-is-homed     halui.joint.0.is-homed net axis-select-z  halui.axis.z.select net jog-z-pos      halui.axis.z.plus net jog-z-neg      halui.axis.z.minus net jog-z-analog   halui.axis.z.analog net z-is-homed     halui.joint.1.is-homed net jog-selected-pos      halui.axis.selected.plus net jog-selected-neg      halui.axis.selected.minus net spindle-manual-cw     halui.spindle.0.forward net spindle-manual-ccw    halui.spindle.0.reverse net spindle-manual-stop   halui.spindle.0.stop net machine-is-on         halui.machine.is-on net jog-speed             halui.axis.jog-speed net MDI-mode              halui.mode.is-mdi #  ---coolant signals--- net coolant-mist      <=  iocontrol.0.coolant-mist net coolant-flood     <=  iocontrol.0.coolant-flood #  ---probe signal--- net probe-in     =>  motion.probe-input #  ---motion control signals--- net in-position               <=  motion.in-position net machine-is-enabled        <=  motion.motion-enabled #  ---digital in / out signals--- #  ---estop signals--- net estop-out     <=  iocontrol.0.user-enable-out net estop-out     =>  iocontrol.0.emc-enable-in #  ---manual tool change signals--- net tool-change-request    <= iocontrol.0.tool-change net tool-change-confirmed  => iocontrol.0.tool-changed net tool-number            <= iocontrol.0.tool-prep-number #  ---ignore tool prepare requests--- net tool-prepare-loopback   iocontrol.0.tool-prepare      =>  iocontrol.0.tool-prepared
Thank you,
Dan

Please Log in to join the conversation.

More
4 years 11 months ago #228075 by andypugh
There seems to be an unused spindle pid in your HAL, slightly complicating matters.

You are using "output_type 1" for the pwmgen, which sets which pin is PWM and which is DIR. Are you sure that those match the breakout board's expectations?

If you use halmeter and turn the spindle on, do you see the pwmgen enable go "true" and the pwmgen.value go the require rpm?

Please Log in to join the conversation.

Time to create page: 0.610 seconds
Powered by Kunena Forum