To supplement Gaig's replies, the following should be of value.
What do i need to do to get my code running at a decent speed?
You will need to know what is the max velocity is for each of the axis.
In a synchronised move the slowest axis determines the speed of all the rest.
So you are limited by the slowest max velocity.
One can use a Stepper Caculator located in Members Doc's to find steps per unit and it
also gives additional info.
http://www.machsupport.com/forum/index.php/topic,16315.0.htmlAssuming that the XYZ are tuned and represent reliable operation then you have the max
velocity in units per min. Now you need to know the same for an A axis ( rotary )
and it's nice be able to relate the deg/min (max feedrate) to the linear axes feedrate.
You tune a rotary similar to a linear axis as follows:
- Steps per degree is calculated.
- use a velocity ( deg per min) of 360 and accel of say 10
- double the velocity until the rotary skips, and reduce velocity by say 10%.
- now increase the accel, say 10, 400, 1600, 3200, etc and find where it skips
for the max velocity found.
You have now know where the A axis skips for a your velocity and acceleration settings.
To relate the rotary to rpm just manualy time ( or measure rpm ) how long it takes to make
1 revolution, say over 4 revolutions. Do that for a few lower / different velocity settings below
the max velocity found.
The attached shows results of the above in a spread sheet.
Angular Motor Tuning shows an rpm value for the rotary.
Linear unit per Min at table RPM - Since the slowest axis will govern the max velocity that
can be used in a sychronized move this relates the linear axis to roatry axis velocities.
Say the max linear axes velocity is set at 60 inches per min and is represented by the yellow,
then max angular velocity for a coded sychronized move should be restricted such that it doesn't
exceed the rotary table rpm.
You have what you have and if not satisfactory then change the mechanics of the system.
RICH