Kinetix Rotary Axis Control Logic

scarince

Lifetime Supporting Member
Join Date
Jan 2009
Location
Dayton, OH
Posts
152
I have a very simple application but I'm not very experienced with motion and looking for your advice.

I have a rotary axis. Kinetix 5700. I put a cylindrical part onto the axis and rotate it at about 900 rpm to do a metal forming process. The forming process only takes about 2 seconds. This part only weighs a few pounds but the axis tooling is built to take a heavy compression load, so there's a lot of inertia in the rotating mechanical system.

The axis has to stop in the "home" position for loading and unloading. While the part is cylindrical, the end is not, so the rotating nest has to be aligned for a robot to load the part. It's not super critical....a tolerance of a few degrees is plenty. There is a home-position prox that is used for homing, but once the axis is homed then the process can just use the position feedback. It's configured so that one revolution = 1.0. In other words, 0 and 1 are both home position.

The machine builder wrote the logic like this: The do a MAM and they flash it on and off 10X/second, and every time they tell it to go to position = 50. Once they are ready to stop the rotation, they send another MAM to go to position 0, absolute position, no merge. My problem is that while it works, the axis stops and runs backwards to get back to zero. It seems to decelerate far faster than necessary and then it wastes time moving backwards to get back to position 0.

If I change the accel/decl values for either of these MAM's, then the axis doesn't even stop, it just keeps turning. I don't understand why.

It seems like this should be done with a MAJ for the forming process and then a MAS and then a MAM to position 0, or maybe it should be a MAJ and then a MAM to slow it down, and then another MAM to stop it at position 0? I haven't seen enough examples of the correct way to do this to know how to best approach it.

All I need to do is turn this axis at a constant speed, and then stop it at a known position. It seems very fundamental.

I have two question:

1) What is the "correct" way to control this motion? It seems weird to me to spam an instruction with a flashing bit to get it to turn. I'm interested in your advice.
2) The machine builder used the same motion tags in every instruction of the same type. In other words, they used the same tag in all of the MAJ's, and the same tag in all the MAM's, etc. Shouldn't they be different since they're control tags?

Apologies if I omitted anything important...please just ask.

Thanks
 
Wow!! You inherited quite the pile of manure there, didn't you? That may be one of the strangest ways to achieve continuous motion with plc commands that I have yet come across. Now, before you purests out there jump down my throat telling me that "under the hood" a jog on a position axis is just an incremental position move, note that I stated "with plc commands".


Originally posted by scarince:

It seems like this should be done with a MAJ for the forming process and then a MAS and then a MAM to position 0,...

I'm with you on that. This is how i would do it. Another possible way to do it would be to replace the MAJ with an MAM that is an incremental move with an integer number of rotations. that would tend to make the absolute MAM at the end very short and just there to make sure there is no long-term drift of the incremental moves.

Also, as you state, I would make sure that every instance of a motion instruction has its own instruction data instance. It obviously isn't required but I would think it will make things much clearer. You can retrigger motion instructions.

Keith
 
Last edited:
I think it can be as simple as:

1. Motion Axis Jog (MAJ)
2. Motion Change Dynamics (MCD)
3. Motion Axis Move (MAM)

RA Knowledgebase 721593 reiterates some of the Instruction Set Reference information more clearly about how the "merge" feature works when you trigger an MAM move on an axis that is already under the control of a MAJ jog.

You can run the MAJ at the 900 RPM forming speed, then issue a MCD to slow down the spindle until it reaches a speed from which it can stop in 1 revolution. The MAJ is still controlling the axis, but its speed and accel/decel characteristics have been changed by the MCD.

Once it has reached that lower speed and it passes through the Home position, you trigger an MAM. You can just use a position comparison instruction to detect it passing through Home, or get fancy with a Motion Axis Watch. Try comparison instructions first.

When you set the MAM to "Merge" with the previous axis command, the MAJ will stop controlling the axis, and the MAM will run to the designated stopping position.

Set the merge speed setting to "current", so the spindle will run at the adjusted jog speed.


You might be able to do it without the MCD by setting the merge speed to "programmed" and selecting the correct type of rotary MAM so it doesn't try to decelerate too quickly if it's close to zero when the MAM is triggered. But I would keep it understandable and use the MCD to slow down before you use the MAM to stop in position.
 
Also, as you state, I would make sure that every instance of a motion instruction has its own instruction data instance. It obviously isn't required but I would think it will make things much clearer. You can retrigger motion instructions.

Keith

Having a unique motion instruction structure for each motion instruction IS required for proper function.

see attached

also from RA knowledgebase

"ControlLogix uses the Motion Control tag to control the execution of the motion instruction. Motion Instructions sharing the same Motion Control tag can result in unexpected motion. User changing the state of the Motion Control status bits are also not recommended programming practice."

Motion_Instruction_Struct.png
 

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
458
Has anyone had experience with powering larger A-B Kinetix drives (or equivalent) from a rotary phase converter? I am building a machine with...
Replies
14
Views
3,850
Hello. I have a few machines that use Kinetix 300 (each machine has two drives). Both drives on one of the machine keep losing IP address. They...
Replies
2
Views
75
Dear colleagues, hope you can help on that matter. We have a project where we need to control 3 servomotors to move a auger feeder system...
Replies
38
Views
794
Loving AB right now... We have an Allen-Bradley 2094-EN02D-M01 Kinetix 6500 servo drive that once had safe-speed monitoring which was eliminated...
Replies
2
Views
82
Back
Top Bottom