New Trajectory Planner - Testers/programs wanted

More
11 Mar 2016 16:48 #71430 by Todd Zuercher
Adding a small lead in move in the XY plane removes the pause as well.
G21 G17 G90 G64 P0.05 G40
G0 Z3.0
T1 M6
M3 S1000
G0 X556.0 Y-305.0
G1 F300.0 Z-3.0
G1 F3000.0 X556.0 Y-300.0
G3 X172.0 Y-78.2975 I-256.0 J0.0
G3 Y-521.7025 I128.0 J-221.7025
G3 X556.0 Y-300.0 I128.0 J221.7025
G0 Z3.0
M5
M30

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

More
12 Dec 2016 22:13 #83998 by guymalpass
Hi,
I have recently encountered a problem that is triggering a following error.
Please find a photo of my live tool plot here: https://goo.gl/photos/jyCbxXy7A5tJsKCq6 live plot

The problem occurs at the start of line 35 where it seems as though linuxcnc doesn't attempt to follow the arc. I have temporarily got this program running by setting ARC_BLEND_ENABLE to FALSE.

Please ask what additional information may be necessary and I will try to provide it.

Thanks,
Guy

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

More
12 Dec 2016 22:16 #83999 by guymalpass
I am on the current iteration of Master and here are my ini and hal files:
# This config file was created 2015-12-01 09:00:32.737957 by the update_ini script
# The original config files may be found in the /home/guy/linuxcnc-dev/configs/Gicam/Gicam.old directory

# Generated by PNCconf at Mon Nov 30 19:55:47 2015
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

[EMC]
# The version string for this INI file.
VERSION = 1.0

MACHINE = CNC JA9
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/guy/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 25.0000
MAX_LINEAR_VELOCITY = 200.000000
MIN_LINEAR_VELOCITY = 0.010000
DEFAULT_ANGULAR_VELOCITY = 0.250000
MAX_ANGULAR_VELOCITY = 1.000000
MIN_ANGULAR_VELOCITY = 0.010000
EDITOR = mousepad
GEOMETRY = XYZW
PROGRAM_PREFIX = /media

