- Posts: 77
- Thank you received: 1
Rigid Tapping Help
- NCPatrol
- Offline
- Senior Member
-
Less
More
8 years 3 months ago - 8 years 3 months ago #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:
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.
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:
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: 8 years 3 months ago by NCPatrol.
Please Log in or Create an account to join the conversation.
- NCPatrol
- Offline
- Senior Member
-
Less
More
- Posts: 77
- Thank you received: 1
8 years 3 months ago #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.
- OT-CNC
- Offline
- Platinum Member
-
Less
More
- Posts: 617
- Thank you received: 75
8 years 3 months ago - 8 years 3 months ago #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: 8 years 3 months ago by OT-CNC.
Please Log in or Create an account to join the conversation.
- NCPatrol
- Offline
- Senior Member
-
Less
More
- Posts: 77
- Thank you received: 1
8 years 3 months ago #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.
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.
- PCW
- Offline
- Moderator
-
Less
More
- Posts: 18115
- Thank you received: 5334
8 years 3 months ago #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.
- NCPatrol
- Offline
- Senior Member
-
Less
More
- Posts: 77
- Thank you received: 1
8 years 3 months ago #114610
by NCPatrol
Replied by NCPatrol on topic Rigid Tapping Help
Sure...
hal:
ini:
hal:
Code:
# 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:
Code:
# 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.
Time to create page: 1.459 seconds