Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I synchronize 2-axis with non linear gear ratio

HI,

I need to Synchronize 2-axis that have a non-linear gear ratio with RT control, max provides help for linear gear ratio only. I'm trying to select the hardware at the moment - do I need a LabVIEW RT system for this, or would it be possible with motion card onboard programming? Are there any NI-tools or VIs that could help with this requirement?

Thanks

Martin
Certified LabVIEW Architect
0 Kudos
Message 1 of 7
(4,242 Views)
Are you saying that each axis somehow has a non-linear gear ratio? If that is the case then I think that your only option would be to use servos. If you are saying that axis 1 has a different ratio than axis 2, then that is easily handled in the setup of the controller. Please let us know which you are referring to.
0 Kudos
Message 2 of 7
(4,227 Views)
I think I know what you're trying to do.

I had a similar idea to gear two axes to allow me to correct a tilt angle with two linear steppers, but non-linear gearing isn't possible I think.

What is possible however, is generating a vector space based on the two motors involved. Then, in interpreting the two motors as X and Y (Which they aren't, but for the sake of getting the software to do what we want, we have to think like they are), we can make a contoured move in the XY plane. This way, we can effectively couple the movement of the two motors in any way we choose. By altering the contour, we can alter how the two motors run in relation to each other.

A straight-line contour will act like a static gearing ratio, whereas any curved contour will result in a dynamically changing relationship between the two motors (just like dynamically changing gear ratios).

It's a bit twiddly, and to be honest I've never done it myself (I solved my problem in another way) but I'm pretty sure it should work.

Either way, I hope this helps

Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)
0 Kudos
Message 3 of 7
(4,192 Views)
Shane,

I started out trying what you describe but the blending did not work well for lots of tiny straight-line moves. So I changed to contoured moves, found a firmware bug (spline fit bug) - fortunately the bug was fixed by a firmware upgrade (615). I can just about get the whole set of time critical moves for 4-axis loaded into the PCI-7433 Flash buffer. This technique seems a good solution to me. The only interaction with the host PC during motion is polling for move complete, this does not seem to cause any interruptions with RT control.

BTW - it turns out the firmware upgrade also fixed the blending issue (inconsistent motor speed for fragmented straight-line move).

Thanks
Certified LabVIEW Architect
0 Kudos
Message 4 of 7
(4,170 Views)
I was assuming a contoured move was the way to go.

I'm glad you've been able to get it working. Now I know it works too. As I've said, I've never actually implemented it, just gone through the motions logically.

Glad to help.

Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)
0 Kudos
Message 5 of 7
(4,160 Views)
Now that I think of it (yet more logical movements), how did you get the contoured move to work with 4 axes? I thought the vector space was limited to 3 axes.....

Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)
0 Kudos
Message 6 of 7
(4,159 Views)
Shane,

Contoured moves treat each axis independently. A 1D array of position points is required for each axis. When using the multi-start function all axis are synchronised, that is the 1D array for every axis (started with multi-start) shares a common index. The controller processes each position data point at a constant time interval. So to move one axis slower than another the position data points must specify smaller move increments within the consecutive array elements. The multi-start VI I'm using allows for 8-axis to be started simultaneously.

Using contouring can create more work for us, but provides greater control. Note the trajectory generator is bypassed when using contoured moves. And blending is not applied, also a cubic spline is used to generate intermediate position data points for the controller. There are also other considerations probably, have a look at the user manual.

I have found that contouring can be difficult to run without host interaction (feeding a buffer etc). But I'm fortunate enough to fit all my moves into non-volatile memory. The non-volatile memory limit seems to be about 32000 position points shared between all axis (same for 4 & 8 axis boards), and it can not be upgraded. I think there may be some issues with allocating all 32K points to a single axis because it uses multiple memory blocks, not sure though, my application uses 8K points per axis.

I think it would be a good idea for NI to allow for more than 3-axis when using vectors - X,Y,Z+Angle is a common requirement. When I mentioned this to the NI sales guy he started going on about time travel! I could not be bothered to explain at the time.

Martin
Certified LabVIEW Architect
0 Kudos
Message 7 of 7
(4,137 Views)