W axis with gantry kins hal/ini configuration

More
10 years 10 months ago #66566 by guymalpass
Hi,
I've managed to get gantrykins working on the X Y and Z of my router and individually homing each end of the gantry. However I can't seem to get the W axis working, which is the second spindle.
I initially started with [TRAJ] Axes = 5 because in the sample configuration there is a comment that this should really mean joints. However LinuxCNC fails to load, but it will load when I put Axes = 9 as expected for Trivkins. When it does load only joints 0, 1, 2 and 3 show up, which correspond to X, Y, Y and Z. There is a placeholder for W when going into world mode but when trying to jog nothing happens, this probably only exists because I have [DISPLAY] GEOMETRY = XYZW.
I have also tried calling the W axis [AXIS_4] and [AXIS_8] in hal but this makes no difference.
I would appreciate any pointers as to where I'm going wrong.
Many thanks,
Guy
Code:
# 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 = Gicam 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 = LinuxCNCgkins.hal [HALUI] [TRAJ] AXES = 9 COORDINATES = X Y Z w LINEAR_UNITS = mm ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_VELOCITY = 2.50 MAX_LINEAR_VELOCITY = 200.00 [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 = 1000 MIN_FERROR = 100 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.0 STEPGEN_MAXACCEL = 937.50 P = 50.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0025 MAX_OUTPUT = 20000 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 #******************** [AXIS_1] TYPE = LINEAR HOME = 0.0 FERROR = 1000 MIN_FERROR = 100 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.0 STEPGEN_MAXACCEL = 937.50 P = 50.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0025 MAX_OUTPUT = 20000 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_2] TYPE = LINEAR HOME = 0.0 FERROR = 1000 MIN_FERROR = 100 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.0 STEPGEN_MAXACCEL = 937.50 P = 50.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0025 MAX_OUTPUT = 20000 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 #******************** [AXIS_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.0 STEPGEN_MAXACCEL = 937.50 # 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 #******************** [AXIS_8] 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.0 STEPGEN_MAXACCEL = 937.50 # 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
Code:
# 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 gantrykins coordinates=XYYZW 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=5 sserial_port_0=00000x" 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 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 # external output signals # external input signals # --- HOME-X --- net home-x <= hm2_5i25.0.7i76.0.3.input-00 # --- HOME-Y --- net home-y <= hm2_5i25.0.7i76.0.3.input-01 # --- SPINDLE-AT-SPEED --- net spindle-at-speed <= hm2_5i25.0.7i76.0.3.input-15 #******************* # 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 # Step Gen signals/setup setp hm2_5i25.0.stepgen.00.dirsetup [AXIS_0]DIRSETUP setp hm2_5i25.0.stepgen.00.dirhold [AXIS_0]DIRHOLD setp hm2_5i25.0.stepgen.00.steplen [AXIS_0]STEPLEN setp hm2_5i25.0.stepgen.00.stepspace [AXIS_0]STEPSPACE setp hm2_5i25.0.stepgen.00.position-scale [AXIS_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 [AXIS_0]STEPGEN_MAXACCEL setp hm2_5i25.0.stepgen.00.maxvel [AXIS_0]STEPGEN_MAXVEL # ---closedloop stepper signals--- net x-pos-cmd <= axis.0.motor-pos-cmd net x-vel-cmd <= axis.0.joint-vel-cmd net x-output <= hm2_5i25.0.stepgen.00.velocity-cmd net x-pos-fb => axis.0.motor-pos-fb net x-enable <= axis.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 [AXIS_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 axis.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 => axis.0.home-sw-in net x-neg-limit => axis.0.neg-lim-sw-in net x-pos-limit => axis.0.pos-lim-sw-in #******************* # AXIS Y #******************* setp pid.y1.Pgain [AXIS_1]P setp pid.y1.Igain [AXIS_1]I setp pid.y1.Dgain [AXIS_1]D setp pid.y1.bias [AXIS_1]BIAS setp pid.y1.FF0 [AXIS_1]FF0 setp pid.y1.FF1 [AXIS_1]FF1 setp pid.y1.FF2 [AXIS_1]FF2 setp pid.y1.deadband [AXIS_1]DEADBAND setp pid.y1.maxoutput [AXIS_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 [AXIS_1]DIRSETUP setp hm2_5i25.0.stepgen.02.dirhold [AXIS_1]DIRHOLD setp hm2_5i25.0.stepgen.02.steplen [AXIS_1]STEPLEN setp hm2_5i25.0.stepgen.02.stepspace [AXIS_1]STEPSPACE setp hm2_5i25.0.stepgen.02.position-scale [AXIS_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 [AXIS_1]STEPGEN_MAXACCEL setp hm2_5i25.0.stepgen.02.maxvel [AXIS_1]STEPGEN_MAXVEL # ---closedloop stepper signals--- net y1-pos-cmd <= axis.1.motor-pos-cmd net y1-vel-cmd <= axis.1.joint-vel-cmd net y1-output => hm2_5i25.0.stepgen.02.velocity-cmd net y1-pos-fb => axis.1.motor-pos-fb net y1-enable <= axis.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 [AXIS_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 axis.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 => axis.1.home-sw-in net y1-neg-limit => axis.1.neg-lim-sw-in net y1-pos-limit => axis.1.pos-lim-sw-in # ---SECOND Y AXIS--- setp pid.y2.Pgain [AXIS_2]P setp pid.y2.Igain [AXIS_2]I setp pid.y2.Dgain [AXIS_2]D setp pid.y2.bias [AXIS_2]BIAS setp pid.y2.FF0 [AXIS_2]FF0 setp pid.y2.FF1 [AXIS_2]FF1 setp pid.y2.FF2 [AXIS_2]FF2 setp pid.y2.deadband [AXIS_2]DEADBAND setp pid.y2.maxoutput [AXIS_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 [AXIS_2]DIRSETUP setp hm2_5i25.0.stepgen.03.dirhold [AXIS_2]DIRHOLD setp hm2_5i25.0.stepgen.03.steplen [AXIS_2]STEPLEN setp hm2_5i25.0.stepgen.03.stepspace [AXIS_2]STEPSPACE setp hm2_5i25.0.stepgen.03.position-scale [AXIS_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 [AXIS_2]STEPGEN_MAXACCEL setp hm2_5i25.0.stepgen.03.maxvel [AXIS_2]STEPGEN_MAXVEL # ---closedloop stepper signals--- net y2-pos-cmd <= axis.2.motor-pos-cmd net y2-vel-cmd <= axis.2.joint-vel-cmd net y2-output => hm2_5i25.0.stepgen.03.velocity-cmd net y2-pos-fb => axis.2.motor-pos-fb net y2-enable <= axis.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 [AXIS_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 axis.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 => axis.2.home-sw-in net y2-neg-limit => axis.2.neg-lim-sw-in net y2-pos-limit => axis.2.pos-lim-sw-in #******************* # AXIS Z #******************* # Step Gen signals/setup setp hm2_5i25.0.stepgen.01.dirsetup [AXIS_3]DIRSETUP setp hm2_5i25.0.stepgen.01.dirhold [AXIS_3]DIRHOLD setp hm2_5i25.0.stepgen.01.steplen [AXIS_3]STEPLEN setp hm2_5i25.0.stepgen.01.stepspace [AXIS_3]STEPSPACE setp hm2_5i25.0.stepgen.01.position-scale [AXIS_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 [AXIS_3]STEPGEN_MAXACCEL setp hm2_5i25.0.stepgen.01.maxvel [AXIS_3]STEPGEN_MAXVEL # ---stepper signals--- net z-pos-cmd-in axis.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 => axis.3.motor-pos-fb net z-enable <= axis.3.amp-enable-out net z-enable => hm2_5i25.0.stepgen.01.enable # ---setup home / limit switch signals--- net z-home-sw => axis.3.home-sw-in net z-neg-limit => axis.3.neg-lim-sw-in net z-pos-limit => axis.3.pos-lim-sw-in #******************* # AXIS W #******************* # Step Gen signals/setup setp hm2_5i25.0.stepgen.04.dirsetup [AXIS_8]DIRSETUP setp hm2_5i25.0.stepgen.04.dirhold [AXIS_8]DIRHOLD setp hm2_5i25.0.stepgen.04.steplen [AXIS_8]STEPLEN setp hm2_5i25.0.stepgen.04.stepspace [AXIS_8]STEPSPACE setp hm2_5i25.0.stepgen.04.position-scale [AXIS_8]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 [AXIS_8]STEPGEN_MAXACCEL setp hm2_5i25.0.stepgen.04.maxvel [AXIS_8]STEPGEN_MAXVEL # ---stepper signals--- net w-pos-cmd-in axis.8.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 => axis.8.motor-pos-fb net w-enable <= axis.8.amp-enable-out net w-enable => hm2_5i25.0.stepgen.04.enable # ---setup home / limit switch signals--- net w-home-sw => axis.8.home-sw-in net w-neg-limit => axis.8.neg-lim-sw-in net w-pos-limit => axis.8.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-02 => classicladder.0.in-03 net c2-in hm2_5i25.0.7i76.0.3.input-03 => 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 z-vel axis.3.joint-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
10 years 10 months ago #66580 by Todd Zuercher
If you were using trivkins, then the joint numbers would have to line up with the axis letters, (X=0, Z=2, W=8). Also unused joints, and axis would also need to have empty placeholders in your INI file.

