eskibrew

CAM using rotary shortest path?

6 posts in this topic

If I use a Motion Axis Move (MAM) command on a rotary axis, I can specify "Move Type" to be "Rotary Shortest Path", which will allow me to get from say 350 degrees to 10 degrees by the shortest route, i.e. move 20 degrees rather than by moving 340 degrees.

I want to have the same behaviour in a CAM function but I can't work out how to achieve that - MATC accepts the angles but rather than move the shortest path, it takes the absolute path in a positive or negative direction.  Is there a way to achieve "Rotary Shortest Path" in a CAM?

Share this post


Link to post
Share on other sites

When you cam an axis to a master axis, the cam function has to be applied for every point the master goes through from one position to another.  I don't see how what you describe could ever be possible in a cam function.

Share this post


Link to post
Share on other sites

Not sure how you control the operation on this, but the last system I saw use this did a check based on current angle and tested it against another value to see which direction it should go.

so the one I did would be homed in a center position (0), and to the left or right were positions it could go to. select 1 and it goes positive, select 4 and it goes negative. but you obviously don't want it going in circles, so you need to determine where it is, and where it wants to go, and do some math to determine whether it should go positive or negative move to get there (either as the shortest route, or because you can't go full circle)

Share this post


Link to post
Share on other sites
45 minutes ago, pturmel said:

When you cam an axis to a master axis, the cam function has to be applied for every point the master goes through from one position to another.  I don't see how what you describe could ever be possible in a cam function.

44 minutes ago, pturmel said:

When you cam an axis to a master axis, the cam function has to be applied for every point the master goes through from one position to another.  I don't see how what you describe could ever be possible in a cam function.

Thanks, perhaps I have not explained my question or perhaps it's just not possible.  To try and clarify, let's say I create a time cam (MATC) where the Master value is time and the Slave value is a rotary angle on my rotary axis.  Let's say the values I need in the cam are:

<table>
	<tr>
      <td>Master</td><td>Slave</td>
  	</tr>
	<tr>
      <td>0</td><td>320</td>
	</tr>
	<tr>
      <td>10</td><td>350</td>
	</tr>
	<tr>
      <td>20</td><td>10</td>
	</tr>
	<tr>
      <td>30</td><td>30</td>
	</tr>
</table>

To get to 10 degrees, I'd rather have the rotary motion continue in the same direction, crossing the 360/0 boundary.  Imagine if it was a physical cam, you would continue rotating in the same direction to get to the 10 degree position from 350 degree position rather than moving 340 degrees all the way backwards to the 10 degree position.

It occurred to me that I could change the unwind parameter so that I can specify and therefore rotate to angles over 360 degrees but that requires me to do more calculation in my code which creates the angles which are used to generate the cam via MCCP.

Does this make more sense ?

Share this post


Link to post
Share on other sites

Sorry, I thought the table formatting would work to clarify the values but it didn't

Share this post


Link to post
Share on other sites

Yeah, pretty sure you will need to specify your final two angles as 370 and 390 to get the behavior you are after.

1 person likes this

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