Rigid Tapping Help

More
18 Jul 2018 23:21 - 18 Jul 2018 23:22 #114504 by NCPatrol
Rigid Tapping Help was created by NCPatrol
I'm slowing delving deeper in to my mill's functionality. I bought it from someone else that built it so I'm a little behind the curve on a lot of things...

I'm using Fusion to make drill/tap operation. In fusion, it simulates fine but when I run it on the mill it goes through the to drill operations and then gets to tapping, moves Z and then stalls at line N455 and doesn't actually tap...spindle is rotating but Z isn't moving.

This is the tapping portion of the code:
(DRILL2)
N405 M9
N410 M1
N415 T2 M6
N420 T3
N425 S450 M3
N430 G54
N435 M8
N440 G0 X0.1272 Y-0.1315
N445 G43 Z0.6 H2
N450 G0 Z0.2
N455 G33.1 Z-1. K0.05
N460 G0 Z0.2
N465 X0.1272 Y-0.1315 Z0.6
N470 M9
N475 G53 Z0.
N480 M30
%


Can anyone give me any input on what may be wrong here? I've looked at a couple other examples and everything seems right. The machine was set up and used by the PO for rigid tapping (encoder, etc.) so I don't believe it's a hardware issue. I'm leaning toward something in the post, but I'm still very green with gcode and I'm just not seeing it.
Last edit: 18 Jul 2018 23:22 by NCPatrol.

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

More
19 Jul 2018 02:35 #114512 by NCPatrol
Replied by NCPatrol on topic Rigid Tapping Help
Well, after a little more trouble shooting, I may have been quick to dismiss a hardware problem. Seems the encoder is not registering the index signal....but is registering rotation/rpm. More trouble shooting tomorrow!

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

More
20 Jul 2018 01:47 - 20 Jul 2018 01:48 #114556 by OT-CNC
Replied by OT-CNC on topic Rigid Tapping Help
Do you have an A and B channel besides index? Make sure it counts + and -. Also, It's sometimes hard to see the index pulse using halmeter. Did you look at the index signal with the scope?
Last edit: 20 Jul 2018 01:48 by OT-CNC.

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

More
20 Jul 2018 02:19 #114557 by NCPatrol
Replied by NCPatrol on topic Rigid Tapping Help
Index doesn't show anything on the scope...assuming I'm looking at the right thing.

A & B appear to be reading.

Poke around some more tonight - verified that wiring was clean and not damaged.

I'm kind of leaning toward one of two theories:

1) The index portion of the encoder is bad.....this doesn't seem very likely.
2) The previous owner gave me the wrong config file. Shortly after buying it, I replaced the PC he gave me with a smaller unit and and did a fresh install on a new SSD. He walked me through loading the backed up config files he gave me when I bought it. It's possible that the backup he gave me didn't have the encoder properly configured.

For #1 - Is there a way to test the encoder to verify it's actually working?

For #2 - how to do I go about figuring out configured properly....or at all?

This is with Mesa 5i25, 7i77 and a Automation Direct TRDA-2E1000VD encoder if that helps.

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

More
20 Jul 2018 04:10 #114561 by PCW
Replied by PCW on topic Rigid Tapping Help
can you post your hal/ini files here?

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

More
20 Jul 2018 20:01 #114610 by NCPatrol
Replied by NCPatrol on topic Rigid Tapping Help
Sure...

hal:
# Generated by PNCconf at Fri Dec 25 14:13:58 2015
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt timedelay count=1
loadrt abs count=1
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=0020 " 
setp    hm2_5i25.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.s

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 hm2_5i25.0.write         servo-thread

#additional commands
loadrt mux16 count=4
loadrt mux_generic config="ss32,ss32"

loadrt ilowpass
loadrt comp count=1
loadrt mult2 count=1
addf timedelay.0 servo-thread
addf ilowpass.0 servo-thread
addf mux16.0 servo-thread  #jogincr
addf mux16.1 servo-thread  #Feedrate overide
addf mux16.2 servo-thread
addf mux16.3 servo-thread
addf mux-gen.00 servo-thread
addf mux-gen.01 servo-thread
addf mult2.0 servo-thread

