I am having some issues getting the stepper motors moving with the Mesa 7i92/7i76 combo. Linuxcnc will boot fully up and show the axises moving with no movement on the motors. I followed the 7i92 example zip from the mesa site but I believe the pinout might be different since I have the 7i76 hooked up. Not seeing
Not finding the following pinout in the show pin command
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [AXIS_0]STEP_SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.control-type 1
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAXACCEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel
Halcmd: show pin
Code:
Owner Type Dir Value Name
9 float IN 100 hm2_7i92.0.dpll.01.timer-us
9 float IN 100 hm2_7i92.0.dpll.02.timer-us
9 float IN 100 hm2_7i92.0.dpll.03.timer-us
9 float IN 100 hm2_7i92.0.dpll.04.timer-us
9 float IN -1 hm2_7i92.0.dpll.base-freq-khz
9 u32 OUT 0x00000000 hm2_7i92.0.dpll.ddsize
9 float OUT 0 hm2_7i92.0.dpll.phase-error-us
9 u32 IN 0x00400000 hm2_7i92.0.dpll.plimit
9 u32 OUT 0x00000001 hm2_7i92.0.dpll.prescale
9 u32 IN 0x000007D0 hm2_7i92.0.dpll.time-const
9 s32 OUT 0 hm2_7i92.0.encoder.00.count
9 s32 OUT 0 hm2_7i92.0.encoder.00.count-latched
9 bit I/O FALSE hm2_7i92.0.encoder.00.index-enable
9 bit OUT TRUE hm2_7i92.0.encoder.00.input-a
9 bit OUT TRUE hm2_7i92.0.encoder.00.input-b
9 bit OUT FALSE hm2_7i92.0.encoder.00.input-index
9 bit IN FALSE hm2_7i92.0.encoder.00.latch-enable
9 bit IN FALSE hm2_7i92.0.encoder.00.latch-polarity
9 float OUT 0 hm2_7i92.0.encoder.00.position
9 float OUT 0 hm2_7i92.0.encoder.00.position-latched
9 bit OUT FALSE hm2_7i92.0.encoder.00.quad-error
9 bit IN FALSE hm2_7i92.0.encoder.00.quad-error-enable
9 s32 OUT 0 hm2_7i92.0.encoder.00.rawcounts
9 s32 OUT 0 hm2_7i92.0.encoder.00.rawlatch
9 bit IN FALSE hm2_7i92.0.encoder.00.reset
9 float OUT 0 hm2_7i92.0.encoder.00.velocity
9 s32 OUT 0 hm2_7i92.0.encoder.01.count
9 s32 OUT 0 hm2_7i92.0.encoder.01.count-latched
9 bit I/O FALSE hm2_7i92.0.encoder.01.index-enable
9 bit OUT FALSE hm2_7i92.0.encoder.01.input-a
9 bit OUT FALSE hm2_7i92.0.encoder.01.input-b
9 bit OUT TRUE hm2_7i92.0.encoder.01.input-index
9 bit IN FALSE hm2_7i92.0.encoder.01.latch-enable
9 bit IN FALSE hm2_7i92.0.encoder.01.latch-polarity
9 float OUT 0 hm2_7i92.0.encoder.01.position
9 float OUT 0 hm2_7i92.0.encoder.01.position-latched
9 bit OUT FALSE hm2_7i92.0.encoder.01.quad-error
9 bit IN FALSE hm2_7i92.0.encoder.01.quad-error-enable
9 s32 OUT 0 hm2_7i92.0.encoder.01.rawcounts
9 s32 OUT 0 hm2_7i92.0.encoder.01.rawlatch
9 bit IN FALSE hm2_7i92.0.encoder.01.reset
9 float OUT 0 hm2_7i92.0.encoder.01.velocity
9 u32 IN 0x017D7840 hm2_7i92.0.encoder.sample-frequency
9 s32 IN -1 hm2_7i92.0.encoder.timer-number
9 bit OUT FALSE hm2_7i92.0.gpio.000.in
9 bit OUT TRUE hm2_7i92.0.gpio.000.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.001.in
9 bit OUT TRUE hm2_7i92.0.gpio.001.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.002.in
9 bit OUT TRUE hm2_7i92.0.gpio.002.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.003.in
9 bit OUT TRUE hm2_7i92.0.gpio.003.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.004.in
9 bit OUT TRUE hm2_7i92.0.gpio.004.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.005.in
9 bit OUT TRUE hm2_7i92.0.gpio.005.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.006.in
9 bit OUT TRUE hm2_7i92.0.gpio.006.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.007.in
9 bit OUT TRUE hm2_7i92.0.gpio.007.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.008.in
9 bit OUT TRUE hm2_7i92.0.gpio.008.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.009.in
9 bit OUT TRUE hm2_7i92.0.gpio.009.in_not
9 bit OUT TRUE hm2_7i92.0.gpio.010.in
9 bit OUT FALSE hm2_7i92.0.gpio.010.in_not
9 bit IN FALSE hm2_7i92.0.gpio.010.out
9 bit OUT TRUE hm2_7i92.0.gpio.011.in
9 bit OUT FALSE hm2_7i92.0.gpio.011.in_not
9 bit IN FALSE hm2_7i92.0.gpio.011.out
9 bit OUT TRUE hm2_7i92.0.gpio.012.in
9 bit OUT FALSE hm2_7i92.0.gpio.012.in_not
9 bit IN FALSE hm2_7i92.0.gpio.012.out
9 bit OUT TRUE hm2_7i92.0.gpio.013.in
9 bit OUT FALSE hm2_7i92.0.gpio.013.in_not
9 bit IN FALSE hm2_7i92.0.gpio.013.out
9 bit OUT TRUE hm2_7i92.0.gpio.014.in
9 bit OUT FALSE hm2_7i92.0.gpio.014.in_not
9 bit OUT TRUE hm2_7i92.0.gpio.015.in
9 bit OUT FALSE hm2_7i92.0.gpio.015.in_not
9 bit OUT TRUE hm2_7i92.0.gpio.016.in
9 bit OUT FALSE hm2_7i92.0.gpio.016.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.017.in
9 bit OUT TRUE hm2_7i92.0.gpio.017.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.018.in
9 bit OUT TRUE hm2_7i92.0.gpio.018.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.019.in
9 bit OUT TRUE hm2_7i92.0.gpio.019.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.020.in
9 bit OUT TRUE hm2_7i92.0.gpio.020.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.021.in
9 bit OUT TRUE hm2_7i92.0.gpio.021.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.022.in
9 bit OUT TRUE hm2_7i92.0.gpio.022.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.023.in
9 bit OUT TRUE hm2_7i92.0.gpio.023.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.024.in
9 bit OUT TRUE hm2_7i92.0.gpio.024.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.025.in
9 bit OUT TRUE hm2_7i92.0.gpio.025.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.026.in
9 bit OUT TRUE hm2_7i92.0.gpio.026.in_not
9 bit OUT TRUE hm2_7i92.0.gpio.027.in
9 bit OUT FALSE hm2_7i92.0.gpio.027.in_not
9 bit IN FALSE hm2_7i92.0.gpio.027.out
9 bit OUT FALSE hm2_7i92.0.gpio.028.in
9 bit OUT TRUE hm2_7i92.0.gpio.028.in_not
9 bit IN FALSE hm2_7i92.0.gpio.028.out
9 bit OUT TRUE hm2_7i92.0.gpio.029.in
9 bit OUT FALSE hm2_7i92.0.gpio.029.in_not
9 bit IN FALSE hm2_7i92.0.gpio.029.out
9 bit OUT TRUE hm2_7i92.0.gpio.030.in
9 bit OUT FALSE hm2_7i92.0.gpio.030.in_not
9 bit IN FALSE hm2_7i92.0.gpio.030.out
9 bit OUT FALSE hm2_7i92.0.gpio.031.in
9 bit OUT TRUE hm2_7i92.0.gpio.031.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.032.in
9 bit OUT TRUE hm2_7i92.0.gpio.032.in_not
9 bit OUT FALSE hm2_7i92.0.gpio.033.in
9 bit OUT TRUE hm2_7i92.0.gpio.033.in_not
9 bit IN FALSE hm2_7i92.0.led.CR01
9 bit IN FALSE hm2_7i92.0.led.CR02
9 bit IN FALSE hm2_7i92.0.led.CR03
9 bit IN FALSE hm2_7i92.0.led.CR04
9 bit OUT FALSE hm2_7i92.0.packet-error
9 bit OUT FALSE hm2_7i92.0.packet-error-exceeded
9 s32 OUT 0 hm2_7i92.0.packet-error-level
9 s32 OUT 0 hm2_7i92.0.read-request.time
9 s32 OUT 0 hm2_7i92.0.read.time
9 bit IN FALSE hm2_7i92.0.stepgen.00.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.00.counts
9 float OUT 0 hm2_7i92.0.stepgen.00.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.00.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.00.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.00.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.00.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.00.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.00.enable
9 float IN 0 hm2_7i92.0.stepgen.00.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.00.position-fb
9 float IN 0 hm2_7i92.0.stepgen.00.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.00.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.01.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.01.counts
9 float OUT 0 hm2_7i92.0.stepgen.01.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.01.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.01.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.01.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.01.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.01.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.01.enable
9 float IN 0 hm2_7i92.0.stepgen.01.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.01.position-fb
9 float IN 0 hm2_7i92.0.stepgen.01.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.01.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.02.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.02.counts
9 float OUT 0 hm2_7i92.0.stepgen.02.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.02.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.02.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.02.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.02.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.02.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.02.enable
9 float IN 0 hm2_7i92.0.stepgen.02.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.02.position-fb
9 float IN 0 hm2_7i92.0.stepgen.02.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.02.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.03.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.03.counts
9 float OUT 0 hm2_7i92.0.stepgen.03.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.03.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.03.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.03.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.03.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.03.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.03.enable
9 float IN 0 hm2_7i92.0.stepgen.03.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.03.position-fb
9 float IN 0 hm2_7i92.0.stepgen.03.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.03.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.04.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.04.counts
9 float OUT 0 hm2_7i92.0.stepgen.04.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.04.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.04.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.04.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.04.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.04.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.04.enable
9 float IN 0 hm2_7i92.0.stepgen.04.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.04.position-fb
9 float IN 0 hm2_7i92.0.stepgen.04.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.04.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.05.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.05.counts
9 float OUT 0 hm2_7i92.0.stepgen.05.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.05.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.05.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.05.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.05.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.05.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.05.enable
9 float IN 0 hm2_7i92.0.stepgen.05.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.05.position-fb
9 float IN 0 hm2_7i92.0.stepgen.05.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.05.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.06.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.06.counts
9 float OUT 0 hm2_7i92.0.stepgen.06.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.06.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.06.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.06.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.06.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.06.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.06.enable
9 float IN 0 hm2_7i92.0.stepgen.06.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.06.position-fb
9 float IN 0 hm2_7i92.0.stepgen.06.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.06.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.07.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.07.counts
9 float OUT 0 hm2_7i92.0.stepgen.07.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.07.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.07.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.07.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.07.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.07.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.07.enable
9 float IN 0 hm2_7i92.0.stepgen.07.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.07.position-fb
9 float IN 0 hm2_7i92.0.stepgen.07.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.07.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.08.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.08.counts
9 float OUT 0 hm2_7i92.0.stepgen.08.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.08.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.08.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.08.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.08.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.08.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.08.enable
9 float IN 0 hm2_7i92.0.stepgen.08.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.08.position-fb
9 float IN 0 hm2_7i92.0.stepgen.08.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.08.velocity-fb
9 bit IN FALSE hm2_7i92.0.stepgen.09.control-type
9 s32 OUT 0 hm2_7i92.0.stepgen.09.counts
9 float OUT 0 hm2_7i92.0.stepgen.09.dbg_err_at_match
9 float OUT 0 hm2_7i92.0.stepgen.09.dbg_ff_vel
9 float OUT 0 hm2_7i92.0.stepgen.09.dbg_pos_minus_prev_cmd
9 float OUT 0 hm2_7i92.0.stepgen.09.dbg_s_to_match
9 s32 OUT 0 hm2_7i92.0.stepgen.09.dbg_step_rate
9 float OUT 0 hm2_7i92.0.stepgen.09.dbg_vel_error
9 bit IN FALSE hm2_7i92.0.stepgen.09.enable
9 float IN 0 hm2_7i92.0.stepgen.09.position-cmd
9 float OUT 0 hm2_7i92.0.stepgen.09.position-fb
9 float IN 0 hm2_7i92.0.stepgen.09.velocity-cmd
9 float OUT 0 hm2_7i92.0.stepgen.09.velocity-fb
9 s32 IN -1 hm2_7i92.0.stepgen.timer-number
9 bit I/O FALSE hm2_7i92.0.watchdog.has_bit
9 s32 OUT 0 hm2_7i92.0.write.time
Hal file
Code:
# Generated by PNCconf at Mon Sep 26 15:25:22 2016
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hostmot2
loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)
setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 25000000
loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.s
addf hm2_[HOSTMOT2](BOARD).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 hm2_[HOSTMOT2](BOARD).0.write servo-thread
# external output signals
# external input signals
# --- MIN-HOME-X ---
#net min-home-x <= hm2_[HOSTMOT2](BOARD).0.gpio.017.in
# --- MIN-HOME-Y ---
#net min-home-y <= hm2_[HOSTMOT2](BOARD).0.gpio.018.in
# --- MIN-HOME-Z ---
#net min-home-z <= hm2_[HOSTMOT2](BOARD).0.gpio.019.in
# --- MIN-HOME-A ---
#net min-home-a <= hm2_[HOSTMOT2](BOARD).0.gpio.020.in
#*******************
# AXIS X
#*******************
setp pid.x.Pgain [AXIS_0]P
setp pid.x.Igain [AXIS_0]I
setp pid.x.Dgain [AXIS_0]D
setp pid.x.bias [AXIS_0]BIAS
setp pid.x.FF0 [AXIS_0]FF0
setp pid.x.FF1 [AXIS_0]FF1
setp pid.x.FF2 [AXIS_0]FF2
setp pid.x.deadband [AXIS_0]DEADBAND
setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT
setp pid.x.error-previous-target true
setp pid.x.maxerror .0005
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_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [AXIS_0]STEP_SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.control-type 1
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAXACCEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [AXIS_0]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net x-pos-cmd <= axis.0.motor-pos-cmd
net x-vel-cmd <= axis.0.joint-vel-cmd
net x-output <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
net x-pos-fb => axis.0.motor-pos-fb
net x-enable <= axis.0.amp-enable-out
net x-enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable
# ---setup home / limit switch signals---
net min-home-x => axis.0.home-sw-in
net min-home-x => axis.0.neg-lim-sw-in
#net x-pos-limit => axis.0.pos-lim-sw-in
#*******************
# AXIS Y
#*******************
setp pid.y.Pgain [AXIS_1]P
setp pid.y.Igain [AXIS_1]I
setp pid.y.Dgain [AXIS_1]D
setp pid.y.bias [AXIS_1]BIAS
setp pid.y.FF0 [AXIS_1]FF0
setp pid.y.FF1 [AXIS_1]FF1
setp pid.y.FF2 [AXIS_1]FF2
setp pid.y.deadband [AXIS_1]DEADBAND
setp pid.y.maxoutput [AXIS_1]MAX_OUTPUT
setp pid.y.error-previous-target true
setp pid.y.maxerror .0005
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_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [AXIS_1]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [AXIS_1]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [AXIS_1]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [AXIS_1]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [AXIS_1]STEP_SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.control-type 1
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAXACCEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [AXIS_1]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y-pos-cmd <= axis.1.motor-pos-cmd
net y-vel-cmd <= axis.1.joint-vel-cmd
net y-output <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb
net y-pos-fb => axis.1.motor-pos-fb
net y-enable <= axis.1.amp-enable-out
net y-enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable
# ---setup home / limit switch signals---
net min-home-y => axis.1.home-sw-in
net min-home-y => axis.1.neg-lim-sw-in
#net y-pos-limit => axis.1.pos-lim-sw-in
#*******************
# AXIS Z
#*******************
setp pid.z.Pgain [AXIS_2]P
setp pid.z.Igain [AXIS_2]I
setp pid.z.Dgain [AXIS_2]D
setp pid.z.bias [AXIS_2]BIAS
setp pid.z.FF0 [AXIS_2]FF0
setp pid.z.FF1 [AXIS_2]FF1
setp pid.z.FF2 [AXIS_2]FF2
setp pid.z.deadband [AXIS_2]DEADBAND
setp pid.z.maxoutput [AXIS_2]MAX_OUTPUT
setp pid.z.error-previous-target true
setp pid.z.maxerror .0005
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_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [AXIS_2]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [AXIS_2]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [AXIS_2]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [AXIS_2]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [AXIS_2]STEP_SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.control-type 1
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAXACCEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [AXIS_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= axis.2.motor-pos-cmd
net z-vel-cmd <= axis.2.joint-vel-cmd
net z-output <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.velocity-cmd
net z-pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb
net z-pos-fb => axis.2.motor-pos-fb
net z-enable <= axis.2.amp-enable-out
net z-enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable
# ---setup home / limit switch signals---
net min-home-z => axis.2.home-sw-in
net min-home-z => axis.2.neg-lim-sw-in
#net z-pos-limit => axis.2.pos-lim-sw-in
#*******************
# AXIS A
#*******************
setp pid.a.Pgain [AXIS_3]P
setp pid.a.Igain [AXIS_3]I
setp pid.a.Dgain [AXIS_3]D
setp pid.a.bias [AXIS_3]BIAS
setp pid.a.FF0 [AXIS_3]FF0
setp pid.a.FF1 [AXIS_3]FF1
setp pid.a.FF2 [AXIS_3]FF2
setp pid.a.deadband [AXIS_3]DEADBAND
setp pid.a.maxoutput [AXIS_3]MAX_OUTPUT
setp pid.a.error-previous-target true
setp pid.a.maxerror .0005
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_[HOSTMOT2](BOARD).0.stepgen.03.dirsetup [AXIS_3]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.dirhold [AXIS_3]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.steplen [AXIS_3]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.stepspace [AXIS_3]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-scale [AXIS_3]STEP_SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.control-type 1
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAXACCEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.maxvel [AXIS_3]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net a-pos-cmd <= axis.3.motor-pos-cmd
net a-vel-cmd <= axis.3.joint-vel-cmd
net a-output <= hm2_[HOSTMOT2](BOARD).0.stepgen.03.velocity-cmd
net a-pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-fb
net a-pos-fb => axis.3.motor-pos-fb
net a-enable <= axis.3.amp-enable-out
net a-enable => hm2_[HOSTMOT2](BOARD).0.stepgen.03.enable
# ---setup home / limit switch signals---
net min-home-a => axis.3.home-sw-in
net min-home-a => axis.3.neg-lim-sw-in
#net a-pos-limit => axis.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 => pid.s.feedback
net spindle-output <= pid.s.output
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
net spindle-vel-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-vel-cmd-rpm <= motion.spindle-speed-out
net spindle-vel-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-enable <= motion.spindle-on
net spindle-cw <= motion.spindle-forward
net spindle-ccw <= motion.spindle-reverse
net spindle-brake <= motion.spindle-brake
net spindle-revs => motion.spindle-revs
net spindle-at-speed => motion.spindle-at-speed
net spindle-vel-fb-rps => motion.spindle-speed-in
net spindle-index-enable <=> motion.spindle-index-enable
# ---Setup spindle at speed signals---
sets spindle-at-speed true
#******************************
# connect miscellaneous signals
#******************************
# ---HALUI signals---
net joint-select-a halui.joint.0.select
net x-is-homed halui.joint.0.is-homed
net jog-x-pos halui.jog.0.plus
net jog-x-neg halui.jog.0.minus
net jog-x-analog halui.jog.0.analog
net joint-select-b halui.joint.1.select
net y-is-homed halui.joint.1.is-homed
net jog-y-pos halui.jog.1.plus
net jog-y-neg halui.jog.1.minus
net jog-y-analog halui.jog.1.analog
net joint-select-c halui.joint.2.select
net z-is-homed halui.joint.2.is-homed
net jog-z-pos halui.jog.2.plus
net jog-z-neg halui.jog.2.minus
net jog-z-analog halui.jog.2.analog
net joint-select-d halui.joint.3.select
net a-is-homed halui.joint.3.is-homed
net jog-a-pos halui.jog.3.plus
net jog-a-neg halui.jog.3.minus
net jog-a-analog halui.jog.3.analog
net jog-selected-pos halui.jog.selected.plus
net jog-selected-neg halui.jog.selected.minus
net spindle-manual-cw halui.spindle.forward
net spindle-manual-ccw halui.spindle.reverse
net spindle-manual-stop halui.spindle.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.jog-speed
net MDI-mode halui.mode.is-mdi
# ---coolant signals---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# ---probe signal---
net probe-in => motion.probe-input
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
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
INI file
Code:
# Generated by PNCconf at Mon Sep 26 15:25:22 2016
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[HOSTMOT2]
DRIVER=hm2_eth board_ip="10.10.10.10"
BOARD=7i92
CONFIG="num_encoders=0 num_stepgens=4"
[EMC]
MACHINE = sentry
DEBUG = 0
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/sentry/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz
[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
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
SERVO_PERIOD = 1000000
[HOSTMOT2]
# **** This is for info only ****
# DRIVER0=hm2_pci
# BOARD0=5i25
[HAL]
HALUI = halui
HALFILE = sentry.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal
[HALUI]
[TRAJ]
AXES = 4
COORDINATES = X Y Z A
MAX_ANGULAR_VELOCITY = 360.00
DEFAULT_ANGULAR_VELOCITY = 36.00
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
#********************
# Axis X
#********************
[AXIS_0]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# 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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 200
DIRHOLD = 200
STEPLEN = 1000
STEPSPACE = 2000
STEP_SCALE = 2000.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -0.050000
HOME_LATCH_VEL = -0.016667
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
#********************
# Axis Y
#********************
[AXIS_1]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# 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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 200
DIRHOLD = 200
STEPLEN = 1000
STEPSPACE = 2000
STEP_SCALE = 2000.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -0.050000
HOME_LATCH_VEL = -0.016667
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2
#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
# 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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 200
DIRHOLD = 200
STEPLEN = 1000
STEPSPACE = 2000
STEP_SCALE = 2000.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -0.050000
HOME_LATCH_VEL = -0.016667
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
#********************
# Axis A
#********************
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 10
MAX_ACCELERATION = 20
# 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 = 20
STEPGEN_MAXACCEL = 30
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 200
DIRHOLD = 200
STEPLEN = 1000
STEPSPACE = 2000
STEP_SCALE = 2000.0
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -2.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 3
#********************
# Spindle
#********************
[SPINDLE_9]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000