2.9 and Pendant Hal having problems..need some help please!
- Lcvette
- Topic Author
- Offline
- Platinum Member
Less
More
- Posts: 1254
- Thank you received: 636
20 Sep 2019 14:42 - 20 Sep 2019 14:46 #145674
by Lcvette
2.9 and Pendant Hal having problems..need some help please! was created 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:
main HAL file:
ini file:
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.
- PCW
- Away
- Moderator
Less
More
- Posts: 18056
- Thank you received: 4869
20 Sep 2019 15:10 - 20 Sep 2019 15:12 #145680
by PCW
Replied by PCW on topic 2.9 and Pendant Hal having problems..need some help please!
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
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.
- dgarrett
- Offline
- Platinum Member
Less
More
- Posts: 567
- Thank you received: 323
20 Sep 2019 15:30 #145685
by dgarrett
Replied by dgarrett on topic 2.9 and Pendant Hal having problems..need some help please!
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:
If hardware (hm2_ stuff), is connected properly, machine
probably jogs joint.0 correctly prior to homing (joint mode)
Machine is configured using
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:
Similar changes needed for axis Y (joint.1) and axis Z (joint.2)
and axis A (joint.3)
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.
- Lcvette
- Topic Author
- Offline
- Platinum Member
Less
More
- Posts: 1254
- Thank you received: 636
20 Sep 2019 16:05 #145690
by Lcvette
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!!
Replied by Lcvette on topic 2.9 and Pendant Hal having problems..need some help please!
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.
- Lcvette
- Topic Author
- Offline
- Platinum Member
Less
More
- Posts: 1254
- Thank you received: 636
20 Sep 2019 16:12 #145691
by Lcvette
Replied by Lcvette on topic 2.9 and Pendant Hal having problems..need some help please!
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!
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.134 seconds