PNCCONF Spindle Issue - Linuxcnc 2.7

More
28 Sep 2015 08:36 #63103 by MacGalempsy
I am curious if anyone else is having issues with PNCCONF not putting out a correct HAL file when dealing with a PWM spindle?

When using PNCCONF, I can get the spindle to operate perfectly correct when doing the live test on the Spindle page. However, after finalizing the settings and exporting the files, the spindle does not get above 0.024V when the spindle is enabled. It will not increase speed when manually increasing the speed with the + button in AXIS. Noticeably, the settings for the GS2 vfd needed to be deactivated after the first attempt to run the configured HAL file, even though those selections were skipped in the setup phase... After about a week of trying to figure this one out, I need some help getting it going. This is the last thing needed to make first cuts on the machine. Any chance anyone else has had this problem? Can I get some help figuring out what PNCCONF is not putting in the output file?

The link has the basic HAL and INI files. Any help will be much appreciated.

Please Log in or Create an account to join the conversation.

More
28 Sep 2015 11:23 - 28 Sep 2015 11:38 #63108 by PCW
pncconf has a couple errors with spindle setup

one is connecting the hardware spindle enable to machine on instead of spindle on
and the other is that the spindle speed from motion is not connected to the correct signal
Last edit: 28 Sep 2015 11:38 by PCW.

Please Log in or Create an account to join the conversation.

More
28 Sep 2015 11:29 #63111 by cmorley

Please Log in or Create an account to join the conversation.

More
28 Sep 2015 11:38 #63112 by PCW
Yes those are the errors that I (sort of) recall

Please Log in or Create an account to join the conversation.

More
28 Sep 2015 18:36 #63131 by MacGalempsy
Those corrections still did not fix the problem. I tried setting up a new basic xyz & s, but now the open-loop test errors for the spindle when it is attempted to be opened.

Please Log in or Create an account to join the conversation.

More
28 Sep 2015 21:03 #63145 by cncbasher
could you post your configuration files as a archive to your post

have you set the max and min spindle voltages in your ini file under [spindle]?

Please Log in or Create an account to join the conversation.

More
28 Sep 2015 21:58 #63151 by PCW
Whats was the error message? (and hal line with the error)

Most likely there is a typo somewhere

Please Log in or Create an account to join the conversation.

More
29 Sep 2015 05:30 - 29 Sep 2015 05:32 #63168 by MacGalempsy
# Generated by PNCconf at Mon Sep 14 12:03:23 2015
# Edited by Aaron Laubhan
# 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_pci config=" num_encoders=6 num_pwmgens=0 num_stepgens=0 sserial_port_0=200xxx" 
setp    hm2_5i25.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 classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10 numBits=50 numWords=50
loadrt toggle2nist count=2

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 pid.a.do-pid-calcs       servo-thread
addf pid.s.do-pid-calcs       servo-thread
addf classicladder.0.refresh  servo-thread
addf scale.spindle            servo-thread
addf abs.spindle              servo-thread
addf lowpass.spindle          servo-thread
addf hm2_5i25.0.write         servo-thread
addf toggle2nist.0            servo-thread
addf toggle2nist.1   	      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
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

# ---Amplifier Signals---
net  x-reset => hm2_5i25.0.7i77.0.0.output-00
net  x-enable => hm2_5i25.0.7i77.0.0.output-04
net  x-fault-indicator <= hm2_5i25.0.7i77.0.0.input-24

# ---PWM Generator signals/setup---

setp   hm2_5i25.0.7i77.0.1.analogout0-scalemax  [AXIS_0]OUTPUT_SCALE
setp   hm2_5i25.0.7i77.0.1.analogout0-minlim    [AXIS_0]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i77.0.1.analogout0-maxlim    [AXIS_0]OUTPUT_MAX_LIMIT

net x-output    =>  hm2_5i25.0.7i77.0.1.analogout0
net x-pos-cmd    axis.0.motor-pos-cmd
net x-enable     axis.0.amp-enable-out

