Here is what my Hal file looks like for my step/dir machine with encoder 
feedback.  It has the stepgens configured for velocity mode and a PID loop 
(using a Mesa 5i25/7i85s).



# Generated by PNCconf at Tue Jul  9 15:53:16 2013
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD 
servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
#loadrt probe_parport
loadrt hostmot2
loadrt hm2_pci config=" num_encoders=4 num_pwmgens=0 num_3pwmgens=0 
num_stepgens=4 sserial_port_0=0xxxxxxx " 
setp     hm2_5i25.0.watchdog.timeout_ns 10000000
#loadrt hal_parport cfg="0x0278 in"
loadrt pid names=pid.x,pid.y,pid.z
#loadrt abs names=
#loadrt lowpass names=
#loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 
numS32out=10 numFloatIn=10 numFloatOut=10

#addf parport.0.read servo-thread
#addf parport.0.write servo-thread
addf hm2_5i25.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 classicladder.0.refresh servo-thread
addf hm2_5i25.0.write         servo-thread
#addf hm2_5i25.0.pet_watchdog  servo-thread


#*******************
#  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

net x-index-enable  <=>  pid.x.index-enable
net x-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-vel-fb       => pid.x.feedback-deriv
net x-pos-fb       => pid.x.feedback

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.00.dirsetup        [AXIS_0]DIRSETUP
setp   hm2_5i25.0.stepgen.00.dirhold         [AXIS_0]DIRHOLD
setp   hm2_5i25.0.stepgen.00.steplen         [AXIS_0]STEPLEN
setp   hm2_5i25.0.stepgen.00.stepspace       [AXIS_0]STEPSPACE
setp   hm2_5i25.0.stepgen.00.position-scale  [AXIS_0]STEP_SCALE
setp   hm2_5i25.0.stepgen.00.step_type        0
setp   hm2_5i25.0.stepgen.00.control-type     1
setp   hm2_5i25.0.stepgen.00.maxaccel         18
setp   hm2_5i25.0.stepgen.00.maxvel           12.5

# ---closedloop stepper signals---

net x-pos-cmd    axis.0.motor-pos-cmd
net x-output                             => hm2_5i25.0.stepgen.00.velocity-cmd
net x-enable     axis.0.amp-enable-out  => hm2_5i25.0.stepgen.00.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i25.0.encoder.00.counter-mode 0
setp    hm2_5i25.0.encoder.00.filter 1
setp    hm2_5i25.0.encoder.00.index-invert 0
setp    hm2_5i25.0.encoder.00.index-mask 0
setp    hm2_5i25.0.encoder.00.index-mask-invert 0
setp    hm2_5i25.0.encoder.00.scale  [AXIS_0]ENCODER_SCALE

net x-pos-fb               <=  hm2_5i25.0.encoder.00.position
net x-vel-fb               <=  hm2_5i25.0.encoder.00.velocity
net x-pos-fb               =>  axis.0.motor-pos-fb
net x-index-enable    axis.0.index-enable  <=>  
hm2_5i25.0.encoder.00.index-enable
net x-pos-rawcounts        <=  hm2_5i25.0.encoder.00.rawcounts

# ---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 max-x     =>  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

net y-index-enable  <=>  pid.y.index-enable
net y-enable       => pid.y.enable
net y-output       => pid.y.output
net y-pos-cmd      => pid.y.command
net y-vel-fb       => pid.y.feedback-deriv
net y-pos-fb       => pid.y.feedback

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.01.dirsetup        [AXIS_1]DIRSETUP
setp   hm2_5i25.0.stepgen.01.dirhold         [AXIS_1]DIRHOLD
setp   hm2_5i25.0.stepgen.01.steplen         [AXIS_1]STEPLEN
setp   hm2_5i25.0.stepgen.01.stepspace       [AXIS_1]STEPSPACE
setp   hm2_5i25.0.stepgen.01.position-scale  [AXIS_1]STEP_SCALE
setp   hm2_5i25.0.stepgen.01.step_type        0
setp   hm2_5i25.0.stepgen.01.control-type     1
setp   hm2_5i25.0.stepgen.01.maxaccel         18
setp   hm2_5i25.0.stepgen.01.maxvel           12.5

