GM189

Performing Linear Interpolation between a Rotary and a Linear Servo

5 posts in this topic

Hello everyone, new to this forum!

I'm asking for advice on the synchronization between a rotary and a linear servo. Let's say, if the linear motor moves 20 mm the rotary one should turn 10 times (3600 degrees). It's a very similar situation to this thread. So there's 2 points to consider:

 

1. Can I perform linear interpolation if the rotary motor is working with modulo (from 0° to 360°)? How should I write the MC_MoveLinear parameters in order to achieve that with more than one turn, that is, target position beyond the modulo range?

2. I've also considered using electronic gearing, which would make my life easier with calculations, but if there's any type of delay between the servos (aka catching phase of the MC_GearIn) it could result in tool breakage. Is there a way to use electronic gearing while guaranteeing both acceleration and deceleration stay in sync?

 

The CPU I'm working with is the NX1P2-1040.

Any advice is appreciated, thanks in advance!

Share this post


Link to post
Share on other sites

Would it be easier to make a virtual axis, run motion commands on that, and use MC_GearIn and MC_GearOut to connect and disconnect the real axes to the virtual?  

1 person likes this

Share this post


Link to post
Share on other sites

It's definitely an option, yes. I just wonder if that ensures better synchronization between the axes in the ACC and DCC phase, as opposed to gearing one axis directly to the other.

Share this post


Link to post
Share on other sites
4 hours ago, GM189 said:

It's definitely an option, yes. I just wonder if that ensures better synchronization between the axes in the ACC and DCC phase, as opposed to gearing one axis directly to the other.

Coordinated motion, which your PLC supports, is designed for this sort of application. It ensures "coordination" between 2 or more axis. If the slave falls out of sync if will stop both motors. Your position is as accurate as your motor tuning is setup to be. There is always positional inaccuracy in a servo system - even precision CNC machine motors are rarely "exactly" where they need to be(when you have 20+ bit encoders this becomes practically impossible to be 100% on target). The inaccuracy is called following error and you can lower this with tuning - but never eliminate it. You can also define allowable following errors on your drives.

As for your question regarding acceleration and deceleration - coordinated motion is your best option to ensure the motion profiles of both motors are better aligned. Any servo though has a larger following error during acceleration and deceleration. Sysmac has some pretty easy tuning tools built in if you are using Omron drives.

Edited by photovoltaic
1 person likes this

Share this post


Link to post
Share on other sites

I'm assuming that with coordinated motion you mean group related MC instructions, such as interpolation. I think you're correct, that's probably the best solution for my application, considering the acceleration ramps. My only concern is about the count modes: of them is linear and the other is rotary, with modulo from 0° to 360°. Is it possible to execute MoveLinear with my rotary axis moving beyond 360° (let's say, 3600°)? The Omron Motion Manual is a bit obscure about Linear movement with rotary axis.  

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now