[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

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
SERVO_PERIOD = 1000000

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[HAL]
HALUI = halui
HALFILE = LinuxCNCJA9.hal

[HALUI]

[TRAJ]
AXES = 4
COORDINATES = XYZW
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 200.00
ARC_BLEND_OPTIMIZATION_DEPTH = 150
DEFAULT_ACCELERATION = 750
MAX_ACCELERATION = 750

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

[KINS]
JOINTS = 5
KINEMATICS = trivkins coordinates=xyyzw
AUTO_TELEOP = 20


[AXIS_X]

HOME = 0
MIN_LIMIT = -0.01
MAX_LIMIT = 1470.0
MAX_VELOCITY = 200.0
MAX_ACCELERATION = 750.0

[JOINT_0]

TYPE = LINEAR
HOME = 0
FERROR = 5.0
MIN_FERROR = 0.5
MAX_VELOCITY = 200.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 250
STEPGEN_MAXACCEL = 937.5
P = 170
I = 0
D = 0
FF0 = 0
FF1 = 0.994
FF2 = 0.000025
BIAS = 0
DEADBAND = 0.0016
MAX_OUTPUT = 0
ENCODER_SCALE = 763.9437
# these are in nanoseconds
DIRSETUP   = 25000
DIRHOLD    = 26600
STEPLEN    = 1600
STEPSPACE  = 1600
STEP_SCALE = -636.6198
MIN_LIMIT = -0.01
MAX_LIMIT = 1470.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 10
HOME_LATCH_VEL = 10
HOME_USE_INDEX = YES
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0


[AXIS_Y]

HOME = 0.0
MIN_LIMIT = -0.01
MAX_LIMIT = 2500.0
MAX_VELOCITY = 200.0
MAX_ACCELERATION = 750.0

[JOINT_1]

TYPE = LINEAR
HOME = 0.0
FERROR = 5.0
MIN_FERROR = 0.5
MAX_VELOCITY = 200.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 250
STEPGEN_MAXACCEL = 937.5
P = 170
I = 0
D = 0
FF0 = 0
FF1 = 0.994
FF2 = 0.000025
BIAS = 0
DEADBAND = 0.003
MAX_OUTPUT = 0
ENCODER_SCALE = -763.9437
# these are in nanoseconds
DIRSETUP   = 25000
DIRHOLD    = 26600
STEPLEN    = 1600
STEPSPACE  = 1600
STEP_SCALE = 636.6198
MIN_LIMIT = -0.01
MAX_LIMIT = 2500.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 10
HOME_LATCH_VEL = 10
HOME_USE_INDEX = YES
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1

[JOINT_2]

TYPE = LINEAR
HOME = 0.0
FERROR = 5.0
MIN_FERROR = 0.5
MAX_VELOCITY = 200.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 250
STEPGEN_MAXACCEL = 937.5
P = 170
I = 0
D = 0
FF0 = 0
FF1 = 0.994
FF2 = 0.000025
BIAS = 0
DEADBAND = 0.003
MAX_OUTPUT = 0
ENCODER_SCALE = 763.9437
# these are in nanoseconds
DIRSETUP   = 25000
DIRHOLD    = 26600
STEPLEN    = 1600
STEPSPACE  = 1600
STEP_SCALE = -636.6198
MIN_LIMIT = -0.01
MAX_LIMIT = 2500.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 10
HOME_LATCH_VEL = 10
HOME_USE_INDEX = YES
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1

[AXIS_Z]

HOME = 0.0
MIN_LIMIT = -335.0
MAX_LIMIT = 0.01
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 750.0

[JOINT_3]

TYPE = LINEAR
HOME = 0.0
FERROR = 2.0
MIN_FERROR = 0.2
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 125
STEPGEN_MAXACCEL = 937.5
# these are in nanoseconds
DIRSETUP   = 25000
DIRHOLD    = 26600
STEPLEN    = 1600
STEPSPACE  = 1600
STEP_SCALE = -256
MIN_LIMIT = -335.0
MAX_LIMIT = 0.01
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2

[AXIS_W]

HOME = 0.0
MIN_LIMIT = -335.0
MAX_LIMIT = 0.01
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 750.0

[JOINT_4]

TYPE = LINEAR
HOME = 0.0
FERROR = 2.0
MIN_FERROR = 0.2
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 125
STEPGEN_MAXACCEL = 937.5
# these are in nanoseconds
DIRSETUP   = 25000
DIRHOLD    = 26600
STEPLEN    = 1600
STEPSPACE  = 1600
STEP_SCALE = -256
MIN_LIMIT = -335.0
MAX_LIMIT = 0.01
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2

#********************
# Spindle 
#********************
[HOSTMOT2]
# **** This is for info only ****
# DRIVER0=hm2_pci
# BOARD0=5i25

[SPINDLE_9]
OUTPUT_SCALE = 24000.0
OUTPUT_MIN_LIMIT = 3000.0
OUTPUT_MAX_LIMIT = 24000.0


# Generated by PNCconf at Mon Nov 30 19:55:47 2015
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_pci config=" num_encoders=6 num_pwmgens=0 num_stepgens=5 sserial_port_0=10000x" 
setp    hm2_5i25.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y1,pid.y2
loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10 numBits=50 numWords=50
loadrt axisswap count=1
loadrt conv_float_s32 count=2
loadrt mult2 count=2
loadrt sum2 count=1

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.y1.do-pid-calcs       servo-thread
addf pid.y2.do-pid-calcs       servo-thread
addf classicladder.0.refresh servo-thread
addf hm2_5i25.0.write         servo-thread
addf axisswap.0 servo-thread
addf conv-float-s32.0 servo-thread 
addf conv-float-s32.1 servo-thread
addf mult2.0 servo-thread
addf mult2.1 servo-thread
addf sum2.0 servo-thread

# external output signals


# external input signals

# --- HOME-X ---
net home-x     <=  hm2_5i25.0.7i76.0.3.input-16

# --- HOME-Y ---
net home-y     <=  hm2_5i25.0.7i76.0.3.input-18

# --- SPINDLE-AT-SPEED ---
net spindle-at-speed     <=  hm2_5i25.0.7i76.0.3.input-15

# --- FEED OVERRIDE ---
setp halui.feed-override.count-enable TRUE
setp halui.feed-override.direct-value TRUE
setp halui.feed-override.scale 0.01
setp mult2.0.in0 8.216134
net feed-float-in mult2.0.in1 <= hm2_5i25.0.7i77.0.0.analogin1
net feed-mult-out mult2.0.out => conv-float-s32.0.in
net feed-s32-out conv-float-s32.0.out => halui.feed-override.counts

# --- RAPID OVERRIDE ---
setp halui.rapid-override.count-enable TRUE
setp halui.rapid-override.direct-value TRUE
setp halui.rapid-override.scale 0.02
net feed-s32-out => halui.rapid-override.counts

# --- SPINDLE OVERRIDE ---
setp halui.spindle-override.count-enable TRUE
setp halui.spindle-override.direct-value TRUE
setp halui.spindle-override.scale 0.01
setp mult2.1.in0 4.156682
setp sum2.0.in0 50
net spindle-pot-in mult2.1.in1 <= hm2_5i25.0.7i77.0.0.analogin0
net spindle-mult-out mult2.1.out => sum2.0.in1
net spindle-sum2-out sum2.0.out => conv-float-s32.1.in
net spindle-s32-out conv-float-s32.1.out => halui.spindle-override.counts

# --- DRIVE FAULT FEEDBACK ---
net drive-fault <= hm2_5i25.0.7i76.0.3.input-17-not
net drive-fault => joint.0.amp-fault-in
net drive-fault => joint.1.amp-fault-in
net drive-fault => joint.2.amp-fault-in
net drive-fault => joint.3.amp-fault-in
net drive-fault => joint.4.amp-fault-in

#*******************
#  AXIS X
#*******************

setp   pid.x.Pgain     [JOINT_0]P
setp   pid.x.Igain     [JOINT_0]I
setp   pid.x.Dgain     [JOINT_0]D
setp   pid.x.bias      [JOINT_0]BIAS
setp   pid.x.FF0       [JOINT_0]FF0
setp   pid.x.FF1       [JOINT_0]FF1
setp   pid.x.FF2       [JOINT_0]FF2
setp   pid.x.deadband  [JOINT_0]DEADBAND
setp   pid.x.maxoutput [JOINT_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

# Step Gen signals/setup

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

# ---closedloop stepper signals---

net x-pos-cmd    <= joint.0.motor-pos-cmd
net x-vel-cmd    <= joint.0.vel-cmd
net x-output     <= hm2_5i25.0.stepgen.00.velocity-cmd
net x-pos-fb     => joint.0.motor-pos-fb
net x-enable     <= joint.0.amp-enable-out
net x-enable     => hm2_5i25.0.stepgen.00.enable

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

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

net x-pos-fb               <=  hm2_5i25.0.encoder.02.position
net x-vel-fb               <=  hm2_5i25.0.encoder.02.velocity
net x-index-enable    joint.0.index-enable  <=>  hm2_5i25.0.encoder.02.index-enable
net x-pos-rawcounts        <=  hm2_5i25.0.encoder.02.rawcounts

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

net home-x     =>  joint.0.home-sw-in
net x-neg-limit     =>  joint.0.neg-lim-sw-in
net x-pos-limit     =>  joint.0.pos-lim-sw-in

#*******************
#  AXIS Y
#*******************

setp   pid.y1.Pgain     [JOINT_1]P
setp   pid.y1.Igain     [JOINT_1]I
setp   pid.y1.Dgain     [JOINT_1]D
setp   pid.y1.bias      [JOINT_1]BIAS
setp   pid.y1.FF0       [JOINT_1]FF0
setp   pid.y1.FF1       [JOINT_1]FF1
setp   pid.y1.FF2       [JOINT_1]FF2
setp   pid.y1.deadband  [JOINT_1]DEADBAND
setp   pid.y1.maxoutput [JOINT_1]MAX_OUTPUT
setp   pid.y1.error-previous-target true
#setp   pid.y1.maxerror .0005

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

# Step Gen signals/setup

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

# ---closedloop stepper signals---

net y1-pos-cmd    <= joint.1.motor-pos-cmd
net y1-vel-cmd    <= joint.1.vel-cmd
net y1-output     => hm2_5i25.0.stepgen.02.velocity-cmd
net y1-pos-fb     => joint.1.motor-pos-fb
net y1-enable     <= joint.1.amp-enable-out
net y1-enable     => hm2_5i25.0.stepgen.02.enable

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

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

net y1-pos-fb               <=  hm2_5i25.0.encoder.01.position
net y1-vel-fb               <=  hm2_5i25.0.encoder.01.velocity
net y1-index-enable    joint.1.index-enable  <=>  hm2_5i25.0.encoder.01.index-enable
net y1-pos-rawcounts        <=  hm2_5i25.0.encoder.01.rawcounts

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

net home-y     =>  joint.1.home-sw-in
net y1-neg-limit     =>  joint.1.neg-lim-sw-in
net y1-pos-limit     =>  joint.1.pos-lim-sw-in


# ---SECOND Y JOINT---


setp   pid.y2.Pgain     [JOINT_2]P
setp   pid.y2.Igain     [JOINT_2]I
setp   pid.y2.Dgain     [JOINT_2]D
setp   pid.y2.bias      [JOINT_2]BIAS
setp   pid.y2.FF0       [JOINT_2]FF0
setp   pid.y2.FF1       [JOINT_2]FF1
setp   pid.y2.FF2       [JOINT_2]FF2
setp   pid.y2.deadband  [JOINT_2]DEADBAND
setp   pid.y2.maxoutput [JOINT_2]MAX_OUTPUT
setp   pid.y2.error-previous-target true
#setp   pid.y2.maxerror .0005

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

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.03.dirsetup        [JOINT_2]DIRSETUP
setp   hm2_5i25.0.stepgen.03.dirhold         [JOINT_2]DIRHOLD
setp   hm2_5i25.0.stepgen.03.steplen         [JOINT_2]STEPLEN
setp   hm2_5i25.0.stepgen.03.stepspace       [JOINT_2]STEPSPACE
setp   hm2_5i25.0.stepgen.03.position-scale  [JOINT_2]STEP_SCALE
setp   hm2_5i25.0.stepgen.03.step_type        0
setp   hm2_5i25.0.stepgen.03.control-type     1
setp   hm2_5i25.0.stepgen.03.maxaccel         [JOINT_2]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.03.maxvel           [JOINT_2]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y2-pos-cmd    <= joint.2.motor-pos-cmd
net y2-vel-cmd    <= joint.2.vel-cmd
net y2-output     => hm2_5i25.0.stepgen.03.velocity-cmd
net y2-pos-fb     => joint.2.motor-pos-fb
net y2-enable     <= joint.2.amp-enable-out
net y2-enable     => hm2_5i25.0.stepgen.03.enable

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

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

net y2-pos-fb               <=  hm2_5i25.0.encoder.00.position
net y2-vel-fb               <=  hm2_5i25.0.encoder.00.velocity
net y2-index-enable    joint.2.index-enable  <=>  hm2_5i25.0.encoder.00.index-enable
net y2-pos-rawcounts        <=  hm2_5i25.0.encoder.00.rawcounts

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

net home-y     =>  joint.2.home-sw-in
net y1-neg-limit     =>  joint.2.neg-lim-sw-in
net y1-pos-limit     =>  joint.2.pos-lim-sw-in


#*******************
#  AXIS Z
#*******************

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.01.dirsetup        [JOINT_3]DIRSETUP
setp   hm2_5i25.0.stepgen.01.dirhold         [JOINT_3]DIRHOLD
setp   hm2_5i25.0.stepgen.01.steplen         [JOINT_3]STEPLEN
setp   hm2_5i25.0.stepgen.01.stepspace       [JOINT_3]STEPSPACE
setp   hm2_5i25.0.stepgen.01.position-scale  [JOINT_3]STEP_SCALE
setp   hm2_5i25.0.stepgen.01.step_type        0
setp   hm2_5i25.0.stepgen.01.control-type     0
setp   hm2_5i25.0.stepgen.01.maxaccel         [JOINT_3]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.01.maxvel           [JOINT_3]STEPGEN_MAXVEL

# ---stepper signals---

net z-pos-cmd-in             joint.3.motor-pos-cmd => axisswap.0.inz
net z-pos-cmd-out	          axisswap.0.outz => hm2_5i25.0.stepgen.01.position-cmd
net z-pos-fb-in hm2_5i25.0.stepgen.01.position-fb => axisswap.0.inzfb
net z-pos-fb-out                axisswap.0.outzfb => joint.3.motor-pos-fb
net z-enable     <= joint.3.amp-enable-out
net z-enable     => hm2_5i25.0.stepgen.01.enable

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

net z-home-sw     =>  joint.3.home-sw-in
net z-neg-limit     =>  joint.3.neg-lim-sw-in
net z-pos-limit     =>  joint.3.pos-lim-sw-in

#*******************
#  AXIS W
#*******************

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.04.dirsetup        [JOINT_4]DIRSETUP
setp   hm2_5i25.0.stepgen.04.dirhold         [JOINT_4]DIRHOLD
setp   hm2_5i25.0.stepgen.04.steplen         [JOINT_4]STEPLEN
setp   hm2_5i25.0.stepgen.04.stepspace       [JOINT_4]STEPSPACE
setp   hm2_5i25.0.stepgen.04.position-scale  [JOINT_4]STEP_SCALE
setp   hm2_5i25.0.stepgen.04.step_type        0
setp   hm2_5i25.0.stepgen.04.control-type     0
setp   hm2_5i25.0.stepgen.04.maxaccel         [JOINT_4]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.04.maxvel           [JOINT_4]STEPGEN_MAXVEL

# ---stepper signals---

net w-pos-cmd-in             joint.4.motor-pos-cmd => axisswap.0.inw
net w-pos-cmd-out	          axisswap.0.outw => hm2_5i25.0.stepgen.04.position-cmd
net w-pos-fb-in hm2_5i25.0.stepgen.04.position-fb => axisswap.0.inwfb
net w-pos-fb-out                axisswap.0.outwfb => joint.4.motor-pos-fb
net w-enable     <= joint.4.amp-enable-out
net w-enable     => hm2_5i25.0.stepgen.04.enable

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

net w-home-sw     =>  joint.4.home-sw-in
net w-neg-limit     =>  joint.4.neg-lim-sw-in
net w-pos-limit     =>  joint.4.pos-lim-sw-in

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

# ---digital potentionmeter output signals/setup---

setp   hm2_5i25.0.7i76.0.3.spinout-minlim    [SPINDLE_9]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i76.0.3.spinout-maxlim    [SPINDLE_9]OUTPUT_MAX_LIMIT
setp   hm2_5i25.0.7i76.0.3.spinout-scalemax  [SPINDLE_9]OUTPUT_SCALE

net spindle-vel-cmd-rpm     => hm2_5i25.0.7i76.0.3.spinout
net machine-is-enabled      => hm2_5i25.0.7i76.0.3.spinena
net spindle-ccw         => hm2_5i25.0.7i76.0.3.spindir

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


#******************************
# 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.4.select
net z-is-homed            halui.joint.4.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

#  ---signals for spindle control---

net tool-number      iocontrol.0.tool-number => classicladder.0.s32in-00
net tool-change      iocontrol.0.tool-change => classicladder.0.in-05
net tool-changed      classicladder.0.out-04 => iocontrol.0.tool-changed
net tool-prepare    iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
net spindle-cw                               => classicladder.0.in-00
net cwconfirmed       classicladder.0.out-00 => hm2_5i25.0.7i76.0.3.output-00
net spindle-ccw                              => classicladder.0.in-01
net ccwconfirmed      classicladder.0.out-01 => hm2_5i25.0.7i76.0.3.output-01
net during-run  hm2_5i25.0.7i76.0.3.input-14 => classicladder.0.in-02
net c1-in       hm2_5i25.0.7i76.0.3.input-04 => classicladder.0.in-03
net c2-in       hm2_5i25.0.7i76.0.3.input-05 => classicladder.0.in-04
net c1-out            classicladder.0.out-02 => hm2_5i25.0.7i76.0.3.output-14
net c2-out            classicladder.0.out-03 => hm2_5i25.0.7i76.0.3.output-15
net swapper           classicladder.0.out-05 => axisswap.0.sel
net y2-vel-cmd                               => classicladder.0.floatin-00 

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

loadusr classicladder --nogui custom.clp

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

More
12 Dec 2016 22:44 #84002 by tommylight
That is the result of high feed speed and high acceleration. Use G64 P0.1 if you want 0.1mm tolerance

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

More
12 Dec 2016 22:46 #84003 by guymalpass
I do use a G64 term with P and Q tolerances. This error has only started happening since I moved to master from the JA9 branch

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

More
13 Dec 2016 00:10 #84007 by Quadro
I had a similar experience see picture it is as if the 'machine gets lost.
When it happen the first time we checked all the mechanical for binding in drive and checked steppers and power supplies etc. I then verified the gcode for an error all looked good, which now thinking about it white line appeared to be correct, the pink play back had veered off. i then homed all and proceeded to finish cut the same shape with 'run from here' to replicate the problem, it cut it without a problem. so we finished the rest of the sheet and i blamed it as operator error. Not happy with the defect we loaded another sheet and proceed to cut with same file and in the exact same spot it veered from the cut path. Then rechecked a what had before, reset the machine and cut out the rest of the sheet - no problems. So instead of wasting another sheet i found a piece of scrap and 4 shapes before the problem i ran the gcode to replicate issue didn't miss a beat. I then did a 'dry run' from the start of the gcode went through without an issue. I had another file to cut which is an exact mirror image so we ran that through - no issues. I still needed a flawless first sheet so i drove the machine with my finger hovering on the stop button and in the exact same spot it started to veer from the cut path but also what happens is it dramatically slows down. I was quick enough the stop it and recut the hole with 'run from here' and finish the job.
Attachments:

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

More
13 Dec 2016 01:10 #84008 by skunkworks
Could you post a gcode program that exhibits the behavior?

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

More
13 Dec 2016 21:04 #84057 by guymalpass

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

More
13 Dec 2016 21:49 #84059 by guymalpass

File Attachment:

File Name: 8down.ngc
File Size:481 KB
Attachments:

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

More
13 Dec 2016 21:53 #84060 by guymalpass
The error occurs between N0330 and N0340 in the ngc file

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

Time to create page: 0.218 seconds
Powered by Kunena Forum