Skip to main content
Submitted by CHRISWISEMAN62… on Mon, 02/13/2017 - 06:37

My application involves two axis of motion which result in motion along the surface of a cylinder
Axis A = Axial motion(moves parallel to cylinder axis)
Axis B = Bore axis (or Rotational axis) . Rotary motion around the cylinder axis
The motion is very simple. We rotate at constant velocity on the B axis by using the Jog command.
For every rotation of the B axis, we advance the A axis by a "step" value(from 0.05" to 0.5", depending on what the operator previously entered)
The B axis cannot stop for the A axis move. Both moves happen together. The A axis move is a PR move
The A axis step move is timed to start at a specific point just before the end of each B axis load rotation such that we get a 45 degree angle move between the two axes. I have all of the above motion programmed and working.

The problem is that I will only get 147.94 revolutions of the rotary load(( 2,147,483,647.0/(4*1000*1296*56/20)) before rollover occurs.
i.e. 147.94 revolutions before we get a position rollover on the rotational axis B.
The B axis quad. encoder counts per 1 revolution of the B load axis are 4*1000*1296*56/20= 14,515,200.0 quad counts
14,515,200.0 does not exactly divide into the Max Galil position of 2,147,483,647.0 counts
So, I am worried about being out of phase for subsequent A axis step moves, etc
Our A axis has 48" of movement max.
If we traverse the whole 48” of the axial load, that gives us a minimum of 48”/147= 0.326” per skip before rollover occurs
This is obviously unacceptable as I need to allow a skip size of 0.050"
I wondering if I can normalize the rotation axis to within one revolution each time we rotate a full rotation of the load.
It would be best if I could do this on the fly say when we hit the one revolution of the B axis.
The B axis quad. encoder counts per 1 revolution of the load axis are 4*1000*1296*56/20= 14,515,200.0 counts
So, ideally, every time the B axis hits 14,515,200.0 counts then I would reset it to 0 on the fly and also take into account any following error.
Is this possible? How would I handle it?

NOTES:
Max Galil position is 2,147,483,647.0 quadrature encoder counts
Gear reduction(from motor to load) = 1296*56/20
Quad. encoder counts/motor-rev = 4*1000

Comments 2

CHRISWISEMAN62… on 02/13/2017 - 06:38

Question regarding rollover

KushalP on 02/13/2017 - 13:31

Hi Chris,

I see that you've been working with Cory L regarding your application. It would best if you worked with him directly to answer this question on roll over.

Regards,

Kushal P