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

More
20 Sep 2019 14:42 - 20 Sep 2019 14:46 #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:
#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:
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:
# 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
Last edit: 20 Sep 2019 14:46 by Lcvette.

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

More
20 Sep 2019 15:10 - 20 Sep 2019 15:12 #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
Last edit: 20 Sep 2019 15:12 by PCW.
The following user(s) said Thank You: Lcvette

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

More
20 Sep 2019 15:30 #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:
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
[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:
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)
The following user(s) said Thank You: Lcvette

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

More
20 Sep 2019 16:05 #145690 by Lcvette

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 or Create an account to join the conversation.

More
20 Sep 2019 16:12 #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!

#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
The following user(s) said Thank You: bevins, akb1212, tommylight, Halbear

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

Time to create page: 0.163 seconds
Powered by Kunena Forum