Kinetix Motion Project

Join Date
May 2016
Location
Virginia
Posts
11
Hi Guys,

First post here on the website, I come here often to find answers but this is the first time I have not been able to find a previously answered question.

Anyways here is my attempt to explain my problem. I have 2 servo motors (Kinetix 5700 series drives) that will spin a part, a motor on each side because of the potential weight of this part. So during accel, decel and positioning I assume I should use a MAG instruction to "sync" the two drives. The problem is we are trying to measure this part for unbalance and it has a u-joint in it (the part is a drive shaft). When we are taking actual measurements I need the "slop" out of this u-joint so the slave drive needs to be either slightly behind the master or in a torque mode applying a small amount of torque in the opposite direction to keep tension on this point. Does anyone have any ideas on the best way to accomplish this, or have you ever done anything similar?

Thanks,
Jarryed
 
Anyways here is my attempt to explain my problem. I have 2 servo motors (Kinetix 5700 series drives) that will spin a part, a motor on each side because of the potential weight of this part. So during accel, decel and positioning I assume I should use a MAG instruction to "sync" the two drives. The problem is we are trying to measure this part for unbalance and it has a u-joint in it (the part is a drive shaft). When we are taking actual measurements I need the "slop" out of this u-joint so the slave drive needs to be either slightly behind the master or in a torque mode applying a small amount of torque in the opposite direction to keep tension on this point. Does anyone have any ideas on the best way to accomplish this, or have you ever done anything similar?

Here is how I would do it:

I would create a virtual axis, in this case lets call it Virt_Master.
I would use a MAM or MAJ instruction to move the Virt_Master.
I would use an MAG instruction between each of the Kinetix 5700's and the Virt_Master
When I needed to remove the slop I would use an MAM instruction on the appropriate Kinetix 5700.
When I needed to return the slop I would use another MAM instruction on the Kinetix 5700 but in the opposite direction.

The first MAM instruction will offset the Kinetix 5700 one from the other and the second will remove this offset.

I hope this helps

Regards
Ian
 
I would like to see the mechanical engineering on this first. Taking the slop out could be done with with a resistance device like a magnetic particle brake.

I see a lot of programmers getting stuck with sub-standard ME stuff, and everyone expects a magic wand when the guy with a laptop shows up.
 
Here is how I would do it:

I would create a virtual axis, in this case lets call it Virt_Master.
I would use a MAM or MAJ instruction to move the Virt_Master.
I would use an MAG instruction between each of the Kinetix 5700's and the Virt_Master
When I needed to remove the slop I would use an MAM instruction on the appropriate Kinetix 5700.
When I needed to return the slop I would use another MAM instruction on the Kinetix 5700 but in the opposite direction.

The first MAM instruction will offset the Kinetix 5700 one from the other and the second will remove this offset.

I hope this helps

Regards
Ian

This was also my first though.

-Benaiah
 
Here is the process as I have imagined it. I have two spindles with actuating air chucks to hold the part. After the part has been placed between the two spindles both motors/spindles as the motor is built into the spindle, spin in unison to accelerate the part to lets say for this purpose 3000 rpms. When up to speed I need the tailstock spindle (for our purpose lets call this the slave motor) to be a little bit slower than the headstock (master) to ensure there is no "slop or play" in the u-joint. The driveshaft would remain spinning at 3000 rpms for a period of time (maybe 10 seconds) with no slop or play so we can get measurements. Then in deceleration I could enable whatever instruction/parameters put them in unison during acceleration so I can position the part at a certain angle (say 75 degrees this angle will change depending on where the unbalance is found) for correction.

I hope this better helps explain the project.
Thanks,
Jarryed
 
Here is how I would do it:

I would create a virtual axis, in this case lets call it Virt_Master.
I would use a MAM or MAJ instruction to move the Virt_Master.
I would use an MAG instruction between each of the Kinetix 5700's and the Virt_Master
When I needed to remove the slop I would use an MAM instruction on the appropriate Kinetix 5700.
When I needed to return the slop I would use another MAM instruction on the Kinetix 5700 but in the opposite direction.

The first MAM instruction will offset the Kinetix 5700 one from the other and the second will remove this offset.

I hope this helps

Regards
Ian

I don't really understand this concept. If you used a MAM instruction to offset or remove the slop won't this tell the drive to go to specific point in our case an angle of 0-360 degrees? So essentially the drive shaft would be rotating at 3000 RPM's (Because of the MAJ instruction and both drive being under a MAG instruction to the virtual drive), then your telling one motor to rotate to a specific angle (MAM instruction) while the other is still spinning at 3000 RPM's. Am I understanding this logic correctly? Because if I am then something would immediately be destroyed.

