2.9 and Pendant Hal having problems..need some help please!

More
7 years 1 month ago #145674 by Lcvette
Hello all, I am having a time of getting a pendant going on a 2.9 system, the hal loads, i can see the pins and counts in halshow, but i cannot for the life of me get it to move and axis. the hal errors out on load if i use anything but joints in the syntax, so no axis.x.*** etc will load. I am not sure how to resolve this issue and its been fighting me and a few others for the better parts of 2 days now. if anyone running 2.9 can assist I would be grateful! below is a copy of the HAL, INI and mpg.hal being used. please help me keep a little of whats left of my hair!

mpg.hal:
Code:
#Jog Pendant #file name mpg.hal loadrt mux4 count=1 loadrt ilowpass addf mux4.0 servo-thread addf ilowpass.0 servo-thread setp ilowpass.0.scale 100 setp ilowpass.0.gain 0.01 setp joint.0.jog-accel-fraction .2 setp joint.1.jog-accel-fraction .2 setp joint.2.jog-accel-fraction .2 setp joint.3.jog-accel-fraction .2 net x-jog-select joint.0.jog-enable <= hm2_7i92.0.7i77.0.0.input-20 net y-jog-select joint.1.jog-enable <= hm2_7i92.0.7i77.0.0.input-21 net z-jog-select joint.2.jog-enable <= hm2_7i92.0.7i77.0.0.input-22 net a-jog-select joint.3.jog-enable <= hm2_7i92.0.7i77.0.0.input-23 net x10 hm2_7i92.0.7i77.0.0.input-26 => mux4.0.sel0 net x100 hm2_7i92.0.7i77.0.0.input-27 => mux4.0.sel1 setp mux4.0.in0 .0001 setp mux4.0.in1 .001 setp mux4.0.in2 .01 net jogscale mux4.0.out => joint.0.jog-scale net jogscale => joint.1.jog-scale net jogscale => joint.2.jog-scale net jogscale => joint.3.jog-scale net mpg-out hm2_7i92.0.7i77.0.0.enc0.count => ilowpass.0.in net jogcounts ilowpass.0.out => joint.0.jog-counts net jogcounts => joint.1.jog-counts net jogcounts => joint.2.jog-counts net jogcounts => joint.3.jog-counts


