Continuous-motion cam

UncleHairball

Member
Join Date
Nov 2019
Location
Califurnia
Posts
11
We have a cutting machine that we designed in house. It uses an encoder to follow the motion of the product and a cam instruction to cause the cutter's servo system to cut to length. The current system requires the cam to start and finish its profile at zero velocity. This seems to be a limitation of the Allen-Bradley software.


Is there any way to program a continuous-motion cam, regardless of the brand of controller used?


Or is there a different way of achieving the same results: cut to length with varying speed and programmable cut lengths?


Thanks in advance for your suggestions.
 
This is purely a function of the cam software. Mathematicians call this a spline. The basic 3rd order spline has some limitations. The answer is yes, you should be able to make the end points have non zero velocities and accelerations but it will take a lot of math. It is cheaper and easier to buy the right motion controller. Flying cutoff or flying shear applications don't really need cam table if the controller can do all the math on-the-fly.


Here is an example
https://deltamotion.com/peter/Videos/FlyingShear/SimpleFlyingShear.mp4
The one advanced gear move command does all the hard work by generating a 5th order ( not third like cam tables ) motion profile that doesn't ever stop while the feed chain is moving. The other advantage of the advanced gear move is that cut lengths can be changed on-the-fly since all the calculation are done on-the-fly.


As far as I know, the RMC is the only controller with the capabilities of the advanced gear move.


BTW, our cam table software ( curve tool ) also allows the start and end points to have non zero velocity and accelerations but for flying shears or cutoffs the advanced gear move is much simpler.
https://deltamotion.com/peter/Videos/curvetool.mp4
At time 1:15 the video shows selecting the end point behavior. Cyclic is one of the options.
 
This isn't a requirement that I know of. This may be a limitation or perceived limitation of the cam tool but not of the cam function itself.

Ultimately, in the Rockwell Logix Motion world, a cam is simply a set of master/slave point pairs joined by an interpolation type. If you have a specific motion profile in mind you may need to select point pairs that will "trick" the interpolator into producing the profile you want. In addition, to make transitions smooth either the beginning and the end of the cam should be defining the same master/slave relationship OR the end of one cam and the beginning of the next should be at the same relationship transition point.

You haven't said what kind of cutter you are using, be it rotary, translating or other. But in the end that doesn't matter all that much. All the same ideas apply.

The last time I used a Rockwell motion cam was several years ago for a rotary tucker on a folder, which would be very similar to a rotary knife. The only thing I used the Rockwell cam tool for was to vet some of my interpolation choices. Outside of that I calculated master and slave position point pairs based on desired cut length and blade tip diameter that resulted in the interpolator producing the profile I wanted regardless of length.

I think the other way to approach this is to come up with cams that have the general shape you want, select the shape based on cut length ranges and then apply cam scale factors to change the master and slave relationships based on length. But I haven't done that so I'm not sure how well that works.

Keith
 
It's been a while since my last attempt at programming Rockwell cams, but my recollection is that the cam generator will fault, fail, or refuse to compile if the start and end points aren't zero.


The cutter is rotary and must rotate forward only.


Thanks for your input, I appreciate it.
 
I have cams in rockwell that do not start and stop at zero, so I don't think the cam generator is your issue. Physically, the servo will not take kindly to following a cam that abruptly ends at a non-zero speed.

I have a paintbooth arm that uses three cams:
Cam 1 (Start Cam): starts at zero speed and ramps up into the first cycle (arms goes across the booth)
Cam 2 (Run Cam): Takes over from Cam 1 and continually runs the arms back and forth
Cam 3 (Stop Cam): Takes over from Cam 2 to bring the arm back to a peaceful stop

For this to work, the stop position of Cam 1 must be the same as the start position of Cam 2 and that the final velocity of Cam 1 must be the same as the starting velocity of Cam 2.
 
several questions.

what is the speed of the product?
what is the width of the product?
what is the thickness of the product?
what is the product you are cutting?
i am familiar with cutting machines but i need a few more details.
james
 
For this to work, the stop position of Cam 1 must be the same as the start position of Cam 2 and that the final velocity of Cam 1 must be the same as the starting velocity of Cam 2.
Moving to the start of the spline was necessary with our old RMC100 but the new RMC75, RMC150 and RMC200 do not need to start on the spine. We have a transition command where the user specifies how the actuator is to move to the spline ( cam table ) if not at the beginning. This requires using super imposed moves.
https://deltamotion.com/peter/Videos/CurveTransition.mp4
This is used by sawmill OEMs when they do curve sawing. When curve sawing, each piece of wood gets its own set of splines ( cam tables ) to optimally cut the wood. Since each piece of wood is different and requires a different set of splines, the beginning and end points are NEVER the same. A means of moving to the next spline is necessary. One could just use an absolute move to get to the beginning of the next spline and that will work if there is enough distance between the pieces of wood. However, sawmill want throughput so they tend to have as little distance between pieces of wood as possible. The splines for each piece of wood extend out the ends of each piece of wood by about 2 ft. Sometimes the next spline needs to begin before the last spline is finished and this is where there needs to be a smooth transition between the splines.