addf abs.0 servo-thread
addf comp.0 servo-thread


loadrt near


addf near.0                   servo-thread


# external output signals
# ---COOLANT CONROL ---
net coolant-flood hm2_5i25.0.7i77.0.0.output-01

# ---LUBRICATION SYSTEM ---
# The first input to the comparator is zero.

setp comp.0.in0 0.01

# The other input to the comparator is the current axis movement velocity

net moving comp.0.in1 <= motion.current-vel

# It needs to be connected to an output bit

net pump comp.0.out => hm2_5i25.0.7i77.0.0.output-02

#Rotary input signals
net rotary.clamped <= hm2_5i25.0.7i77.0.0.input-17
net rotary.unclamped <= hm2_5i25.0.7i77.0.0.input-18



# --- SPINDLE-BRAKE ---
#net spindle-brake hm2_5i25.0.7i77.0.0.output-00
net spindle-brake => timedelay.0.in


net spindle-delayed timedelay.0.out => hm2_5i25.0.7i77.0.0.output-00
setp timedelay.0.on-delay 14
setp timedelay.0.off-delay 0


# --- BOTH-HOME-X ---
net both-home-x     <=  hm2_5i25.0.7i77.0.0.input-00

# --- BOTH-HOME-Y ---
net both-home-y     <=  hm2_5i25.0.7i77.0.0.input-01

# --- MAX-HOME-Z ---
net max-home-z     <=  hm2_5i25.0.7i77.0.0.input-03

# --- HOME-A ---
net home-a     <=  hm2_5i25.0.7i77.0.0.input-16-not


# --- MIN-Z ---
net min-z     <=  hm2_5i25.0.7i77.0.0.input-04

# --- JOINT-SELECT-a-X ---
net joint-select-a     <=  hm2_5i25.0.7i84.0.2.input-28

# --- JOINT-SELECT-b-Y ---
net joint-select-b     <=  hm2_5i25.0.7i84.0.2.input-29

# --- JOINT-SELECT-c-Z ---
net joint-select-c     <=  hm2_5i25.0.7i84.0.2.input-30

# --- JOINT-SELECT-d-A ---
net joint-select-d     <=  hm2_5i25.0.7i84.0.2.input-31

# --- JOG-INCR-A ---
net jog-incr-a     <=  hm2_5i25.0.7i84.0.2.input-11

# --- JOG-INCR-B ---
net jog-incr-b     <=  hm2_5i25.0.7i84.0.2.input-10

# --- JOG-INCR-C ---
net jog-incr-c     <=  hm2_5i25.0.7i84.0.2.input-09


# --- Feedrate overide - FO-INCR-A ---
net fo-incr-a     <=  hm2_5i25.0.7i84.0.2.input-08

# --- FO-INCR-B ---
net fo-incr-b     <=  hm2_5i25.0.7i84.0.2.input-07

# --- FO-INCR-C ---
net fo-incr-c     <=  hm2_5i25.0.7i84.0.2.input-06

# --- FO-INCR-D ---
net fo-incr-d     <=  hm2_5i25.0.7i84.0.2.input-05

# --- FO-INCR-E ---
net fo-incr-e     <=  hm2_5i25.0.7i84.0.2.input-04

# --- Spindle override - SO-INCR-A ---
net so-incr-a     <=  hm2_5i25.0.7i84.0.2.input-25

# --- SO-INCR-B ---
net so-incr-b     <=  hm2_5i25.0.7i84.0.2.input-26

# --- SO-INCR-C ---
net so-incr-c     <=  hm2_5i25.0.7i84.0.2.input-27



# --- Max velocity override - MVO-INCR-A ---
net mvo-incr-a     <=  hm2_5i25.0.7i84.0.2.input-20

# --- MVO-INCR-B ---
net mvo-incr-b     <=  hm2_5i25.0.7i84.0.2.input-21

