On Monday 04 May 2020 15:15:54 Ed wrote:

> On 5/4/20 12:19 PM, andy pugh wrote:
> > On Mon, 4 May 2020 at 18:00, Ed <ate...@mwt.net> wrote:
> >> Well, that worked!   Enclosed is the message. Looks to my
> >> unpracticed eye to be a network error.
> >
> > No it's this.
> >
> >> ./3-axis.hal:9: parameter or pin
> >> 'hm2_7i80HD.0.pwmgen.pwm_frequency' not found
> >
> > Drop the "HD" from line 9 of your 3-axis.hal file.
>
> Dropped the HD from that line and it simply moved on to the next line
> with an HD.
>
> After trying a couple more edits then did a global replace of 7i80HD
> with 7i80 and it would start but had no inputs from the encoders and
> would run away if the drives were energized.

I do not see any encoder A/B or index signals netted in the file below. 
Shouldn't there be? 
>
> The initial hal file was done with pncconf. Enclosed is the hal file
> without modifications.
>
>
>
> # Generated by PNCconf at Mon May  4 13:29:36 2020
> # 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 hm2_eth board_ip="192.168.1.121" config=" num_encoders=4
> num_pwmgens=3 num_stepgens=0"
> setp    hm2_7i80HD.0.pwmgen.pwm_frequency 20000
> setp    hm2_7i80HD.0.pwmgen.pdm_frequency 6000000
> setp    hm2_7i80HD.0.watchdog.timeout_ns 5000000
> loadrt pid names=pid.x,pid.y,pid.z,pid.s
>
> addf hm2_7i80HD.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.s.do-pid-calcs       servo-thread
> addf hm2_7i80HD.0.write         servo-thread
>
> # external output signals
>
> # external input signals
>
> #*******************
> #  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
>
> 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
>
> # ---PWM Generator signals/setup---
>
> setp   hm2_7i80HD.0.pwmgen.00.output-type 1
> setp   hm2_7i80HD.0.pwmgen.00.scale  [AXIS_0]OUTPUT_SCALE
>
> net x-output                             =>
> hm2_7i80HD.0.pwmgen.00.value net x-pos-cmd    axis.0.motor-pos-cmd
> net x-enable     axis.0.amp-enable-out  =>
> hm2_7i80HD.0.pwmgen.00.enable
>
> # ---Encoder feedback signals/setup---
>
> setp    hm2_7i80HD.0.encoder.00.counter-mode 0
> setp    hm2_7i80HD.0.encoder.00.filter 1
> setp    hm2_7i80HD.0.encoder.00.index-invert 0
> setp    hm2_7i80HD.0.encoder.00.index-mask 0
> setp    hm2_7i80HD.0.encoder.00.index-mask-invert 0
> setp    hm2_7i80HD.0.encoder.00.scale  [AXIS_0]ENCODER_SCALE
>
> net x-pos-fb               <=  hm2_7i80HD.0.encoder.00.position
> net x-vel-fb               <=  hm2_7i80HD.0.encoder.00.velocity
> net x-pos-fb               =>  axis.0.motor-pos-fb
> net x-index-enable    axis.0.index-enable  <=>
> hm2_7i80HD.0.encoder.00.index-enable
> net x-pos-rawcounts        <= hm2_7i80HD.0.encoder.00.rawcounts
>
> # ---setup home / limit switch signals---
>
> net x-home-sw     =>  axis.0.home-sw-in
> net x-neg-limit     =>  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
>
> 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
>
> # ---PWM Generator signals/setup---
>
> setp   hm2_7i80HD.0.pwmgen.01.output-type 1
> setp   hm2_7i80HD.0.pwmgen.01.scale  [AXIS_1]OUTPUT_SCALE
>
> net y-output                             =>
> hm2_7i80HD.0.pwmgen.01.value net y-pos-cmd    axis.1.motor-pos-cmd
> net y-enable     axis.1.amp-enable-out  =>
> hm2_7i80HD.0.pwmgen.01.enable
>
> # ---Encoder feedback signals/setup---
>
> setp    hm2_7i80HD.0.encoder.01.counter-mode 0
> setp    hm2_7i80HD.0.encoder.01.filter 1
> setp    hm2_7i80HD.0.encoder.01.index-invert 0
> setp    hm2_7i80HD.0.encoder.01.index-mask 0
> setp    hm2_7i80HD.0.encoder.01.index-mask-invert 0
> setp    hm2_7i80HD.0.encoder.01.scale  [AXIS_1]ENCODER_SCALE
>
> net y-pos-fb               <=  hm2_7i80HD.0.encoder.01.position
> net y-vel-fb               <=  hm2_7i80HD.0.encoder.01.velocity
> net y-pos-fb               =>  axis.1.motor-pos-fb
> net y-index-enable    axis.1.index-enable  <=>
> hm2_7i80HD.0.encoder.01.index-enable
> net y-pos-rawcounts        <= hm2_7i80HD.0.encoder.01.rawcounts
>
> # ---setup home / limit switch signals---
>
> net y-home-sw     =>  axis.1.home-sw-in
> net y-neg-limit     =>  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
>
> 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
>
> # ---PWM Generator signals/setup---
>
> setp   hm2_7i80HD.0.pwmgen.02.output-type 1
> setp   hm2_7i80HD.0.pwmgen.02.scale  [AXIS_2]OUTPUT_SCALE
>
> net z-output                             =>
> hm2_7i80HD.0.pwmgen.02.value net z-pos-cmd    axis.2.motor-pos-cmd
> net z-enable     axis.2.amp-enable-out  =>
> hm2_7i80HD.0.pwmgen.02.enable
>
> # ---Encoder feedback signals/setup---
>
> setp    hm2_7i80HD.0.encoder.02.counter-mode 0
> setp    hm2_7i80HD.0.encoder.02.filter 1
> setp    hm2_7i80HD.0.encoder.02.index-invert 0
> setp    hm2_7i80HD.0.encoder.02.index-mask 0
> setp    hm2_7i80HD.0.encoder.02.index-mask-invert 0
> setp    hm2_7i80HD.0.encoder.02.scale  [AXIS_2]ENCODER_SCALE
>
> net z-pos-fb               <=  hm2_7i80HD.0.encoder.02.position
> net z-vel-fb               <=  hm2_7i80HD.0.encoder.02.velocity
> net z-pos-fb               =>  axis.2.motor-pos-fb
> net z-index-enable    axis.2.index-enable  <=>
> hm2_7i80HD.0.encoder.02.index-enable
> net z-pos-rawcounts        <= hm2_7i80HD.0.encoder.02.rawcounts
>
> # ---setup home / limit switch signals---
>
> net z-home-sw     =>  axis.2.home-sw-in
> net z-neg-limit     =>  axis.2.neg-lim-sw-in
> net z-pos-limit     =>  axis.2.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
>
> # ---Encoder feedback signals/setup---
>
> setp    hm2_7i80HD.0.encoder.03.counter-mode 0
> setp    hm2_7i80HD.0.encoder.03.filter 1
> setp    hm2_7i80HD.0.encoder.03.index-invert 0
> setp    hm2_7i80HD.0.encoder.03.index-mask 0
> setp    hm2_7i80HD.0.encoder.03.index-mask-invert 0
> setp    hm2_7i80HD.0.encoder.03.scale  [SPINDLE_9]ENCODER_SCALE
>
> net spindle-revs             <= hm2_7i80HD.0.encoder.03.position
> net spindle-vel-fb-rps       <= hm2_7i80HD.0.encoder.03.velocity
> net spindle-index-enable     <=> hm2_7i80HD.0.encoder.03.index-enable
>
> # ---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 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
>
>
>
>
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users


Cheers, Gene Heskett
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>

_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to