Thanks,
Jarryed
 
I don't really understand this concept. If you used a MAM instruction to offset or remove the slop won't this tell the drive to go to specific point in our case an angle of 0-360 degrees? So essentially the drive shaft would be rotating at 3000 RPM's (Because of the MAJ instruction and both drive being under a MAG instruction to the virtual drive), then your telling one motor to rotate to a specific angle (MAM instruction) while the other is still spinning at 3000 RPM's. Am I understanding this logic correctly? Because if I am then something would immediately be destroyed.

Thanks,
Jarryed

You would use a relative move on the axis you want to adjust. So they are both following the master (virtual axis) and then when you execute the relative move on one of the axis it would basically advance or retard that axis relative to the other axis while continuing to follow the master.

-Benaiah
 
I don't really understand this concept. If you used a MAM instruction to offset or remove the slop won't this tell the drive to go to specific point in our case an angle of 0-360 degrees? So essentially the drive shaft would be rotating at 3000 RPM's (Because of the MAJ instruction and both drive being under a MAG instruction to the virtual drive), then your telling one motor to rotate to a specific angle (MAM instruction) while the other is still spinning at 3000 RPM's. Am I understanding this logic correctly? Because if I am then something would immediately be destroyed.

Thanks,
Jarryed

Jarryed,

A MAM instruction can have two types of moves, Absolute and Incremental.
The difference:
An Absolute move moves to the position given in the position variable in the MAM instruction
The axis starts in a starting position of 30
Move Type Absolute
Position 60
When this move is executed the final position of the axis is 60.

An Incremental move adds the position given in the position variable in the MAM instruction to the starting position
The axis starts in a starting position of 30
Move Type Incremental
Position 60
When the move is executed the final position of the axis is 90

In this case I am indicating for you to use an incremental move.

You also need to be aware that the motion instructions can be applied "one on top of another". So lets say I have a jog instruction that is running at 10rpm, and I need the motor to turn briefly lets say for 1 rotation at 1/2 that speed then I could apply a MAM instruction on top of the MAJ to decrease the speed of the motor. What the MAM instruction would be like would be an Incremental move with a negative position value, this will reduce the speed of the motor.

You want to turn one motor at 3000rpm and turn the other also at 3000rpm, then for a small period of time (1 or 2 turns) you want to reduce the speed of motor 1 so that it "removes the slop" lets say to 2900rpm. Then you want to continue to turn at 3000rpm. Then I assume that you will want to "return the slop" after a certain period of time. In that case you will need to either reduce the speed of motor 2 2900rpm, or increase the speed of motor 1 to 3100rpm.

In your case you will:
  1. Start the MAJ instruction on the virtual axis.
  2. You will run two MAG instructions between the virtual axis and the real axes.
  3. With the MAG instruction still running you will apply an MAM instruction which will reduce the speed of motor 1. This MAM will have a negative position value and be of incremental type
  4. Since the MAG instruction is still running motor 1 will then accelerate back to 3000rpm again once the MAM instruction finishes.
  5. This MAM instruction "removes the slop".
  6. Now once you have finished taking your measurements you will apply another MAM instruction to "return the slop".
  7. This could increase the speed of motor 1 beyond 3000rpm to return it to the original position or you could reduce the speed of motor 2 to achieve the same effect.

I hope this has made things a little clearer.

Regards
Ian

Note: My personal preference is to work with the Direction of a move always the same and use positive or negative values for the move position to determine the direction of the move (when ever possible). However the same result can be achieved by keeping the Position value always positive and changing the Direction of a move.
 
I don't think you will be able to use the MAM idea because you don't know how much backlash you have to start with. You have no position value to use as a basis.

Also, you haven't said whether the torque of both motors is needed to keep the driveshaft at the desired speed or if both motors are only needed to accel/decel.

I haven't used the K5700 yet so I don't know what you have for available variables to play with. But assuming that you only need the both motors for accel and decel AND you have continuous access to the positive and negative torque limits, I would do the following:

Set up a virtual master axis to handle master speed and position commands.
Gear both axes to the VM with the same gear ratio and speed up the driveshaft.
Once at speed, decrease the torque limit of one axis to some appropriate level and decrease that axes gear ratio slightly. This will cause that axis to run slightly slower than the other axis. Be sure to disable the excessive position error fault monitoring on the slower axis.
When the test is done, decel to zero speed and disable.