# ---closedloop stepper signals---

net y-pos-cmd    axis.1.motor-pos-cmd
net y-output                             => hm2_5i25.0.stepgen.01.velocity-cmd
net y-enable     axis.1.amp-enable-out  => hm2_5i25.0.stepgen.01.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i25.0.encoder.01.counter-mode 0
setp    hm2_5i25.0.encoder.01.filter 1
setp    hm2_5i25.0.encoder.01.index-invert 0
setp    hm2_5i25.0.encoder.01.index-mask 0
setp    hm2_5i25.0.encoder.01.index-mask-invert 0
setp    hm2_5i25.0.encoder.01.scale  [AXIS_1]ENCODER_SCALE

net y-pos-fb               <=  hm2_5i25.0.encoder.01.position
net y-vel-fb               <=  hm2_5i25.0.encoder.01.velocity
net y-pos-fb               =>  axis.1.motor-pos-fb
net y-index-enable    axis.1.index-enable  <=>  
hm2_5i25.0.encoder.01.index-enable
net y-pos-rawcounts        <=  hm2_5i25.0.encoder.01.rawcounts

# ---setup home / limit switch signals---

#net max-home-y     =>  axis.1.home-sw-in
#net min-y     =>  axis.1.neg-lim-sw-in
#net max-home-y     =>  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

net z-index-enable  <=>  pid.z.index-enable
net z-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-vel-fb       => pid.z.feedback-deriv
net z-pos-fb       => pid.z.feedback

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.02.dirsetup        [AXIS_2]DIRSETUP
setp   hm2_5i25.0.stepgen.02.dirhold         [AXIS_2]DIRHOLD
setp   hm2_5i25.0.stepgen.02.steplen         [AXIS_2]STEPLEN
setp   hm2_5i25.0.stepgen.02.stepspace       [AXIS_2]STEPSPACE
setp   hm2_5i25.0.stepgen.02.position-scale  [AXIS_2]STEP_SCALE
setp   hm2_5i25.0.stepgen.02.step_type        0
setp   hm2_5i25.0.stepgen.02.control-type     1
setp   hm2_5i25.0.stepgen.02.maxaccel         25
setp   hm2_5i25.0.stepgen.02.maxvel           8

# ---closedloop stepper signals---

net z-pos-cmd    axis.2.motor-pos-cmd
net z-output                             => hm2_5i25.0.stepgen.02.velocity-cmd
net z-enable     axis.2.amp-enable-out  => hm2_5i25.0.stepgen.02.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i25.0.encoder.02.counter-mode 0
setp    hm2_5i25.0.encoder.02.filter 1
setp    hm2_5i25.0.encoder.02.index-invert 0
setp    hm2_5i25.0.encoder.02.index-mask 0
setp    hm2_5i25.0.encoder.02.index-mask-invert 0
setp    hm2_5i25.0.encoder.02.scale  [AXIS_2]ENCODER_SCALE

net z-pos-fb               <=  hm2_5i25.0.encoder.02.position
net z-vel-fb               <=  hm2_5i25.0.encoder.02.velocity
net z-pos-fb               =>  axis.2.motor-pos-fb
net z-index-enable    axis.2.index-enable  <=>  
hm2_5i25.0.encoder.02.index-enable
net z-pos-rawcounts        <=  hm2_5i25.0.encoder.02.rawcounts

# ---setup home / limit switch signals---

#net max-home-z     =>  axis.2.home-sw-in
#net min-z     =>  axis.2.neg-lim-sw-in
#net max-home-z     =>  axis.2.pos-lim-sw-in

#*******************
#  SPINDLE S
#*******************

# ---setup spindle control signals---




#  ---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


# Load Classicladder without GUI (can reload LADDER GUI in AXIS GUI

#loadusr classicladder --nogui custom.clp


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to