# enable _all_ sserial pwmgens
net x-enable   hm2_5i25.0.7i77.0.1.analogena

# ---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 x-home-sw     =>  axis.0.home-sw-in
net min-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

# ---Amplifier Signals---
net  y-reset => hm2_5i25.0.7i77.0.0.output-01
net  y-enable => hm2_5i25.0.7i77.0.0.output-05
net  y-fault-indicator <= hm2_5i25.0.7i77.0.0.input-25

# ---PWM Generator signals/setup---

setp   hm2_5i25.0.7i77.0.1.analogout1-scalemax  [AXIS_1]OUTPUT_SCALE
setp   hm2_5i25.0.7i77.0.1.analogout1-minlim    [AXIS_1]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i77.0.1.analogout1-maxlim    [AXIS_1]OUTPUT_MAX_LIMIT

net y-output                             => hm2_5i25.0.7i77.0.1.analogout1
net y-pos-cmd    axis.1.motor-pos-cmd
net y-enable     axis.1.amp-enable-out

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

# ---Amplifier Signals---
net  z-reset => hm2_5i25.0.7i77.0.0.output-02
net  z-enable => hm2_5i25.0.7i77.0.0.output-06
net  z-fault-indicator <= hm2_5i25.0.7i77.0.0.input-26

# ---PWM Generator signals/setup---

setp   hm2_5i25.0.7i77.0.1.analogout2-scalemax  [AXIS_2]OUTPUT_SCALE
setp   hm2_5i25.0.7i77.0.1.analogout2-minlim    [AXIS_2]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i77.0.1.analogout2-maxlim    [AXIS_2]OUTPUT_MAX_LIMIT

net z-output                             => hm2_5i25.0.7i77.0.1.analogout2
net z-pos-cmd    axis.2.motor-pos-cmd
net z-enable     axis.2.amp-enable-out

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

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

# ---A-AXIS Install Loop---
net a-axis-installed <= hm2_5i25.0.7i77.0.0.input-29

# ---Amplifier Signals---
net  a-reset => hm2_5i25.0.7i77.0.0.output-03
net  a-enable => hm2_5i25.0.7i77.0.0.output-07
net  a-fault-indicator <= hm2_5i25.0.7i77.0.0.input-27

# ---PWM Generator signals/setup---

setp   hm2_5i25.0.7i77.0.1.analogout3-scalemax  [AXIS_3]OUTPUT_SCALE
setp   hm2_5i25.0.7i77.0.1.analogout3-minlim    [AXIS_3]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i77.0.1.analogout3-maxlim    [AXIS_3]OUTPUT_MAX_LIMIT

net a-output     => hm2_5i25.0.7i77.0.1.analogout3
net a-pos-cmd    axis.3.motor-pos-cmd
net a-enable     axis.3.amp-enable-out

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

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

net a-pos-fb               <=  hm2_5i25.0.encoder.04.position
net a-vel-fb               <=  hm2_5i25.0.encoder.04.velocity
net a-pos-fb               =>  axis.3.motor-pos-fb
net a-index-enable    axis.3.index-enable  <=>  hm2_5i25.0.encoder.04.index-enable
net a-pos-rawcounts        <=  hm2_5i25.0.encoder.04.rawcounts

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

net max-home-a     =>  axis.3.home-sw-in
net a-neg-limit     =>  axis.3.neg-lim-sw-in
net max-home-a     =>  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
setp   pid.s.maxerror .0005
setp   pid.s.index-enable 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

# ---VFD Signals---
# net spindle_current <= hm2_5i25.0.7i77.0.0.analogin0
net spindle-fault-indicator <= hm2_5i25.0.7i77.0.0.input-28
net spindle-enable => hm2_5i25.0.7i77.0.0.output-08
net  spindle-reset => hm2_5i25.0.7i77.0.0.output-09
# net  <CONNECTED-NOT-SET-VFD-IN1> => hm2_5i25.0.7i77.0.0.output-10
# net  <CONNECTED-NOT-SET-VFD-IN3> => hm2_5i25.0.7i77.0.0.output-12