# --- MVO-INCR-C ---
net mvo-incr-c     <=  hm2_5i25.0.7i84.0.2.input-22

# --- MVO-INCR-D ---
net mvo-incr-d     <=  hm2_5i25.0.7i84.0.2.input-23

# --- MVO-INCR-E ---
net mvo-incr-e     <=  hm2_5i25.0.7i84.0.2.input-24

# --- FO-ENABLE ---
net fo-enable      <=  hm2_5i25.0.7i84.0.2.input-14




# 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
setp   pid.x.maxerror .0

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_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.03.counter-mode 0
setp    hm2_5i25.0.encoder.03.filter 1
setp    hm2_5i25.0.encoder.03.index-invert 0
setp    hm2_5i25.0.encoder.03.index-mask 0
setp    hm2_5i25.0.encoder.03.index-mask-invert 0
setp    hm2_5i25.0.encoder.03.scale  [AXIS_0]ENCODER_SCALE

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

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

net both-home-x     =>  axis.0.home-sw-in
net both-home-x     =>  axis.0.neg-lim-sw-in
net both-home-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
setp   pid.y.error-previous-target true
setp   pid.y.maxerror .000

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_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 both-home-y     =>  axis.1.home-sw-in
net both-home-y     =>  axis.1.neg-lim-sw-in
net both-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 .000

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_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 .000

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

# ---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 home-a     =>  axis.3.home-sw-in
net a-neg-limit     =>  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
setp   pid.s.maxerror .0000

net spindle-index-enable  <=> pid.s.index-enable
net spindle-enable        =>  pid.s.enable
net spindle-vel-cmd-rpm-abs     => pid.s.command
net spindle-vel-fb-rpm-abs      => pid.s.feedback
net spindle-output        <=  pid.s.output

# ---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-output      => hm2_5i25.0.7i77.0.1.analogout5
net spindle-enable      => hm2_5i25.0.7i77.0.1.spinena

# ---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  abs.0.in     <=   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-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

net spindle-cw          => hm2_5i25.0.7i77.0.0.output-04
net spindle-ccw          => hm2_5i25.0.7i77.0.0.output-05


net  spindle-vel-fb-rps-abs <= abs.0.out


# ---Setup spindle at speed signals---
net spindle-vel-cmd-rpm-abs    =>  near.0.in1
net spindle-vel-fb-rpm         =>  near.0.in2
net spindle-at-speed       <=  near.0.out
setp near.0.scale 1.000000
setp near.0.difference 75.0
setp mult2.0.in0 60
net spindle-vel-fb-rps-abs => mult2.0.in1
net spindle-vel-fb-rpm <= mult2.0.out



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


# ---jog button signals---
net jog-speed  <=  hm2_5i25.0.7i84.0.2.analogin0
#sets    jog-speed .16
## MPG stuff##########

# ---jogwheel signals to mesa encoder - shared MPG---

net joint-selected-count     <=  hm2_5i25.0.7i84.0.2.enc0.count
setp    hm2_5i25.0.encoder.00.filter true
setp    hm2_5i25.0.encoder.00.counter-mode true

#  ---mpg signals---

#       for axis x MPG
setp    axis.0.jog-vel-mode 0
net selected-jog-incr    =>  axis.0.jog-scale
net joint-select-a       =>  axis.0.jog-enable
net joint-selected-count =>  axis.0.jog-counts

#       for axis y MPG
setp    axis.1.jog-vel-mode 0
net selected-jog-incr    =>  axis.1.jog-scale
net joint-select-b       =>  axis.1.jog-enable
net joint-selected-count =>  axis.1.jog-counts

#       for axis z MPG
setp    axis.2.jog-vel-mode 0
net selected-jog-incr    =>  axis.2.jog-scale
net joint-select-c       =>  axis.2.jog-enable
net joint-selected-count =>  axis.2.jog-counts

#       for axis a MPG
setp    axis.3.jog-vel-mode 0
net selected-jog-incr    =>  axis.3.jog-scale
net joint-select-d       =>  axis.3.jog-enable
net joint-selected-count =>  axis.3.jog-counts