main HAL file:
Code:
loadrt [KINS]KINEMATICS #autoconverted trivkins loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_dio=20 num_aio=23 loadrt hostmot2 loadrt hm2_eth board_ip="10.10.10.10" config=" num_encoders=5 num_pwmgens=0 num_stepgens=5 sserial_port_0=30000000" setp hm2_7i92.0.watchdog.timeout_ns 5000000 loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.s loadrt abs names=abs.spindle loadrt lowpass names=lowpass.spindle loadrt scale names=scale.spindle loadrt near loadrt xor2 count=4 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.y.do-pid-calcs servo-thread addf pid.z.do-pid-calcs servo-thread addf pid.a.do-pid-calcs servo-thread addf pid.s.do-pid-calcs servo-thread addf scale.spindle servo-thread addf abs.spindle servo-thread addf lowpass.spindle servo-thread addf near.0 servo-thread addf hm2_7i92.0.write servo-thread addf xor2.0 servo-thread addf xor2.1 servo-thread setp hm2_7i92.0.dpll.01.timer-us -100 setp hm2_7i92.0.stepgen.timer-number 1 setp hm2_7i92.0.encoder.timer-number 1 # external output signals # --- DIGITAL OUTPUT --- net atc-out hm2_7i92.0.7i76.0.3.output-07 <= motion.digital-out-00 net atc-in hm2_7i92.0.7i76.0.3.output-08 <= motion.digital-out-01 # --- INCLUDES MANUAL TOOL RELEASE BUTTON INPUT BELOW --- net unclamp-tool-button xor2.0.in0 <= hm2_7i92.0.7i76.0.3.input-06 net unclamp-tool-toolchange xor2.0.in1 <= motion.digital-out-02 net drawbar-release hm2_7i92.0.7i76.0.3.output-03 <= xor2.0.out net atc-fwd hm2_7i92.0.7i76.0.3.output-05 <= motion.digital-out-03 net atc-rev hm2_7i92.0.7i76.0.3.output-06 <= motion.digital-out-04 # --- SPINDLE ORIENT BEGIN --- net spindle-orient-start spindle.0.orient hm2_7i92.0.7i77.0.0.output-08 # --- SPINDLE-ENABLE --- net spindle-enable hm2_7i92.0.7i77.0.0.output-09 # --- SPINDLE lOCKED --- net spindle-locked spindle.0.locked hm2_7i92.0.7i77.0.0.output-11 # --- X-ENABLE --- net x-enable hm2_7i92.0.7i76.0.3.output-12 # --- Y-ENABLE --- net y-enable hm2_7i92.0.7i76.0.3.output-13 # --- Z-ENABLE --- net z-enable hm2_7i92.0.7i76.0.3.output-14 # --- A-ENABLE --- net a-enable hm2_7i92.0.7i76.0.3.output-15 # --- Z-ENABLE --- net z-enable hm2_7i92.0.7i76.0.3.output-01 # --- COOLANT-FLOOD --- net coolant-flood hm2_7i92.0.7i76.0.3.output-04 # external input signals # --- SPINDLE ORIENT ENDED --- net spindle-orient-end spindle.0.is-oriented hm2_7i92.0.7i77.0.0.input-31 # --- ESTOP-EXT --- net estop-ext <= hm2_7i92.0.7i76.0.3.input-21 # --- PROBE-IN --- net probe-in <= hm2_7i92.0.7i77.0.0.input-15 # --- DIGITAL INPUTS --- net atc-is-in hm2_7i92.0.7i76.0.3.input-01 <= motion.digital-in-00 net atc-is-out hm2_7i92.0.7i76.0.3.input-00 <= motion.digital-in-01 net atc-zero hm2_7i92.0.7i76.0.3.input-03 <= motion.digital-in-03 net atc-index hm2_7i92.0.7i76.0.3.input-02 <= motion.digital-in-04 net tool-released hm2_7i92.0.7i76.0.3.input-05 <= motion.digital-in-02 net tool-clamped hm2_7i92.0.7i76.0.3.input-07 <= motion.digital-in-05 # --- HOME-Z --- net home-z <= hm2_7i92.0.7i77.0.0.input-09-not # --- LIMIT-Z --- net limit-z <= hm2_7i92.0.7i77.0.0.input-08-not # --- HOME-Y --- net home-y <= hm2_7i92.0.7i77.0.0.input-07-not # --- LIMIT-Y --- net limit-y <= hm2_7i92.0.7i77.0.0.input-06-not # --- HOME-X --- net home-x <= hm2_7i92.0.7i77.0.0.input-05-not # --- LIMIT-X --- net limit-x <= hm2_7i92.0.7i77.0.0.input-04-not #******************* # AXIS X #******************* 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 setp pid.x.maxerror 0 net x-index-enable <=> pid.x.index-enable net x-enable => pid.x.enable net x-pos-cmd => pid.x.command net x-vel-cmd => pid.x.command-deriv 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 <= hm2_7i92.0.encoder.01.position ##net x-pos-fb => joint.0.motor-pos-fb net x-encpos-fb => joint.0.motor-pos-fb net x-enable <= joint.0.amp-enable-out net x-enable => hm2_7i92.0.stepgen.00.enable # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.01.counter-mode 0 setp hm2_7i92.0.encoder.01.filter 1 setp hm2_7i92.0.encoder.01.index-invert 0 setp hm2_7i92.0.encoder.01.index-mask 0 setp hm2_7i92.0.encoder.01.index-mask-invert 0 setp hm2_7i92.0.encoder.01.scale [JOINT_0]ENCODER_SCALE # ****the following line is for drive tuning purposes only**** net x-encpos-fb <= hm2_7i92.0.encoder.01.position net x-vel-fb <= hm2_7i92.0.encoder.01.velocity #net x-pos-fb => joint.0.motor-pos-fb net x-index-enable joint.0.index-enable <=> hm2_7i92.0.encoder.01.index-enable net x-pos-rawcounts <= hm2_7i92.0.encoder.01.rawcounts # ---setup home / limit switch signals--- net home-x => joint.0.home-sw-in net limit-x => joint.0.neg-lim-sw-in #******************* # AXIS Y #******************* setp pid.y.Pgain [JOINT_1]P setp pid.y.Igain [JOINT_1]I setp pid.y.Dgain [JOINT_1]D setp pid.y.bias [JOINT_1]BIAS setp pid.y.FF0 [JOINT_1]FF0 setp pid.y.FF1 [JOINT_1]FF1 setp pid.y.FF2 [JOINT_1]FF2 setp pid.y.deadband [JOINT_1]DEADBAND setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT setp pid.y.error-previous-target true setp pid.y.maxerror 0 net y-index-enable <=> pid.y.index-enable net y-enable => pid.y.enable net y-pos-cmd => pid.y.command net y-vel-cmd => pid.y.command-deriv net y-pos-fb => pid.y.feedback net y-output => pid.y.output # Step Gen signals/setup setp hm2_7i92.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP setp hm2_7i92.0.stepgen.01.dirhold [JOINT_1]DIRHOLD setp hm2_7i92.0.stepgen.01.steplen [JOINT_1]STEPLEN setp hm2_7i92.0.stepgen.01.stepspace [JOINT_1]STEPSPACE setp hm2_7i92.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE setp hm2_7i92.0.stepgen.01.step_type 0 setp hm2_7i92.0.stepgen.01.control-type 1 setp hm2_7i92.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL setp hm2_7i92.0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL # ---closedloop stepper signals--- net y-pos-cmd <= joint.1.motor-pos-cmd net y-vel-cmd <= joint.1.vel-cmd net y-output <= hm2_7i92.0.stepgen.01.velocity-cmd net y-pos-fb <= hm2_7i92.0.stepgen.01.position-fb ##net y-pos-fb <= hm2_7i92.0.encoder.02.position ##net y-pos-fb => joint.1.motor-pos-fb net y-encpos-fb => joint.1.motor-pos-fb net y-enable <= joint.1.amp-enable-out net y-enable => hm2_7i92.0.stepgen.01.enable # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.02.counter-mode 0 setp hm2_7i92.0.encoder.02.filter 1 setp hm2_7i92.0.encoder.02.index-invert 0 setp hm2_7i92.0.encoder.02.index-mask 0 setp hm2_7i92.0.encoder.02.index-mask-invert 0 setp hm2_7i92.0.encoder.02.scale [JOINT_1]ENCODER_SCALE # ****the following line is for drive tuning purposes only**** net y-encpos-fb <= hm2_7i92.0.encoder.02.position net y-vel-fb <= hm2_7i92.0.encoder.02.velocity #net y-pos-fb => joint.1.motor-pos-fb net y-index-enable joint.1.index-enable <=> hm2_7i92.0.encoder.02.index-enable net y-pos-rawcounts <= hm2_7i92.0.encoder.02.rawcounts # ---setup home / limit switch signals--- net home-y => joint.1.home-sw-in net limit-y => joint.1.neg-lim-sw-in #******************* # AXIS Z #******************* setp pid.z.Pgain [JOINT_2]P setp pid.z.Igain [JOINT_2]I setp pid.z.Dgain [JOINT_2]D setp pid.z.bias [JOINT_2]BIAS setp pid.z.FF0 [JOINT_2]FF0 setp pid.z.FF1 [JOINT_2]FF1 setp pid.z.FF2 [JOINT_2]FF2 setp pid.z.deadband [JOINT_2]DEADBAND setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT setp pid.z.error-previous-target true setp pid.z.maxerror 0 net z-index-enable <=> pid.z.index-enable net z-enable => pid.z.enable net z-pos-cmd => pid.z.command net z-vel-cmd => pid.z.command-deriv 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_2]DIRSETUP setp hm2_7i92.0.stepgen.02.dirhold [JOINT_2]DIRHOLD setp hm2_7i92.0.stepgen.02.steplen [JOINT_2]STEPLEN setp hm2_7i92.0.stepgen.02.stepspace [JOINT_2]STEPSPACE setp hm2_7i92.0.stepgen.02.position-scale [JOINT_2]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_2]STEPGEN_MAXACCEL setp hm2_7i92.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL # ---closedloop stepper signals--- net z-pos-cmd <= joint.2.motor-pos-cmd net z-vel-cmd <= joint.2.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 <= hm2_7i92.0.encoder.03.position ##net z-pos-fb => joint.2.motor-pos-fb net z-encpos-fb => joint.2.motor-pos-fb net z-enable <= joint.2.amp-enable-out net z-enable => hm2_7i92.0.stepgen.02.enable # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.03.counter-mode 0 setp hm2_7i92.0.encoder.03.filter 1 setp hm2_7i92.0.encoder.03.index-invert 0 setp hm2_7i92.0.encoder.03.index-mask 0 setp hm2_7i92.0.encoder.03.index-mask-invert 0 setp hm2_7i92.0.encoder.03.scale [JOINT_2]ENCODER_SCALE # ****the following line is for drive tuning purposes only**** net z-encpos-fb <= hm2_7i92.0.encoder.03.position net z-vel-fb <= hm2_7i92.0.encoder.03.velocity #net z-pos-fb => joint.2.motor-pos-fb net z-index-enable joint.2.index-enable <=> hm2_7i92.0.encoder.03.index-enable net z-pos-rawcounts <= hm2_7i92.0.encoder.03.rawcounts # ---setup home / limit switch signals--- net home-z => joint.2.home-sw-in net limit-z => joint.2.neg-lim-sw-in #******************* # AXIS A #******************* setp pid.a.Pgain [JOINT_3]P setp pid.a.Igain [JOINT_3]I setp pid.a.Dgain [JOINT_3]D setp pid.a.bias [JOINT_3]BIAS setp pid.a.FF0 [JOINT_3]FF0 setp pid.a.FF1 [JOINT_3]FF1 setp pid.a.FF2 [JOINT_3]FF2 setp pid.a.deadband [JOINT_3]DEADBAND setp pid.a.maxoutput [JOINT_3]MAX_OUTPUT setp pid.a.error-previous-target true setp pid.a.maxerror 0 net a-index-enable <=> pid.a.index-enable net a-enable => pid.a.enable net a-pos-cmd => pid.a.command net a-vel-cmd => pid.a.command-deriv net a-pos-fb => pid.a.feedback net a-output => pid.a.output # Step Gen signals/setup setp hm2_7i92.0.stepgen.03.dirsetup [JOINT_3]DIRSETUP setp hm2_7i92.0.stepgen.03.dirhold [JOINT_3]DIRHOLD setp hm2_7i92.0.stepgen.03.steplen [JOINT_3]STEPLEN setp hm2_7i92.0.stepgen.03.stepspace [JOINT_3]STEPSPACE setp hm2_7i92.0.stepgen.03.position-scale [JOINT_3]STEP_SCALE setp hm2_7i92.0.stepgen.03.step_type 0 setp hm2_7i92.0.stepgen.03.control-type 1 setp hm2_7i92.0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL setp hm2_7i92.0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAXVEL # ---closedloop stepper signals--- net a-pos-cmd <= joint.3.motor-pos-cmd net a-vel-cmd <= joint.3.vel-cmd net a-output <= hm2_7i92.0.stepgen.03.velocity-cmd net a-pos-fb <= hm2_7i92.0.encoder.04.position net a-pos-fb => joint.3.motor-pos-fb net a-enable <= joint.3.amp-enable-out net a-enable => hm2_7i92.0.stepgen.03.enable # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.04.counter-mode 0 setp hm2_7i92.0.encoder.04.filter 1 setp hm2_7i92.0.encoder.04.index-invert 0 setp hm2_7i92.0.encoder.04.index-mask 0 setp hm2_7i92.0.encoder.04.index-mask-invert 0 setp hm2_7i92.0.encoder.04.scale [JOINT_3]ENCODER_SCALE net a-vel-fb <= hm2_7i92.0.encoder.04.velocity net a-pos-fb => joint.3.motor-pos-fb net a-index-enable joint.3.index-enable <=> hm2_7i92.0.encoder.04.index-enable net a-pos-rawcounts <= hm2_7i92.0.encoder.04.rawcounts # ---setup home / limit switch signals--- net a-home-sw => joint.3.home-sw-in net a-neg-limit => joint.3.neg-lim-sw-in net a-pos-limit => joint.3.pos-lim-sw-in #******************* # SPINDLE S #******************* setp pid.s.Pgain [SPINDLE_9]P setp pid.s.Igain [SPINDLE_9]I setp pid.s.Dgain [SPINDLE_9]D setp pid.s.bias [SPINDLE_9]BIAS setp pid.s.FF0 [SPINDLE_9]FF0 setp pid.s.FF1 [SPINDLE_9]FF1 setp pid.s.FF2 [SPINDLE_9]FF2 setp pid.s.deadband [SPINDLE_9]DEADBAND setp pid.s.maxoutput [SPINDLE_9]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 => 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.7i77.0.1.analogout0-scalemax [SPINDLE_9]OUTPUT_SCALE setp hm2_7i92.0.7i77.0.1.analogout0-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT setp hm2_7i92.0.7i77.0.1.analogout0-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT net spindle-output => hm2_7i92.0.7i77.0.1.analogout0 net spindle-enable hm2_7i92.0.7i77.0.1.analogena # ---Encoder feedback signals/setup--- setp hm2_7i92.0.encoder.00.counter-mode 0 setp hm2_7i92.0.encoder.00.filter 1 setp hm2_7i92.0.encoder.00.index-invert 0 setp hm2_7i92.0.encoder.00.index-mask 0 setp hm2_7i92.0.encoder.00.index-mask-invert 0 setp hm2_7i92.0.encoder.00.scale [SPINDLE_9]ENCODER_SCALE net spindle-revs <= hm2_7i92.0.encoder.00.position net spindle-vel-fb-rps <= hm2_7i92.0.encoder.00.velocity net spindle-index-enable <=> hm2_7i92.0.encoder.00.index-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--- net spindle-vel-cmd-rps => near.0.in1 net spindle-vel-fb-rps => near.0.in2 ########################## net spindle-at-speed <= near.0.out ########################## setp near.0.scale 1.000000 ########################## setp near.0.difference 5 ##sets spindle-at-speed true # Use ACTUAL spindle velocity from spindle encoder # spindle-velocity bounces around so we filter it with lowpass # spindle-velocity is signed so we use absolute component to remove sign # ACTUAL velocity is in RPS not RPM so we scale it. setp scale.spindle.gain 60 setp lowpass.spindle.gain 1.000000 net spindle-vel-fb-rps => scale.spindle.in net spindle-fb-rpm scale.spindle.out => abs.spindle.in net spindle-fb-rpm-abs abs.spindle.out => lowpass.spindle.in net spindle-fb-rpm-abs-filtered lowpass.spindle.out # ---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-ext => iocontrol.0.emc-enable-in # ---manual tool change signals--- #loadusr -W hal_manualtoolchange #net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change #net tool-change-confirmed 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 net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed

ini file:
Code:
# This config file was created 09-19-2019 [EMC] # The version string for this INI file. VERSION = 1.1 MACHINE = XK7130_INCH DEBUG = 0 [DISPLAY] DISPLAY = qtpyvcp probebasic FULLSCREEN = True POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 2.000000 MAX_SPINDLE_OVERRIDE = 2.000000 MIN_SPINDLE_OVERRIDE = 0.500000 DEFAULT_SPINDLE_SPEED = 1000 INTRO_GRAPHIC = linuxcnc.gif INTRO_TIME = 1 PROGRAM_PREFIX = /home/chris/linuxcnc/nc_files INCREMENTS = JOG .1in .01in .001in .0001in DEFAULT_LINEAR_VELOCITY = 6.000000 MAX_LINEAR_VELOCITY = 11.800000 MIN_LINEAR_VELOCITY = 0.016670 DEFAULT_ANGULAR_VELOCITY = 12.000000 MAX_ANGULAR_VELOCITY = 180.000000 MIN_ANGULAR_VELOCITY = 1.666667 EDITOR = gedit GEOMETRY = xyza [VTK] PROGRAM_BOUNDRY = False PROGRAM_TICKS = False PROGRAM_LABELS = False MACHINE_BOUNDRY = False MACHINE_TICKS = False MACHINE_LABELS = False GRID_LINES = False [FILTER] PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image PROGRAM_EXTENSION = .py Python Script png = image-to-gcode gif = image-to-gcode jpg = image-to-gcode py = python [PYTHON] TOPLEVEL = /home/chris/linuxcnc/configs/Probe_Basic/python/toplevel.py PATH_APPEND = /home/chris/linuxcnc/configs/Probe_Basic/python/ LOG_LEVEL = 8 [RS274NGC] #BELOW IS THE STARTUP CODE FOR THE MACHINE, WILL BE IN THIS STATE AT STARTUP RS274NGC_STARTUP_CODE = F10 S1000 G17 G20 G40 G43H0 G54 G64 P .0003 G80 G90 G94 G97 G98 M5 M9 PROGRAM_PREFIX = ~/linuxcnc/nc_files PARAMETER_FILE = linuxcnc.var FEATURES=30 SUBROUTINE_PATH = /home/chris/linuxcnc/configs/Probe_Basic/subroutines/ #BELOW ARE MY REMAPPED M CODES FOR TOOLCHANGES REMAP=M6 modalgroup=6 prolog=change_prolog ngc=toolchange epilog=change_epilog REMAP=M10 modalgroup=6 argspec=p ngc=m10 REMAP=M11 modalgroup=6 argspec=p ngc=m11 REMAP=M12 modalgroup=6 argspec=p ngc=m12 REMAP=M13 modalgroup=6 ngc=m13 REMAP=M21 modalgroup=6 ngc=m21 REMAP=M22 modalgroup=6 ngc=m22 REMAP=M23 modalgroup=6 ngc=m23 REMAP=M24 modalgroup=6 ngc=m24 REMAP=M25 modalgroup=6 ngc=m25 REMAP=M26 modalgroup=6 ngc=m26 [EMCMOT] EMCMOT = motmod COMM_TIMEOUT = 1.0 COMM_WAIT = 0.010 SERVO_PERIOD = 1000000 [TASK] TASK = milltask CYCLE_TIME = 0.010 [HOSTMOT2] # **** This is for info only **** # DRIVER0=hm2_eth # BOARD0=7i92 [HAL] HALUI = halui HALFILE = XK7130_INCH.hal HALFILE = mpg.hal POSTGUI_HALFILE = atc_motion.hal [HALUI] [TRAJ] SPINDLES = 1 COORDINATES = X Y Z A ARC_BLEND_ENABLE = 1 ARC_BLEND_FALLBACK_ENABLE = 0 ARC_BLEND_OPTIMIZATION_DEPTH = 50 ARC_BLEND_GAP_CYCLES = 4 ARC_BLEND_RAMP_FREQ = 100 MAX_ANGULAR_VELOCITY = 180.00 DEFAULT_ANGULAR_VELOCITY = 18.00 LINEAR_UNITS = in ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 1.18 MAX_LINEAR_VELOCITY = 11.80 NO_FORCE_HOMING = 1 [EMCIO] EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = tool.tbl [KINS] KINEMATICS = trivkins coordinates=XYZA JOINTS = 4 #================== # X Axis #================== [AXIS_X] MIN_LIMIT = -13.750 MAX_LIMIT = 13.385 MAX_VELOCITY = 11.80 MAX_ACCELERATION = 75.00 [JOINT_0] TYPE = LINEAR HOME = 0.0 FERROR = 1.00 MIN_FERROR = 0.10 MAX_VELOCITY = 11.80 MAX_ACCELERATION = 75.00 # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger. STEPGEN_MAXVEL = 14.75 STEPGEN_MAXACCEL = 150.00 P = 1000 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00037 BIAS = 0 DEADBAND = 0 MAX_OUTPUT = 0 ENCODER_SCALE = -84666.6 # these are in nanoseconds DIRSETUP = 3000 DIRHOLD = 6000 STEPLEN = 1000 STEPSPACE = 1000 STEP_SCALE = -25400 MIN_LIMIT = -13.750 MAX_LIMIT = 13.385 HOME_OFFSET = -13.385 HOME_SEARCH_VEL = -3.00 HOME_LATCH_VEL = -.400 HOME_FINAL_VEL = 6.00 HOME_USE_INDEX = no HOME_SEQUENCE = 1 #================== # Y Axis #================== [AXIS_Y] MIN_LIMIT = -15.630 MAX_LIMIT = 0 MAX_VELOCITY = 11.8 MAX_ACCELERATION = 75.00 [JOINT_1] TYPE = LINEAR HOME = 0.0 FERROR = 1.00 MIN_FERROR = 0.10 MAX_VELOCITY = 11.8 MAX_ACCELERATION = 75.00 # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger. STEPGEN_MAXVEL = 14.75 STEPGEN_MAXACCEL = 150.00 P = 1000 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00037 BIAS = 0 DEADBAND = 0 MAX_OUTPUT = 0 ENCODER_SCALE = -84666.6 # these are in nanoseconds DIRSETUP = 3000 DIRHOLD = 6000 STEPLEN = 1000 STEPSPACE = 1000 STEP_SCALE = -25400 MIN_LIMIT = -15.630 MAX_LIMIT = 0 HOME_OFFSET = -.7086 HOME_SEARCH_VEL = 3.00 HOME_LATCH_VEL = .400 HOME_FINAL_VEL = .400 HOME_USE_INDEX = no HOME_SEQUENCE = 1 #================== # Z Axis #================== [AXIS_Z] MIN_LIMIT = -17.125 MAX_LIMIT = .118 MAX_VELOCITY = 5.90 MAX_ACCELERATION = 70.00 [JOINT_2] TYPE = LINEAR HOME = 0.0 FERROR = 1.00 MIN_FERROR = 0.10 MAX_VELOCITY = 5.90 MAX_ACCELERATION = 70.00 # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger. STEPGEN_MAXVEL = 7.38 STEPGEN_MAXACCEL = 140.00 P = 1000 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0.00037 BIAS = 0 DEADBAND = 0 MAX_OUTPUT = 0 ENCODER_SCALE = 84666.6 # these are in nanoseconds DIRSETUP = 3000 DIRHOLD = 6000 STEPLEN = 1000 STEPSPACE = 1000 STEP_SCALE = 25400 MIN_LIMIT = -17.125 MAX_LIMIT = .118 HOME_OFFSET = .078 HOME_SEARCH_VEL = 3.00 HOME_LATCH_VEL = .400 HOME_FINAL_VEL = .400 HOME_USE_INDEX = no HOME_SEQUENCE = 0 #================== # A Axis #================== [AXIS_A] MIN_LIMIT = -9999.0 MAX_LIMIT = 9999.0 MAX_VELOCITY = 25.00 MAX_ACCELERATION = 100 [JOINT_3] TYPE = ANGULAR HOME = 0.0 FERROR = 1.0 MIN_FERROR = 0.10 MAX_VELOCITY = 25.00 MAX_ACCELERATION = 100 # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger. STEPGEN_MAXVEL = 31.25 STEPGEN_MAXACCEL = 200 P = 1000 I = 0 D = 0 FF0 = 0 FF1 = 1 FF2 = 0 BIAS = 0 DEADBAND = 0 MAX_OUTPUT = 0 ENCODER_SCALE = 1000 # these are in nanoseconds DIRSETUP = 3000 DIRHOLD = 6000 STEPLEN = 1000 STEPSPACE = 1000 STEP_SCALE = -1000 MIN_LIMIT = -9999.0 MAX_LIMIT = 9999.0 HOME_OFFSET = 0.0 HOME_SEQUENCE = 2 #================== # SPINDLE #================== [SPINDLE_9] P = 0.0 I = 0.0 D = 0.0 FF0 = 1.0 FF1 = 0.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 6225 ENCODER_SCALE = -4096 OUTPUT_SCALE = 6225 OUTPUT_MIN_LIMIT = -6225 OUTPUT_MAX_LIMIT = 6225