# ---PWM Generator signals/setup---

setp   hm2_5i25.0.7i77.0.1.analogout5-scalemax  [SPINDLE_9]OUTPUT_SCALE
setp   hm2_5i25.0.7i77.0.1.analogout5-minlim    [SPINDLE_9]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i77.0.1.analogout5-maxlim    [SPINDLE_9]OUTPUT_MAX_LIMIT

net spindle-vel-cmd-rpm-abs    => hm2_5i25.0.7i77.0.1.analogout5
net spindle-enable    <= motion.spindle-on

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

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

net spindle-revs             <=   hm2_5i25.0.encoder.05.position
net spindle-vel-fb-rps       <=   hm2_5i25.0.encoder.05.velocity
net spindle-index-enable     <=>  hm2_5i25.0.encoder.05.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-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

#  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  

#******************************
# 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 jog-speed             halui.jog-speed 
net MDI-mode              halui.mode.is-mdi

#******************************
# connect Control Panel signals
#******************************

net sso <= hm2_5i25.0.7i77.0.0.analogin1
# Poteniometer- 0-24V; 50-150% 

net fro-raw halui.feed-override.scale <= hm2_5i25.0.7i77.0.0.analogin2
setp halui.feed-override.counts 200
# Potentiometer- 0-24V; 0-200%

net on-button toggle2nist.0.in <= hm2_5i25.0.7i77.0.0.input-04-not
net on-button-is-on toggle2nist.0.is-on <= halui.machine.is-on
net on-button-on halui.machine.on <= toggle2nist.0.on
# On = +24V, Off = +0V

# 06 Signal Source- Toggle Button on the physical machine panel, shared with Off, 
net off-button toggle2nist.1.in  <= hm2_5i25.0.7i77.0.0.input-05
# net off-button-is-on toggle2nist.1.is-on <= halui.machine.is-on
# net off-button-on halui.machine.off <=toggle2nist.1.on
# On = +0V, Off = +24V

net estop-ext <=  hm2_5i25.0.7i77.0.0.input-06

net pv1 <= hm2_5i25.0.7i77.0.0.input-07-not
# "Platter Up/Down" toggle button opens PV1, Button Out = +24v, Button In = +0v

net atc-index <= hm2_5i25.0.7i77.0.0.input-08-not
# "Index Platter" momentary button, rotate ATC 1 tool, Button Out = +24v, Button In = +0v

net open-drawbar <= hm2_5i25.0.7i77.0.0.input-09-not
# "Drawbar Clamp/Unclamp" toggle button, Button Out = +24v, Button In = +0v

net   cycle-start halui.program.run   <=  hm2_5i25.0.7i77.0.0.input-12
# "Cycle Start" Momentary button, Button Out = +0v, Button In = +24v

net abort halui.abort <=  hm2_5i25.0.7i77.0.0.input-13-not
# "Cycle Stop" momentary button, Button Out = +24v, Button In = +0v


#**************************************
# connect Electronic Door Lock signals
#**************************************

net door-locked-indicator <= hm2_5i25.0.7i77.0.0.input-14
# Door Locked = +24V, Door Unlocked = +0v, PYVCP, LOCKED = GREEN, UNLOCKED = RED <DOOR HAS TO BE CLOSED TO WORK>

net door-closed-indicator hm2_5i25.0.7i77.0.0.input-15
# Door Closed = +24V, Door Open = +0V, PYVCP, DOOR CLOSED = GREEN, OPEN = RED

net door-locked => hm2_5i25.0.7i77.0.0.output-11
# TRUE = DOOR LOCKED


# --- ENDSTOPS ---