##connect jog incr override increments
net jog-incr-a           =>  mux16.0.sel0
net jog-incr-b           =>  mux16.0.sel1
net jog-incr-c           =>  mux16.0.sel2
net jog-incr-d           =>  mux16.0.sel3
net selected-jog-incr   <=  mux16.0.out-f
    setp mux16.0.debounce-time      0.200000
    setp mux16.0.use-graycode      False
    setp mux16.0.suppress-no-input False
    setp mux16.0.in00          0.0001
    setp mux16.0.in01          0.001
    setp mux16.0.in02          .01
    setp mux16.0.in03          .1
    setp mux16.0.in04          1



# connect feed overide increments - switches

    setp halui.feed-override.count-enable true
    setp halui.feed-override.direct-value true
    setp halui.feed-override.scale .01
net feedoverride-incr   =>  halui.feed-override.counts
net fo-incr-a           =>  mux-gen.00.sel-bit-00
net fo-incr-b           =>  mux-gen.00.sel-bit-01
net fo-incr-c           =>  mux-gen.00.sel-bit-02
net fo-incr-d           =>  mux-gen.00.sel-bit-03
net fo-incr-e           =>  mux-gen.00.sel-bit-04
net feedoverride-incr   <=  mux-gen.00.out-s32
    setp mux-gen.00.debounce-us      200000
    setp mux-gen.00.suppress-no-input False
    setp mux-gen.00.in-s32-00          0
    setp mux-gen.00.in-s32-01          10
    setp mux-gen.00.in-s32-02          20
    setp mux-gen.00.in-s32-03          30
    setp mux-gen.00.in-s32-04          40
    setp mux-gen.00.in-s32-05          50
    setp mux-gen.00.in-s32-06          60
    setp mux-gen.00.in-s32-07          70
    setp mux-gen.00.in-s32-08          80
    setp mux-gen.00.in-s32-09          90
    setp mux-gen.00.in-s32-10          100
    setp mux-gen.00.in-s32-11          110
    setp mux-gen.00.in-s32-12          120
    setp mux-gen.00.in-s32-13          130
    setp mux-gen.00.in-s32-14          140
    setp mux-gen.00.in-s32-15          150
    setp mux-gen.00.in-s32-16          160
    setp mux-gen.00.in-s32-17          170
    setp mux-gen.00.in-s32-18          180
    setp mux-gen.00.in-s32-19          190
    setp mux-gen.00.in-s32-20          200

# connect max velocity overide increments - switches

    setp halui.max-velocity.count-enable true
    setp halui.max-velocity.direct-value true
    setp halui.max-velocity.scale 0.016670
net max-vel-override-incr   =>  halui.max-velocity.counts
net mvo-incr-a           =>  mux-gen.01.sel-bit-00
net mvo-incr-b           =>  mux-gen.01.sel-bit-01
net mvo-incr-c           =>  mux-gen.01.sel-bit-02
net mvo-incr-d           =>  mux-gen.01.sel-bit-03
net mvo-incr-e           =>  mux-gen.01.sel-bit-04
net max-vel-override-incr   <=  mux-gen.01.out-s32
    setp mux-gen.01.debounce-us      200000
    setp mux-gen.01.suppress-no-input False
    setp mux-gen.01.in-s32-00          0
    setp mux-gen.01.in-s32-01          2
    setp mux-gen.01.in-s32-02          4
    setp mux-gen.01.in-s32-03          6
    setp mux-gen.01.in-s32-04          8
    setp mux-gen.01.in-s32-05          10
    setp mux-gen.01.in-s32-06          12
    setp mux-gen.01.in-s32-07          14
    setp mux-gen.01.in-s32-08          16
    setp mux-gen.01.in-s32-09          18
    setp mux-gen.01.in-s32-10          20
    setp mux-gen.01.in-s32-11          25
    setp mux-gen.01.in-s32-12          30
    setp mux-gen.01.in-s32-13          35
    setp mux-gen.01.in-s32-14          40
    setp mux-gen.01.in-s32-15          45
    setp mux-gen.01.in-s32-16          50
    setp mux-gen.01.in-s32-17          55
    setp mux-gen.01.in-s32-18          60