However, like padees stated, if you only have the second motor to provide drag for the first, I would replace the second motor with a passive resistance device. It makes things a lot more straightforward.

Keith
 
Usireland (Ian) did a nice job of explaining the MAJ and MAM (instruction on top of the MAJ).

However, you don't know how much slop you have to take out. If you give a servo a MAM command, it will move the commanded distance (relative distance in this case) and will fault(speed or position error) if it can't get there (ie: you ran out of slop). Somehow you will need to address the fact that you have a mechanical limit, but don't know what it is.

While jogging at 3000RPM, it may be possible to:
1. Increase the speed and position error tolerances (use SSV's)
2. Set your MAM speed VERY slow
3. Execute your MAM
4. Monitor the actual position error.
5. Stop the MAM once the position error starts to deviate (ie you're hitting the mech limit)
6. Reset the speed and position error tolerances

My two cents
 
Great reply's by all. I am getting a lesson in servos, which I am pretty new at dealing with. Very familiar with Allen Bradley programming just not with servos and motion instructions. I tend to think of a MAM as absolute and often forget they can be incremental. This all makes a lot more sense now with the excellent explanations.

Kamenges in reference to your question: "Also, you haven't said whether the torque of both motors is needed to keep the driveshaft at the desired speed or if both motors are only needed to accel/decel."

I am not sure to the answer as we have never tested any of these parts on the machine yet, as it is still being built. I would like to account for worst case scenario meaning both motors need to rotate the part at all times to maintain speed, but in my opinion more than likely once at speed I would not need both as objects in motion tend to want to stay in motion. Regardless someone above my pay-grade has already selected the motors/spindles for the project and I have the same one on each side.

On another note I have one more question. Does the virtual axis count as an axis in your controller? As I have 8 physical axes (axii plural maybe???) anyways I chose a L33ERM for my project and I know the maximum number of motion drives this processor can support is 8. So will I need to upgrade my processor for this virtual axis?

Thanks,
Jarryed
 
On another note I have one more question. Does the virtual axis count as an axis in your controller? As I have 8 physical axes (axii plural maybe???) anyways I chose a L33ERM for my project and I know the maximum number of motion drives this processor can support is 8. So will I need to upgrade my processor for this virtual axis?

Thanks,
Jarryed

An L33ERM can have up to 100virtual axes, however if you use real axis then this number reduces so the actual number of virtual axes you can have is:

100 - Number of Real Axes = Number of Virtual Axes available

So in your case with 8 real axes you can have up to 92 virtual axes.

As to your PLC, if I were you I would look to change to an L36ERM, you are currently planning on using 8 Physical Axes, if for any reason you need another axes the you have to change the PLC. I always like to start my project with a little bit of expansion room. The L36ERM can have up to 100 virtual axes and up to 16 real position axes.

Regards
Ian
 
Originally posted by PartialGenious:

I would like to account for worst case scenario meaning both motors need to rotate the part at all times to maintain speed,...

If that's the case you are sunk before you start. You will need one motor to produce a retarding torque in order to guarantee the backlash stays out of the system. If you need both motors to keep it going you have no way to insure the backlash stays out of the system.

This is an item someone needs to figure out before you spend a bunch of time developing a system that can't possibly work.

Keith
 
If that's the case you are sunk before you start. You will need one motor to produce a retarding torque in order to guarantee the backlash stays out of the system. If you need both motors to keep it going you have no way to insure the backlash stays out of the system.

This is an item someone needs to figure out before you spend a bunch of time developing a system that can't possibly work.

Keith

I agree!

Shhhhh, I'm actually an ME masquerading as a controls guy.

What was that drive company with the video spinning a dollar bill between two opposing motors?
 

Similar Topics

Everyone, I am having an issue with our current program and need advice. Our current setup has 4 servos running on a pusher chain conveyor. The...
Replies
0
Views
475
Hello everyone, Ho do I go about making changes to a "Motion Axis Parameter" e.g. PositionScalingNumerator that is currently grayed out in the...
Replies
2
Views
1,370
Hi All, the drive was changed recently and now having issues with the servo where it acts a bit strange. I know I need perform an auto tune. I...
Replies
3
Views
1,586
I have two 2198-P070 bus power supplies for that I’m using for four Kinetix drives, 2 drives per power supply, all controlled by one processor...
Replies
0
Views
1,424
Hi all, I wanted to share with you an issue that I had with a Kinetix 5500 servo drive. There was a mechanical problem with the axis, and...
Replies
3
Views
2,850
Back
Top Bottom