net x-min-home     <=  hm2_5i25.0.7i77.0.0.input-16-not
net x-max          <=  hm2_5i25.0.7i77.0.0.input-17-not
net y-min-home     <=  hm2_5i25.0.7i77.0.0.input-18-not
net y-max          <=  hm2_5i25.0.7i77.0.0.input-19-not
net z-max-home     <=  hm2_5i25.0.7i77.0.0.input-20-not
net z-min          <=  hm2_5i25.0.7i77.0.0.input-21-not

#**************************************
# connect ATC signals
#**************************************

net act1-a <= hm2_5i25.0.7i84.0.2.input-03
# Endstop 1 - Pneumatic Actuator 1 (CARRIAGE HOME/UP, PV1 = FALSE) 

net act1-b <= hm2_5i25.0.7i84.0.2.input-04
# Endstop 2 - Pneumatic Actuator 1 (CARRIAGE DOWN; PV1 = TRUE)

net act2-a <= hm2_5i25.0.7i84.0.2.input-05
# Endstop 1 - Pneumatic Actuator 2 (CARRIAGE HOME/IN, PV2 = FALSE)

net act2-b <= hm2_5i25.0.7i84.0.2.input-06
# Endstop 2 - Pneumatic Actuator 2 (CARRIAGE OUT = UNDER SPINDLE, PV2 = TRUE)

net act3-a <= hm2_5i25.0.7i84.0.2.input-07
# Endstop 1 - Pneumatic Actuator 3 (TOOL HOLDER HOME/DOWN; PV3 = FALSE) 

net act3-b <= hm2_5i25.0.7i84.0.2.input-08
# Endstop 2 - Pneumatic Actuator 3 (TOOL HOLDER UP = LOAD TOOL; PV3 = TRUE)

net PDB-hall-sensor <= hm2_5i25.0.7i84.0.2.input-09
# Hall Effect Sensor 1 - +24V = POWER DRAWBAR OPEN

net spindle-hall-sensor <= hm2_5i25.0.7i84.0.2.input-10
# Hall Effect Sensor 2 - +24v = Spindle is in position for tool change
 
#net low-air <= hm2_5i25.0.7i84.0.2.input-11
# LOW AIR PRESSURE SENSOR - LOW AIR = +24v

net atc_motor => hm2_5i25.0.7i84.0.2.output-00
# Active rotates ATC CW

net pv1 => hm2_5i25.0.7i84.0.2.output-01
# TRUE = ATC DOWN

net pv2 => hm2_5i25.0.7i84.0.2.output-02
# TRUE = ATC UNDER SPINDLE

net pv3 => hm2_5i25.0.7i84.0.2.output-03
# TRUE = TOOL HOLDER UP

net open-drawbar => hm2_5i25.0.7i84.0.2.output-04
# TRUE = POWER DRAWBAR OPEN

#**************************************
# connect Extra signals
#**************************************

net light => hm2_5i25.0.7i84.0.2.output-05

net flood-coolant => hm2_5i25.0.7i84.0.2.output-06
net coolant-flood <=  iocontrol.0.coolant-flood

net zbrake => hm2_5i25.0.7i84.0.2.output-07
# TRUE = zbrake off

# net probe-in <= hm2_5i25.0.7177.0.0.input-30

#  ---motion control signals---
net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---estop signals---
net estop-out     <=  iocontrol.0.user-enable-out
net estop-ext     =>  iocontrol.0.emc-enable-in

#  ---toolchange signals for custom tool changer---
net tool-number             <=  iocontrol.0.tool-prep-number
net tool-change-request     <=  iocontrol.0.tool-change
net tool-change-confirmed   =>  iocontrol.0.tool-changed
net tool-prepare-request    <=  iocontrol.0.tool-prepare
net tool-prepare-confirmed  =>  iocontrol.0.tool-prepared


# Load Classicladder without GUI (can reload LADDER GUI in AXIS GUI
loadusr classicladder --nogui custom.clp
# Generated by PNCconf at Mon Sep 14 12:03:23 2015
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

[EMC]
MACHINE = BenchmanXTr_4axis
DEBUG = 0