# connect spindle overide increments 

    setp halui.spindle-override.count-enable true
    setp halui.spindle-override.direct-value true
    setp halui.spindle-override.scale .01
net spindleoverride-incr  =>  halui.spindle-override.counts
net so-incr-a             =>  mux16.3.sel0
net so-incr-b             =>  mux16.3.sel1
net so-incr-c             =>  mux16.3.sel2
net spindleoverride-incr  <=  mux16.3.out-s
    setp mux16.3.debounce-time      0.200000
    setp mux16.3.use-graycode      False
    setp mux16.3.suppress-no-input False
    setp mux16.3.in00          100.000000
    setp mux16.3.in01          90.000000
    setp mux16.3.in02          70.000000
    setp mux16.3.in03          80.000000
    setp mux16.3.in04          110.000000
    setp mux16.3.in05          120.000000
    setp mux16.3.in06          60.000000
    setp mux16.3.in07          50.000000
#  ---motion control signals---

net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---digital in / out signals---

#  ---estop signals---

#  ---estop signals---

net estop-out	<= hm2_5i25.0.7i84.0.2.input-15

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:
# Generated by PNCconf at Fri Dec 25 14:13:58 2015
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

[EMC]
MACHINE = Boss5_servo
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/shefron/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 2.08
MIN_LINEAR_VELOCITY = 0.010000
DEFAULT_ANGULAR_VELOCITY = 0.250000
MAX_ANGULAR_VELOCITY = 1.000000
MIN_ANGULAR_VELOCITY = 0.010000
EDITOR = gedit
GEOMETRY = xyz-aw
PYVCP = spindle.xml
PYVCP = LEDs.xml