Please Log in to join the conversation.

More
7 years 1 month ago #145680 by PCW
To jog axis after homing you would need to connect the jog enable and jog count
signals to the corresponding axis pins in addition to the joint pins (plus set up the axis jog scaling etc)

for example:

net x-jog-select joint.0.jog-enable axis.x.jog-enable <= hm2_7i92.0.7i77.0.0.input-20

What error do you get?

BTW if you want a list of all available jog pins, try:

halcmd show pin *jog*

when LinuxCNC is running

Please Log in to join the conversation.

More
7 years 1 month ago #145685 by dgarrett
Recommended reading:
linuxcnc.org/docs/master/html/getting-st...dating-linuxcnc.html
Specifically:
linuxcnc.org/docs/master/html/getting-st...or_joints_axes_2_8_x

Excerpt of relevant halfile items for joint.0:
Code:
net jogcounts ilowpass.0.out => joint.0.jog-counts net x-jog-select joint.0.jog-enable <= hm2_7i92.0.7i77.0.0.input-20 net jogscale mux4.0.out => joint.0.jog-scale

If hardware (hm2_ stuff), is connected properly, machine
probably jogs joint.0 correctly prior to homing (joint mode)

Machine is configured using
Code:
[KINS] KINEMATICS = trivkins coordinates=XYZA ... JOINTS = 4 [TRAJ] COORDINATES = X Y Z A ...

