399 lines
13 KiB
Plaintext
Executable File
399 lines
13 KiB
Plaintext
Executable File
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
|
|
# Using LinuxCNC version: Master (2.9)
|
|
# If you make changes to this file, they will be
|
|
# overwritten when you run PNCconf again
|
|
|
|
loadrt [KINS]KINEMATICS
|
|
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS base_thread_fp=1
|
|
loadrt hostmot2
|
|
loadrt hm2_pci config="num_encoders=6 num_pwmgens=6"
|
|
loadrt mux16 names=jogincr,foincr,mvoincr,soincr
|
|
loadrt mux2 count=1
|
|
loadrt sum2 count=3
|
|
|
|
loadrt logic count=1 personality=0x0102
|
|
addf logic.0 servo-thread
|
|
addf mux2.0 servo-thread
|
|
|
|
loadrt weighted_sum wsum_sizes=8 #wsum_sizes=[128,64,32,16,8,4,2,1] # default should do conversion??
|
|
addf process_wsums servo-thread
|
|
|
|
addf sum2.0 servo-thread
|
|
addf sum2.1 servo-thread
|
|
addf sum2.2 servo-thread
|
|
addf jogincr servo-thread
|
|
addf foincr servo-thread
|
|
addf mvoincr servo-thread
|
|
addf soincr servo-thread
|
|
|
|
setp hm2_5i24.0.pwmgen.pwm_frequency 15500
|
|
setp hm2_5i24.0.pwmgen.pdm_frequency 15500
|
|
setp hm2_5i24.0.watchdog.timeout_ns 5000000
|
|
loadrt pid names=pid.x,pid.y,pid.s,pid.xl,pid.yl,pid.zl
|
|
|
|
addf hm2_5i24.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.xl.do-pid-calcs servo-thread
|
|
addf pid.y.do-pid-calcs servo-thread
|
|
addf pid.yl.do-pid-calcs servo-thread
|
|
addf pid.zl.do-pid-calcs servo-thread
|
|
addf pid.s.do-pid-calcs servo-thread
|
|
addf hm2_5i24.0.write servo-thread
|
|
|
|
# relay outputs
|
|
setp hm2_5i24.0.gpio.041.is_output true
|
|
setp hm2_5i24.0.gpio.044.is_output true
|
|
setp hm2_5i24.0.gpio.046.is_output true
|
|
setp hm2_5i24.0.gpio.041.invert_output true
|
|
setp hm2_5i24.0.gpio.044.invert_output true
|
|
setp hm2_5i24.0.gpio.046.invert_output true
|
|
|
|
# some inputs
|
|
setp hm2_5i24.0.gpio.027.is_output false
|
|
setp hm2_5i24.0.gpio.028.is_output false
|
|
setp hm2_5i24.0.gpio.029.is_output false # ESTOP
|
|
setp hm2_5i24.0.gpio.030.is_output false # START
|
|
setp hm2_5i24.0.gpio.031.is_output false # STOP
|
|
|
|
#net machine_estop_out <= hm2_5i24.0.gpio.029.in_not
|
|
#net machine_estop_out => halui.machine.on
|
|
|
|
# This stuff should work but it seems to be shutting off the machine.
|
|
# net btn-estop-out hm2_5i24.0.gpio.029.in_not => halui.machine.on
|
|
# net btn-estop-in hm2_5i24.0.gpio.029.in => halui.machine.off
|
|
|
|
# net btn-pause hm2_5i24.0.gpio.031.in_not => halui.program.pause
|
|
# net btn-start hm2_5i24.0.gpio.030.in_not => halui.program.run
|
|
# net btn-start hm2_5i24.0.gpio.030.in_not => halui.program.resume
|
|
|
|
|
|
# first ADC
|
|
#setp hm2_5i24.0.gpio.032.is_output false
|
|
#setp hm2_5i24.0.gpio.033.is_output false
|
|
#setp hm2_5i24.0.gpio.034.is_output false
|
|
#setp hm2_5i24.0.gpio.035.is_output false
|
|
#setp hm2_5i24.0.gpio.036.is_output false
|
|
#setp hm2_5i24.0.gpio.037.is_output false
|
|
#setp hm2_5i24.0.gpio.038.is_output false
|
|
#setp hm2_5i24.0.gpio.039.is_output false
|
|
|
|
# second ADC
|
|
#setp hm2_5i24.0.gpio.040.is_output false
|
|
#setp hm2_5i24.0.gpio.041.is_output false
|
|
#setp hm2_5i24.0.gpio.042.is_output false
|
|
#setp hm2_5i24.0.gpio.043.is_output false
|
|
#setp hm2_5i24.0.gpio.044.is_output false
|
|
#setp hm2_5i24.0.gpio.045.is_output false
|
|
#setp hm2_5i24.0.gpio.046.is_output false
|
|
#setp hm2_5i24.0.gpio.047.is_output false
|
|
|
|
|
|
#net hm2_5i24.0.gpio.032 <= wsum.0.bit.0.in
|
|
#net hm2_5i24.0.gpio.033 <= wsum.0.bit.1.in
|
|
#net hm2_5i24.0.gpio.034 <= wsum.0.bit.2.in
|
|
#net hm2_5i24.0.gpio.035 <= wsum.0.bit.3.in
|
|
#net hm2_5i24.0.gpio.036 <= wsum.0.bit.4.in
|
|
#net hm2_5i24.0.gpio.037 <= wsum.0.bit.5.in
|
|
#net hm2_5i24.0.gpio.038 <= wsum.0.bit.6.in
|
|
#net hm2_5i24.0.gpio.039 <= wsum.0.bit.7.in
|
|
|
|
# ******************
|
|
# AXIS X JOINT 0
|
|
# ******************
|
|
|
|
setp pid.x.Pgain [JOINT_0]P
|
|
setp pid.x.Igain 0
|
|
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
|
|
|
|
net x-enable => pid.x.enable
|
|
net x-pos-mtr => pid.x.feedback
|
|
net x-output-mtr <= pid.x.output
|
|
|
|
setp pid.xl.Pgain [JOINT_0]P_LIN
|
|
setp pid.xl.Igain [JOINT_0]I_LIN
|
|
setp pid.xl.Dgain [JOINT_0]D_LIN
|
|
setp pid.xl.bias 0
|
|
setp pid.xl.FF0 0
|
|
setp pid.xl.FF1 0
|
|
setp pid.xl.FF2 0
|
|
setp pid.xl.deadband [JOINT_0]DEADBAND
|
|
setp pid.xl.maxoutput [JOINT_0]MAX_OUTPUT
|
|
setp pid.xl.error-previous-target true
|
|
|
|
net x-enable => pid.xl.enable
|
|
net x-pos-lin => pid.xl.feedback
|
|
net x-output-lin <= pid.xl.output
|
|
|
|
net x-output-lin => sum2.0.in0
|
|
net x-output-mtr => sum2.0.in1
|
|
net x-output <= sum2.0.out
|
|
|
|
net x-pos-cmd <= joint.0.motor-pos-cmd
|
|
net x-pos-cmd => pid.xl.command
|
|
net x-pos-cmd => pid.x.command
|
|
|
|
# ---PWM Generator signals/setup---
|
|
|
|
setp hm2_5i24.0.pwmgen.00.output-type 1
|
|
setp hm2_5i24.0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
|
|
setp hm2_5i24.0.pwmgen.00.offset-mode 1
|
|
|
|
net x-output => hm2_5i24.0.pwmgen.00.value
|
|
net x-enable joint.0.amp-enable-out => hm2_5i24.0.pwmgen.00.enable
|
|
net x-enable => hm2_5i24.0.gpio.046.out
|
|
net x-pos-rawcounts <= hm2_5i24.0.encoder.00.rawcounts
|
|
|
|
# ---Encoder feedback signals/setup---
|
|
|
|
setp hm2_5i24.0.encoder.03.counter-mode 0
|
|
setp hm2_5i24.0.encoder.03.filter 1
|
|
setp hm2_5i24.0.encoder.03.index-invert 0
|
|
setp hm2_5i24.0.encoder.03.index-mask 0
|
|
setp hm2_5i24.0.encoder.03.index-mask-invert 0
|
|
setp hm2_5i24.0.encoder.03.scale [JOINT_0]ENCODER_MTR_SCALE
|
|
|
|
setp hm2_5i24.0.encoder.00.counter-mode 0
|
|
setp hm2_5i24.0.encoder.00.filter 1
|
|
setp hm2_5i24.0.encoder.00.index-invert 0
|
|
setp hm2_5i24.0.encoder.00.index-mask 0
|
|
setp hm2_5i24.0.encoder.00.index-mask-invert 0
|
|
setp hm2_5i24.0.encoder.00.scale [JOINT_0]ENCODER_LIN_SCALE
|
|
|
|
net x-pos-mtr <= hm2_5i24.0.encoder.03.position
|
|
net x-vel-mtr <= hm2_5i24.0.encoder.03.velocity
|
|
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.03.index-enable
|
|
#net x-pos-mtr => joint.0.motor-pos-fb
|
|
|
|
net x-pos-lin <= hm2_5i24.0.encoder.00.position
|
|
net x-vel-lin <= hm2_5i24.0.encoder.00.velocity
|
|
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.00.index-enable
|
|
net x-pos-lin => joint.0.motor-pos-fb
|
|
|
|
# ******************
|
|
# AXIS Y JOINT 1
|
|
# ******************
|
|
|
|
setp pid.y.Pgain [JOINT_1]P
|
|
setp pid.y.Igain 0
|
|
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
|
|
|
|
net y-enable => pid.y.enable
|
|
net y-pos-mtr => pid.y.feedback
|
|
net y-output-mtr <= pid.y.output
|
|
|
|
setp pid.yl.Pgain [JOINT_1]P_LIN
|
|
setp pid.yl.Igain [JOINT_1]I_LIN
|
|
setp pid.yl.Dgain [JOINT_1]D_LIN
|
|
setp pid.yl.bias 0
|
|
setp pid.yl.FF0 0
|
|
setp pid.yl.FF1 0
|
|
setp pid.yl.FF2 0
|
|
setp pid.yl.deadband [JOINT_1]DEADBAND
|
|
setp pid.yl.maxoutput [JOINT_1]MAX_OUTPUT
|
|
setp pid.yl.error-previous-target true
|
|
|
|
net y-enable => pid.yl.enable
|
|
net y-pos-lin => pid.yl.feedback
|
|
net y-output-lin <= pid.yl.output
|
|
|
|
net y-output-lin => sum2.1.in0
|
|
net y-output-mtr => sum2.1.in1
|
|
net y-output <= sum2.1.out
|
|
|
|
net y-pos-cmd <= joint.1.motor-pos-cmd
|
|
net y-pos-cmd => pid.yl.command
|
|
net y-pos-cmd => pid.y.command
|
|
|
|
# ---PWM Generator signals/setup---
|
|
|
|
setp hm2_5i24.0.pwmgen.02.output-type 1
|
|
setp hm2_5i24.0.pwmgen.02.scale [JOINT_1]OUTPUT_SCALE
|
|
setp hm2_5i24.0.pwmgen.02.offset-mode 1
|
|
|
|
net y-output => hm2_5i24.0.pwmgen.02.value
|
|
net y-enable joint.1.amp-enable-out => hm2_5i24.0.pwmgen.02.enable
|
|
# net y-enable => hm2_5i24.0.gpio.044.out # commented out because duplicates x axis
|
|
net y-pos-rawcounts <= hm2_5i24.0.encoder.01.rawcounts
|
|
|
|
# ---Encoder feedback signals/setup---
|
|
|
|
setp hm2_5i24.0.encoder.04.counter-mode 0
|
|
setp hm2_5i24.0.encoder.04.filter 1
|
|
setp hm2_5i24.0.encoder.04.index-invert 0
|
|
setp hm2_5i24.0.encoder.04.index-mask 0
|
|
setp hm2_5i24.0.encoder.04.index-mask-invert 0
|
|
setp hm2_5i24.0.encoder.04.scale [JOINT_1]ENCODER_MTR_SCALE
|
|
|
|
setp hm2_5i24.0.encoder.01.counter-mode 0
|
|
setp hm2_5i24.0.encoder.01.filter 1
|
|
setp hm2_5i24.0.encoder.01.index-invert 0
|
|
setp hm2_5i24.0.encoder.01.index-mask 0
|
|
setp hm2_5i24.0.encoder.01.index-mask-invert 0
|
|
setp hm2_5i24.0.encoder.01.scale [JOINT_1]ENCODER_LIN_SCALE
|
|
|
|
net y-pos-mtr <= hm2_5i24.0.encoder.04.position
|
|
net y-vel-mtr <= hm2_5i24.0.encoder.04.velocity
|
|
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.04.index-enable
|
|
#net y-pos-mtr => joint.1.motor-pos-fb
|
|
|
|
net y-pos-lin <= hm2_5i24.0.encoder.01.position
|
|
net y-vel-lin <= hm2_5i24.0.encoder.01.velocity
|
|
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.01.index-enable
|
|
net y-pos-lin => joint.1.motor-pos-fb
|
|
|
|
#*******************
|
|
# AXIS Z JOINT 2
|
|
#*******************
|
|
|
|
#setp pid.z.Pgain [JOINT_2]P
|
|
#setp pid.z.Igain 0
|
|
#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
|
|
|
|
#net z-enable => pid.z.enable
|
|
#net z-pos-mtr => pid.z.feedback
|
|
#net z-output-mtr <= pid.z.output
|
|
|
|
setp pid.zl.Pgain [JOINT_2]P
|
|
setp pid.zl.Igain [JOINT_2]I
|
|
setp pid.zl.Dgain [JOINT_2]D
|
|
setp pid.zl.bias 0
|
|
setp pid.zl.FF0 0
|
|
setp pid.zl.FF1 0
|
|
setp pid.zl.FF2 0
|
|
setp pid.zl.deadband [JOINT_2]DEADBAND
|
|
setp pid.zl.maxoutput [JOINT_2]MAX_OUTPUT
|
|
setp pid.zl.error-previous-target true
|
|
|
|
net z-override => logic.0.in-00
|
|
net z-enable => logic.0.in-01
|
|
net z-enable-comb <= logic.0.and
|
|
|
|
sets z-override TRUE
|
|
|
|
# this section about ferror doesnt work
|
|
net z-enable-comb => mux2.0.sel
|
|
setp mux2.0.in0 100
|
|
setp mux2.0.in1 0.2
|
|
net z-ferror <= mux2.0.out
|
|
#net z-ferror => ini.2.min_ferror #joint.2.f-error #ini.2.ferror
|
|
|
|
net z-enable-comb => pid.zl.enable
|
|
net z-pos-lin => pid.zl.feedback
|
|
net z-output-lin <= pid.zl.output
|
|
|
|
net z-output-lin => sum2.2.in0
|
|
#net z-output-mtr => sum2.2.in1
|
|
net z-output <= sum2.2.out
|
|
|
|
net z-pos-cmd <= joint.2.motor-pos-cmd
|
|
net z-pos-cmd => pid.zl.command
|
|
#net z-pos-cmd => pid.z.command
|
|
|
|
# ---PWM Generator signals/setup---
|
|
|
|
setp hm2_5i24.0.pwmgen.04.output-type 1
|
|
setp hm2_5i24.0.pwmgen.04.scale [JOINT_2]OUTPUT_SCALE
|
|
setp hm2_5i24.0.pwmgen.04.offset-mode 1
|
|
|
|
net z-output => hm2_5i24.0.pwmgen.04.value
|
|
net z-enable joint.2.amp-enable-out => hm2_5i24.0.pwmgen.04.enable
|
|
net z-enable-comb => hm2_5i24.0.gpio.044.out
|
|
net z-pos-rawcounts <= hm2_5i24.0.encoder.02.rawcounts
|
|
|
|
# ---Encoder feedback signals/setup---
|
|
|
|
#setp hm2_5i24.0.encoder.05.counter-mode 0
|
|
#setp hm2_5i24.0.encoder.05.filter 1
|
|
#setp hm2_5i24.0.encoder.05.index-invert 0
|
|
#setp hm2_5i24.0.encoder.05.index-mask 0
|
|
#setp hm2_5i24.0.encoder.05.index-mask-invert 0
|
|
#setp hm2_5i24.0.encoder.05.scale [JOINT_2]ENCODER_MTR_SCALE
|
|
|
|
setp hm2_5i24.0.encoder.02.counter-mode 0
|
|
setp hm2_5i24.0.encoder.02.filter 1
|
|
setp hm2_5i24.0.encoder.02.index-invert 0
|
|
setp hm2_5i24.0.encoder.02.index-mask 0
|
|
setp hm2_5i24.0.encoder.02.index-mask-invert 0
|
|
setp hm2_5i24.0.encoder.02.scale [JOINT_2]ENCODER_LIN_SCALE
|
|
|
|
#net z-pos-mtr <= hm2_5i24.0.encoder.05.position
|
|
#net z-vel-mtr <= hm2_5i24.0.encoder.05.velocity
|
|
#net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.05.index-enable
|
|
#net z-pos-mtr => joint.2.motor-pos-fb
|
|
|
|
net z-pos-lin <= hm2_5i24.0.encoder.02.position
|
|
net z-vel-lin <= hm2_5i24.0.encoder.02.velocity
|
|
net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.02.index-enable
|
|
net z-pos-lin => joint.2.motor-pos-fb
|
|
|
|
|
|
#### SPINDLE ####
|
|
#net spindle.0.on spindle-enable
|
|
net spindle-enable spindle.0.on => hm2_5i24.0.gpio.041.out
|
|
|
|
#******************************
|
|
# connect miscellaneous signals
|
|
#******************************
|
|
|
|
# ---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
|
|
|
|
# ---Use external manual tool change dialog---
|
|
|
|
loadusr -W hal_manualtoolchange
|
|
net tool-change-request => hal_manualtoolchange.change
|
|
net tool-change-confirmed <= hal_manualtoolchange.changed
|
|
net tool-number => hal_manualtoolchange.number
|
|
|
|
# ---ignore tool prepare requests---
|
|
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
|
|