When doing rotary cutting the same situation occurs when cuts must be so close together that the spline for the next cut starts before the previous spline is done. One must use superimposed moves. We use the technology on our french fry cutting machines too.
 
I have cams in rockwell that do not start and stop at zero, so I don't think the cam generator is your issue. Physically, the servo will not take kindly to following a cam that abruptly ends at a non-zero speed.

I have a paintbooth arm that uses three cams:
Cam 1 (Start Cam): starts at zero speed and ramps up into the first cycle (arms goes across the booth)
Cam 2 (Run Cam): Takes over from Cam 1 and continually runs the arms back and forth
Cam 3 (Stop Cam): Takes over from Cam 2 to bring the arm back to a peaceful stop

For this to work, the stop position of Cam 1 must be the same as the start position of Cam 2 and that the final velocity of Cam 1 must be the same as the starting velocity of Cam 2.


Intriguing. How do you generate your cams? Do you write them yourself or does your program create them?
 
Last edited:
The calculation and development of the cam is somewhat separate from the tying together of cams. The Logix motion system supports the idea of a pending cam. So you can trigger a cam that is set up as an immediate cam and then, after that cam is active but before it completes, you can trigger a different cam set up as a pending cam. The pending cam will wait for the initial cam to complete and will immediately pick up where the previous cam left off. The trick to this, as kekrahulik said, is that the endpoint of the first cam need to match the start point of the second cam. In your case, pending cams could be used to change from one length to another in a single cut. You would need to lay out your cam with a little thought but it could be done. The thing with pending cams is I THINK they need to be continuously retriggered but I'm not sure about that.

If you don't need to change length on the fly you probably don't need to use multiple pending cams. You can use a single, continuous cam and simple offset you positions when you start. Like I said, a cam is just set of master/slave positions pairs joined by an interpolation type. As long as the master and slave start on ANY valid pairing the cam will continue from there. You can get the slave axis to that spot using an MAM. In the MAPC instruction, set the Cam Lock Position to the associated master position. Voila, the master and slave are tied together at a known point on the profile and will stay locked as the machine accelerates, assuming you aren't trying to gear in on the fly. With a rotary knife, the most reasonable location pair for this would the the half way through the master and slave cams so the blade tips are open.

Keith
 
numerical recipes in C or C++ has the algorithm for generating cyclic or continuous splines. Obviously you must specify the same position for the beginning and ending of the spline. The algorithm will generate continuous velocities and accelerations too. The algorithm is only about two pages. It could be written in python easily so that generating cyclic spines of any type would be easy.


Spline is the mathematical term for cam tables.
 
Hi UncleHairball

Back to your original question, assuming the Control logix platform, Yes you can change CAM profiles on the fly - I have a number of CLX programs running where this occurs.
However it is not that simple on the CLX platform. I have found that a simple stop to change length is possible by most servo programmers, Adding the complexity of changing the CAM table while moving is another headache. This is mostly because (as Peter said) the CLX platform is not a true motion platform and so relies on the programmer to get the changeover correct with respect to jerk, accel and velocity.

If you really wish to do this then 1) investigate the MCCP instruction
2) really understand the MAPC instruction
3) Really understand your machinery - Think hard to find a situation where it is easier to change length (eg the start of constant velocity section)
4) Test Test test to ensure that in ALL cases that the CAM transfer is smooth
An error in the CAM tables could really break things

Michael
 

Similar Topics

Hi all, I have an application that requires a cable for a 1.5 230VAC hp motor. I'm using a small AB drive with it. The motor is going to be...
Replies
11
Views
3,302
I'm a complete noob to this... Basically I have to design a project that can be done in a 2 hour lab session, and I wanted to use it as a chance...
Replies
23
Views
7,787
Hi Guys, I'm new to controls and PLCs and this might have a trivial answer. I have a small project with a PLC and a inverter. The inverter...
Replies
25
Views
3,661
Curios on the thoughts of using Continuous vs Periodic tasks. . The old SLC-500's mostly only had Continuous tasks. . The Compact & Control...
Replies
49
Views
13,807
Can anyone explain to me why Rockwell thinks a Continuous task is better than a Periodic task? That is what it defaults to. It may cause your...
Replies
10
Views
2,898
Back
Top Bottom