So after homing:
Axis X == joint.0
Axis Y == joint.1
Axis Z == joint.2
Axis A == joint.3

For a trivkins machine with joint.0 == axis_coordinate_X, add the
following for jogging the X coordinate after homing:
Code:
neg jogcounts => axis.x.jog-counts neg x-jog-select => axis.x.jog-enable net jogscale => axis.x.jog-scale

Similar changes needed for axis Y (joint.1) and axis Z (joint.2)
and axis A (joint.3)

Please Log in to join the conversation.

More
7 years 1 month ago #145690 by Lcvette

PCW wrote: To jog axis after homing you would need to connect the jog enable and jog count
signals to the corresponding axis pins in addition to the joint pins (plus set up the axis jog scaling etc)

for example:

net x-jog-select joint.0.jog-enable axis.x.jog-enable <= hm2_7i92.0.7i77.0.0.input-20

What error do you get?

BTW if you want a list of all available jog pins, try:

halcmd show pin *jog*

when LinuxCNC is running


PCW, it said the pin didn't exist.. was wierd we had tried everything to try and get it to accept the hal initially but until we changed everything to joints it wouldn't take it.. heh

dgarrett, man than k you soooo very much adding those to the bottom of the hal file it came to life, had to adjust the scale down 2 decimal places but now everything works perfectly and is smooth as silk moving around! thank you so very much!!

