5-Axis - XYZAB vs. XYZAC configuration

More
12 Aug 2018 01:02 - 12 Aug 2018 01:05 #115933 by Askjerry
I'm still learning how to configure a 5-Axis machine... I got a working XYZAB configuration... but now that I'm really looking into the kinematics and all... I realize that the B-Axis may actually need to be programmed as a C-Axis. (Not sure yet.)



Here is a video... if the spinning table is pointed up... that would make it a C-Axis... but if I rotate it 90-degrees... as I am in the video... and set that as home... then i think it is a B-Axis. yeah?

Anyway... here is the odd part... I made a copy of the xyzAB configuration and changed all the references to the B-Axis into a C-Axis...

(Just a small snipet of the configuration)
net joint-select-b        halui.joint.4.select
net b-is-homed            halui.joint.4.is-homed
net jog-b-pos             halui.jog.4.plus
net jog-b-neg             halui.jog.4.minus
net jog-b-analog          halui.jog.4.analog

becomes

(Just a small snipet of the configuration modified... I modified the whole thing of course...)
net joint-select-c        halui.joint.4.select
net c-is-homed            halui.joint.4.is-homed
net jog-c-pos             halui.jog.4.plus
net jog-c-neg             halui.jog.4.minus
net jog-c-analog          halui.jog.4.analog

I would think that it would run ok... but LinixCNC (AXIS) fails.

File Attachment:

File Name: COMPARE-AB-AC.tar.gz
File Size:32 KB

(The above is both the working AB and the failing AC configurations.)

Any idea why???
Thanks,
Jerry
Attachments:
Last edit: 12 Aug 2018 01:05 by Askjerry. Reason: Clarity

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

More
12 Aug 2018 16:05 - 12 Aug 2018 16:11 #115966 by Askjerry
I figured it out... it may not be the most elegant solution... but it is working. I'll post my notes and the current configuration here in case anyone else has this issue.

This is my setup: XYZAC Configuration

In the INI file I have this to tell it which actual axis we are using...
[DISPLAY]
GEOMETRY = xyzac

Then further down I had to aparently tell it there were 6 axis... even though I'm not using the B-Axis.
[TRAJ]
AXES = 6
COORDINATES = X Y Z A C

Next I redefined the A-Axis, and changed the B-Axis into a C-Axis...
#----------------------------------------------------------------------------------------
# Axis A 	--- CRADLE SECTION ---						      ---
#----------------------------------------------------------------------------------------
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.005
MIN_FERROR = 0.0005
#---------------------------------------------------------
MAX_VELOCITY =     100
MAX_ACCELERATION = 150
STEPGEN_MAXVEL =   1000
STEPGEN_MAXACCEL = 1500
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
#----------- Invert Scale to Change Directions (Make Negative Number)
STEP_SCALE = -26.6667
MIN_LIMIT =  -190
MAX_LIMIT =   190
#---------------------------------------------------------
BACKLASH = 6
#---------------------------------------------------------
HOME_OFFSET = 0

#----------------------------------------------------------------------------------------
# Axis C	--- Rotary Table Platter ---					      ---
#----------------------------------------------------------------------------------------
[AXIS_5]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.005
MIN_FERROR = 0.0005
#---------------------------------------------------------
MAX_VELOCITY =     100
MAX_ACCELERATION = 150
STEPGEN_MAXVEL =   1000
STEPGEN_MAXACCEL = 1500
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 26.6667
MIN_LIMIT =  -9999
MAX_LIMIT =   9999
#---------------------------------------------------------
BACKLASH = 1
#---------------------------------------------------------
HOME_OFFSET = 0.0

In the HAL file... I had to change the stepgen.04 to point to AXIS_5 since B-Axis isn't being used... and I have only 5 step generators on this card.
#----------------------------------------------------------------------------------------
#  AXIS C
#----------------------------------------------------------------------------------------
# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.04.dirsetup 	     [AXIS_5]DIRSETUP
setp   hm2_5i25.0.stepgen.04.dirhold         [AXIS_5]DIRHOLD
setp   hm2_5i25.0.stepgen.04.steplen         [AXIS_5]STEPLEN
setp   hm2_5i25.0.stepgen.04.stepspace       [AXIS_5]STEPSPACE
setp   hm2_5i25.0.stepgen.04.position-scale  [AXIS_5]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_5]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.04.maxvel           [AXIS_5]STEPGEN_MAXVEL

net c-pos-fb     axis.5.motor-pos-fb   <=  hm2_5i25.0.stepgen.04.position-fb
net c-pos-cmd    axis.5.motor-pos-cmd  =>  hm2_5i25.0.stepgen.04.position-cmd
net c-enable     axis.5.amp-enable-out =>  hm2_5i25.0.stepgen.04.enable

Not sure if I'm doing it right... but so far it seems to behave correctly. The next thing I need to do is learn about the kinematics... to offset the top of the platter (C-Axis) with the hinge point of the cradle (A-Axis) which is about X0, Y0, Z~15mm or so. That will affect the way it calculates the offset for the A rotation. Man... so much more complex when you add a 5th axis!!!

Here is what I came up with...

File Attachment:

File Name: 5-AxisACV2.tar.gz
File Size:50 KB


Jerry
Attachments:
Last edit: 12 Aug 2018 16:11 by Askjerry. Reason: Added link

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

More
30 Sep 2018 08:41 #118227 by robh
hi
on our 5axis the 4th axis "B" axis homes facing up to the spindle and this ismostly always named B if it rotates around the Y axis, ie when its at -90 or +90 the length of a part is in the X axis.. if it was in the Y axis then it woul dbe "A" axis

the 5th axis, is alwyas "C" as it rotates around the spindle "Z"
like on a lathe when spindle is a axis it becomes C as it rotates around the "Z"

i am assuming your spindle is on the "Z" axis here by the way!

here is my machine


"B" axis is the Tilt on the table, "C" is the collet chuck if you like.

i have not yet done any TCP on the machine, but i know there is a post on here with someone working on one. for now i have indexer rotates set as say G54 and i program from the cad around that point and let cad take care of things.. the down side is, you need to know center distance well and jigs etc need to be well modeled also as errors can stack up and show if not..

hence TCP has many plus sides as machine can take care of the center of rotate to work it all back.. but you still need to know the center of rotate very well.

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

Time to create page: 0.456 seconds
Powered by Kunena Forum