- Posts: 4739
- Thank you received: 2
How to. 2 or more motors on one axis. Gantry
- Todd Zuercher
- Offline
- Platinum Member
-
I've wondered if there might be a way to tie both of the Y-axis' joints jog command inputs together before homing so that they could be jogged. I'm pretty sure it could be done without too much trouble using external inputs from physical jog buttons or MPG, not so sure if the jog buttons in the gui screen could be made to work though since their signals don't go through hal. I can't say that I've seen any examples of how to do this posted anywhere, but I haven't paid real close attention to the subject. I suspect most people just accept that you can't jog the gantry before it is homed.
Please Log in to join the conversation.
... examples of how to do this posted ...
forum.linuxcnc.org/38-general-linuxcnc-q...ppings-solved#151989
Sim example is:
configs/sim/axis/gantry/gantry_jjog.ini
github.com/LinuxCNC/linuxcnc/blob/2.8/co...ntry/gantry_jjog.txt
Please Log in to join the conversation.
- Jalfrezi19
- Offline
- New Member
-
- Posts: 5
- Thank you received: 0
I'll dive into homing then...
Sander
Please Log in to join the conversation.
- DaveInConesus
- Offline
- New Member
-
- Posts: 11
- Thank you received: 0
Machine is a Gatton CNC router with two stepper motors on the gantry. Running LinuxCNC 2.8.
Please Log in to join the conversation.
XXYZ HAL
XXYZ ini file
Please Log in to join the conversation.
forum.linuxcnc.org/47-hal-examples/34072...ranch-gantry-example
but the spindle at speed pin has changed names since it was done.
Please Log in to join the conversation.
rodw wrote: You should not have any problems. I use seperate min limit , max limit and homing switches on my gantry. There is an example config here.
forum.linuxcnc.org/47-hal-examples/34072...ranch-gantry-example
but the spindle at speed pin has changed names since it was done.
rodw: That config works?
I don't see how. It looks really weird to me the way the joints are setup.
Please Log in to join the conversation.
- tommylight
-
- Offline
- Administrator
-
- Posts: 22010
- Thank you received: 3
Please Log in to join the conversation.
- DaveInConesus
- Offline
- New Member
-
- Posts: 11
- Thank you received: 0
Dave
Please Log in to join the conversation.
bevins wrote: rodw: That config works?
I don't see how. It looks really weird to me the way the joints are setup.
Warning: Spoiler!Code:# Generated by PNCconf at Sat Feb 24 07:57:58 2018 # If you make changes to this file, they will be # overwritten when you run PNCconf again [EMC] MACHINE = my_LinuxCNC_machine-rod DEBUG = 0 VERSION = 1.0 [DISPLAY] DISPLAY = axis #DISPLAY = gmoccapy 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/plasma/linuxcnc/nc_files INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm POSITION_FEEDBACK = ACTUAL DEFAULT_LINEAR_VELOCITY = 120 MAX_LINEAR_VELOCITY = 350 DEFAULT_ANGULAR_VELOCITY = 12.000000 MAX_ANGULAR_VELOCITY = 180.000000 MIN_ANGULAR_VELOCITY = 1.666667 EDITOR = gedit GEOMETRY = xyz [FILTER] PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image PROGRAM_EXTENSION = .py Python Script png = image-to-gcode gif = image-to-gcode jpg = image-to-gcode py = python [TASK] TASK = milltask CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = linuxcnc.var [EMCMOT] EMCMOT = motmod COMM_TIMEOUT = 1.0 COMM_WAIT = 0.010 SERVO_PERIOD = 1000000 [HOSTMOT2] # **** This is for info only **** # DRIVER0=hm2_eth # BOARD0=7i76e [HAL] HALUI = halui HALFILE = my_LinuxCNC_machine-rod.hal #HALFILE = custom.hal #POSTGUI_HALFILE = postgui_call_list.hal #SHUTDOWN = shutdown.hal [HALUI] [KINS] JOINTS = 4 KINEMATICS = trivkins coordinates=YYXZ [TRAJ] COORDINATES = X Y Z LINEAR_UNITS = mm ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_LINEAR_VELOCITY = 300 MAX_LINEAR_VELOCITY = 300 [EMCIO] EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = tool.tbl #******************** # Joint 0 - Y [JOINT_0] #******************** TYPE = LINEAR HOME = 0.0 FERROR = 20.0 MIN_FERROR = 1.0 MAX_VELOCITY = 300 MAX_ACCELERATION = 1500 # 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 = 700 STEPGEN_MAXACCEL = 2000 P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0.0 # these are in nanoseconds DIRSETUP = 500 DIRHOLD = 500 STEPLEN = 1500 STEPSPACE = 1500 STEP_SCALE = 261.130715645 MIN_LIMIT = -0.01 MAX_LIMIT = 1260.1 HOME_OFFSET = 43 HOME_SEARCH_VEL = -100 HOME_LATCH_VEL = 10 HOME_FINAL_VEL = 50 HOME_USE_INDEX = NO HOME_SEQUENCE = -1 # Joint 1 - Y1 [JOINT_1] #******************** TYPE = LINEAR HOME = 0.0 FERROR = 20.0 MIN_FERROR = 1.0 MAX_VELOCITY = 300 MAX_ACCELERATION = 1500 # 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 = 700 STEPGEN_MAXACCEL = 2000 P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0.0 # these are in nanoseconds DIRSETUP = 500 DIRHOLD = 500 STEPLEN = 1500 STEPSPACE = 1500 STEP_SCALE = 261.130715645 MIN_LIMIT = -0.01 MAX_LIMIT = 1260.1 HOME_OFFSET = 45 HOME_SEARCH_VEL = -100 HOME_LATCH_VEL = 10 HOME_FINAL_VEL = 50 HOME_USE_INDEX = NO HOME_SEQUENCE = -1 # Axis Y #******************** [AXIS_Y] MAX_VELOCITY = 360 MAX_ACCELERATION = 1500 MIN_LIMIT = -0.01 MAX_LIMIT = 1260.1 #******************** # Joint 2 [JOINT_2] #******************** TYPE = LINEAR HOME = 0.0 FERROR = 20.0 MIN_FERROR = 1.0 MAX_VELOCITY = 360 MAX_ACCELERATION = 1500 # 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 = 700 STEPGEN_MAXACCEL = 2000 P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0.0 # these are in nanoseconds DIRSETUP = 500 DIRHOLD = 500 STEPLEN = 2500 STEPSPACE = 2500 STEP_SCALE = -159.154925543 MIN_LIMIT = -0.01 MAX_LIMIT = 1221.1 HOME_OFFSET = 45.0 HOME_SEARCH_VEL = -100 HOME_LATCH_VEL = 25 HOME_FINAL_VEL = 100 HOME_USE_INDEX = NO HOME_SEQUENCE = 1 # Axis X #******************** [AXIS_X] MAX_VELOCITY = 360 MAX_ACCELERATION = 1500 MIN_LIMIT = -0.01 MAX_LIMIT = 1221.1 #******************** # Joint 3 [JOINT_3] #******************** TYPE = LINEAR HOME = 0.0 FERROR = 10.0 MIN_FERROR = 1.0 MAX_VELOCITY = 220 MAX_ACCELERATION = 4000 # 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 = 450 STEPGEN_MAXACCEL = 5000 P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0.0 # these are in nanoseconds DIRSETUP = 500 DIRHOLD = 500 STEPLEN = 1000 STEPSPACE = 1000 STEP_SCALE = 1000 MIN_LIMIT = -84 MAX_LIMIT = 0.001 HOME_OFFSET = 0.5 HOME_SEARCH_VEL = 10 HOME_LATCH_VEL = 5 HOME_FINAL_VEL = 10 HOME_USE_INDEX = NO HOME_SEQUENCE = 0 HOME_IS_SHARED = 1 # Axis Z #******************** [AXIS_Z] #OFFSET_AV_RATIO = 0.5 # The next 2 settings are double the real speed. Slowing down these settings reduces overshoot. # As external offsets are never used with z axis moves on plasma,this give max speeds and acceleration becasue OFFSET_AV_RATIO will halve them # maximum achieveable velocity is 110 mm/sec # maximum achievable acelleration is say 1500 mm/sec/sec MAX_VELOCITY = 110 MAX_ACCELERATION = 700 MIN_LIMIT = -84 MAX_LIMIT = 0.001 #******************** # 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 = 2000.0
Yes it worked perfect. It is based off a pncconf test I did for Chris Morley after he added some features to pncconf a long time ago. At that time, I built my config by hand by modifying another config Islanded261 did becasue joint axes was not supported in pncconf.
It just shows how flexible 2.8 and on are with joint numbering with the independent joints.
But I got rid of all references to the axes in hal signals
#*******************
# JOINT 2 X
#*******************
setp pid.2.Pgain [JOINT_2]P
setp pid.2.Igain [JOINT_2]I
setp pid.2.Dgain [JOINT_2]D
setp pid.2.bias [JOINT_2]BIAS
setp pid.2.FF0 [JOINT_2]FF0
setp pid.2.FF1 [JOINT_2]FF1
setp pid.2.FF2 [JOINT_2]FF2
setp pid.2.deadband [JOINT_2]DEADBAND
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.2.error-previous-target true
setp pid.2.maxerror .0005
net 2-index-enable <=> pid.2.index-enable
net 2-enable => pid.2.enable
net 2-pos-cmd => pid.2.command
net 2-vel-cmd => pid.2.command-deriv
net 2-pos-fb => pid.2.feedback
net 2-output => pid.2.output
# Step Gen signals/setup
setp hm2_7i76e.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i76e.0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_7i76e.0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_7i76e.0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_7i76e.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i76e.0.stepgen.02.step_type 0
setp hm2_7i76e.0.stepgen.02.control-type 1
setp hm2_7i76e.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i76e.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net 2-pos-cmd <= joint.2.motor-pos-cmd
net 2-vel-cmd <= joint.2.vel-cmd
net 2-output <= hm2_7i76e.0.stepgen.02.velocity-cmd
net 2-pos-fb <= hm2_7i76e.0.stepgen.02.position-fb
net 2-pos-fb => joint.2.motor-pos-fb
net 2-enable <= joint.2.amp-enable-out
net 2-enable => hm2_7i76e.0.stepgen.02.enable
# ---setup home / limit switch signals---
net home-2 => joint.2.home-sw-in
net min-2 => joint.2.neg-lim-sw-in
net max-2 => joint.2.pos-lim-sw-in
So the axis assignment is 100% controlled by this one single line in the ini ifile
In my view this is how stepconf and pncconf should work but nobody wants to listen to me
Oops, end of rant.....
Please Log in to join the conversation.