Please Log in to join the conversation.

More
7 years 1 month ago #145691 by Lcvette
for future issue hunters.. i always appreciate when posters put up their completely resolved issues so i am posting the fixed hal file here for you all!!

Thanks again dgarrett!!

this is wired to the 7i77 enc0 mpg input pin 0 and 1 on TB7 for the wheel and the scale and axis/joint are listed in the hal file. I hope this resolution helps someone else going forward!

Code:
#Jog Pendant #file name mpg.hal loadrt mux4 count=1 loadrt ilowpass addf mux4.0 servo-thread addf ilowpass.0 servo-thread setp ilowpass.0.scale 100 setp ilowpass.0.gain 0.01 setp joint.0.jog-accel-fraction .5 setp joint.1.jog-accel-fraction .5 setp joint.2.jog-accel-fraction .5 setp joint.3.jog-accel-fraction .5 net x-jog-select joint.0.jog-enable <= hm2_7i92.0.7i77.0.0.input-20 net y-jog-select joint.1.jog-enable <= hm2_7i92.0.7i77.0.0.input-21 net z-jog-select joint.2.jog-enable <= hm2_7i92.0.7i77.0.0.input-22 net a-jog-select joint.3.jog-enable <= hm2_7i92.0.7i77.0.0.input-23 net x10 hm2_7i92.0.7i77.0.0.input-26 => mux4.0.sel0 net x100 hm2_7i92.0.7i77.0.0.input-27 => mux4.0.sel1 setp mux4.0.in0 .000001 setp mux4.0.in1 .00001 setp mux4.0.in2 .0001 net jogscale mux4.0.out => joint.0.jog-scale net jogscale => joint.1.jog-scale net jogscale => joint.2.jog-scale net jogscale => joint.3.jog-scale net mpg-out hm2_7i92.0.7i77.0.0.enc0.count => ilowpass.0.in net jogcounts ilowpass.0.out => joint.0.jog-counts net jogcounts => joint.1.jog-counts net jogcounts => joint.2.jog-counts net jogcounts => joint.3.jog-counts net jogcounts => axis.x.jog-counts net x-jog-select => axis.x.jog-enable net jogscale => axis.x.jog-scale net jogcounts => axis.y.jog-counts net y-jog-select => axis.y.jog-enable net jogscale => axis.y.jog-scale net jogcounts => axis.z.jog-counts net z-jog-select => axis.z.jog-enable net jogscale => axis.z.jog-scale net jogcounts => axis.a.jog-counts net a-jog-select => axis.a.jog-enable net jogscale => axis.a.jog-scale

Please Log in to join the conversation.

Time to create page: 4.994 seconds
Powered by Kunena Forum