Here is a link to a W axis 2 spindle router config I used. (It also has a custom Mcode for slaving the W to the Z axis for carving 2 items with the xyz g-code.)
forum.linuxcnc.org/forum/38-general-linu...e-questions?start=20
forum.linuxcnc.org/media/kunena/attachments/3190/ZWtest.zip
It is at least an example of how to set up an xyzw machine using trivkins.

I havn't played with gantrykins much so I'm not sure how this all affects how that has to be set up. You may have to play arround with it some to find what works best for you (or if it will work at all.)

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

More
10 years 10 months ago #66581 by guymalpass
Hi Todd, yes that is how I have my trivkins config set up which works perfectly except I've never used empty placeholders? I could try the placeholder with the gantrykins config though and see if it makes a difference.

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

More
10 years 10 months ago #66583 by guymalpass
It was also interesting reading about your solution for controlling the second spindle. My solution was to use the tool numbers to swap between the axes ie M6 T1 would set spindle 1 as Z and spindle 2 as W and M6 T2 with spindle 1 as W and spindle 2 as Z. This works really well with CAM software because you can treat it like a toolchanger. By using TOOL_CHANGE_QUILL_UP = 1 in the ini also makes sure the active spindle returns to it's home position for reliable axis swapping on a stepper system with no position feedback.

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

More
10 years 10 months ago - 10 years 10 months ago #66616 by guymalpass
Unfortunately the empty placeholders haven't made a difference in getting W to work with gantrykins
Last edit: 10 years 10 months ago by guymalpass.

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

More
10 years 10 months ago #66620 by andypugh

guymalpass wrote: Unfortunately the empty placeholders haven't made a difference in getting W to work with gantrykins


What error messages do you see?

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

Time to create page: 0.340 seconds
Powered by Kunena Forum