[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
USER_M_PATH= M-codes

[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 = Boss5_servo.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
POSTGUI_HALFILE = spindle_to_pyvcp.hal
SHUTDOWN = shutdown.hal

[HALUI]


[TRAJ]
AXES = 9
COORDINATES = X Y Z W 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 = 2.08

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

#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 9
FERROR = 1
MIN_FERROR = 1
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
P = 100
I = 0
D = 0
FF0 = 0
FF1 = 3.03
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = -163840
OUTPUT_SCALE = 10
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
MIN_LIMIT = .25
MAX_LIMIT = 18.0
HOME_OFFSET = 0
HOME_SEARCH_VEL = -.2

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 = LINEAR
HOME = 10
FERROR = 1
MIN_FERROR = 1
MAX_VELOCITY = 2.08
MAX_ACCELERATION = 30.0
P = 500
I = 0
D = 0
FF0 = 0
FF1 = 3.03
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = -40960
OUTPUT_SCALE = 10
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
MIN_LIMIT = -0
MAX_LIMIT = 12
HOME_OFFSET = 12
HOME_SEARCH_VEL = 0.2

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 = 1
MIN_FERROR = 1
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
P = 300
I = 0
D = 0
FF0 = 0
FF1 = 3.1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = -163840
OUTPUT_SCALE = 10
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
MIN_LIMIT = -5
MAX_LIMIT = 0.001
HOME_OFFSET = 0.05
HOME_SEARCH_VEL = 0.100000
HOME_LATCH_VEL = 0.016667
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0

#********************
# Axis W
#********************
[AXIS_8]
TYPE = LINEAR

ENCODER_SCALE = -6350


##Immediate Homing###
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_FINAL_VEL = 0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 0




#********************
# Axis A
#********************
[AXIS_3]
TYPE = ANGULAR
HOME = 13.411
FERROR = 360
MIN_FERROR = 30
MAX_VELOCITY = 140
MAX_ACCELERATION = 30
P = 60
I = 0
D = 0
FF0 = 0
FF1 = 3.03
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = -16384
OUTPUT_SCALE = 10
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
MIN_LIMIT = -9999999.0
MAX_LIMIT = 9999999.0

##Immediate Homing###
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_FINAL_VEL = 0
HOME_USE_INDEX = NO
HOME_SEQUENCE = 0

##Repeatable homing##
#HOME_OFFSET = 1
#HOME_SEARCH_VEL = 10.000000
#HOME_LATCH_VEL = -0.500000
#HOME_FINAL_VEL = 0.000000
#HOME_USE_INDEX = YES

#********************
# Spindle 
#********************
[SPINDLE_9]
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 3600.0
ENCODER_SCALE = 4000.0
OUTPUT_SCALE = 3600.0
OUTPUT_MIN_LIMIT = 0.0
OUTPUT_MAX_LIMIT = 3600.0

#********************
# Axis B
#********************
[AXIS_4]

#********************
# Axis C
#********************
[AXIS_5]

#********************
# Axis U
#********************
[AXIS_6]

#********************
# Axis V
#********************
[AXIS_7]

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

More
24 Jul 2018 22:36 #114773 by NCPatrol
Replied by NCPatrol on topic Rigid Tapping Help
Bump!

Any pointers?


The previous owner did this conversion with the original steppers and then later converted to servos. He's fairly confident that he had used rigid tapping after the servo conversion (meaning the config should be correct), but I don't think he was 100% sure.

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

More
25 Jul 2018 15:32 - 25 Jul 2018 15:33 #114808 by OT-CNC
Replied by OT-CNC on topic Rigid Tapping Help
I glanced over the ini and hal and didn't see anything obviously wrong but maybe one of the experts could confirm.
How low of an rpm can you go with your vfd?

Seems the encoder is not registering the index signal....but is registering rotation/rpm. More trouble shooting tomorrow!


Can you currently turn on the spindle in a cw and ccw direction?
Can you confirm that in halmeter if you load the encoder.05 it's counting + and -?
Can you turn the spindle manually very slowly and see if the encoder.05 index led blips brown/yellow one per revolution? If you can't turn it slowly you'll need to use halscope to trigger it.

Your ini's name suggests this is on a Boss5 BP type of machine? Can tell us where the encoder is fitted on your machine? Is the vari-disc "gear box" in place and being used? If so, is your spindle at speed correct?
Last edit: 25 Jul 2018 15:33 by OT-CNC. Reason: format

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

More
25 Jul 2018 15:45 #114809 by NCPatrol
Replied by NCPatrol on topic Rigid Tapping Help

I glanced over the ini and hal and didn't see anything obviously wrong but maybe one of the experts could confirm.
How low of an rpm can you go with your vfd?
It doesn't seem to like anything below 100rpm, but does fine on the next click up around 120rpm.

Seems the encoder is not registering the index signal....but is registering rotation/rpm. More trouble shooting tomorrow!


Can you currently turn on the spindle in a cw and ccw direction?
Yes, spindle functions perfectly in both directions.
Can you confirm that in halmeter if you load the encoder.05 it's counting + and -?
Yes, encoder counts both directions
Can you turn the spindle manually very slowly and see if the encoder.05 index led blips brown/yellow one per revolution? If you can't turn it slowly you'll need to use halscope to trigger it.
No change/response shown on any of the index variables.

Your ini's name suggests this is on a Boss5 BP type of machine? Can tell us where the encoder is fitted on your machine? Is the vari-disc "gear box" in place and being used? If so, is your spindle at speed correct?

Correct, it's a rigid ram Boss 5. Encoder is mounted on top of the spindle pulley. The machine has been retrofitted with pulley drives, the varispeed is long gone. Speed appears to be correct, though i haven't checked it with a tach yet. I ha no reason to believe it's off.

^^

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

More
25 Jul 2018 16:39 #114813 by OT-CNC
Replied by OT-CNC on topic Rigid Tapping Help
How is the encoder connected to your board? Index going to the right connection?

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

Time to create page: 0.098 seconds
Powered by Kunena Forum