[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.500000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/aaron/linuxcnc/nc_files
PYVCP = pyvcp-panel.xml
INCREMENTS = 10in 5in 2in 1in .5in .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.41666675
MAX_LINEAR_VELOCITY = 3.333334
MIN_LINEAR_VELOCITY = 0.010000
DEFAULT_ANGULAR_VELOCITY = 6.0000012
MAX_ANGULAR_VELOCITY = 12.0000024
MIN_ANGULAR_VELOCITY = 0.010000
EDITOR = gedit
GEOMETRY = xyza

[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 = BenchmanXTr_4axis.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.17
MAX_LINEAR_VELOCITY = 1.67

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1

#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0
FERROR = 12
MIN_FERROR = -12
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 4
P = 25
I = 0
D = 0.04
FF0 = 0
FF1 = 0.42
FF2 = 2e-05
BIAS = 0
DEADBAND = 0.000015
MAX_OUTPUT = 0.09215
ENCODER_SCALE = 50000
OUTPUT_SCALE = 0.097
OUTPUT_MIN_LIMIT = -0.097
OUTPUT_MAX_LIMIT = 0.097
MIN_LIMIT = -0.0
MAX_LIMIT = 12.0
HOME_OFFSET = 6.0
HOME_SEARCH_VEL = 3
HOME_LATCH_VEL = 1
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES


#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 12
MIN_FERROR = -12
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 10
P = 30
I = 0
D = 0.04
FF0 = 0
FF1 = 0.042
FF2 = 2e-05
BIAS = 0
DEADBAND = 0.000015
MAX_OUTPUT = 0.09215
ENCODER_SCALE = 50000
OUTPUT_SCALE = 0.097
OUTPUT_MIN_LIMIT = -0.097
OUTPUT_MAX_LIMIT = 0.097
MIN_LIMIT = -0.001
MAX_LIMIT = 7.5
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

#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.2
FERROR = 12
MIN_FERROR = -12
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 10
P = 35
I = 0
D = 0.04
FF0 = 0
FF1 = 0.042
FF2 = 2e-05
BIAS = 0
DEADBAND = 1e-05
MAX_OUTPUT = 0.09215
ENCODER_SCALE = 50000
OUTPUT_SCALE = 0.097
OUTPUT_MIN_LIMIT = -0.097
OUTPUT_MAX_LIMIT = 0.097
MIN_LIMIT = -9.5
MAX_LIMIT = 0.201
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

#********************
# Axis A
#********************
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
FERROR = 360
MIN_FERROR = -360
MAX_VELOCITY = 60
MAX_ACCELERATION = 240
P = 22
I = 0
D = 0
FF0 = 0
FF1 = 0.001
FF2 = 0.0003
BIAS = 0
DEADBAND = 0.000015
MAX_OUTPUT = 0.09215
ENCODER_SCALE = 2000
OUTPUT_SCALE = 0.097
OUTPUT_MIN_LIMIT = -0.097
OUTPUT_MAX_LIMIT = 0.097
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

#********************
# Spindle 
#********************
[SPINDLE_9]
P = 200
I = 0.0
D = 0.0
FF0 = 0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.000015
MAX_OUTPUT = 4900
ENCODER_SCALE = 8000.0
OUTPUT_SCALE = 5000
OUTPUT_MIN_LIMIT = -5000
OUTPUT_MAX_LIMIT = 5000
Last edit: 29 Sep 2015 05:32 by MacGalempsy. Reason: Added Code

Please Log in or Create an account to join the conversation.

More
18 Oct 2015 08:02 #63890 by MacGalempsy
In the end, the HAL file needed a line added:

net spindle-enable => hm2_5i25.0.7i77.0.1.spinena

That problem is solved! On to the next issue.

Thanks again guys!

Please Log in or Create an account to join the conversation.

Moderators: cmorley
Time to create page: 0.149 seconds
Powered by Kunena Forum