Tagged: Servo Cam MAPC
- May 13, 2019 at 12:13 am #4146
I have a 5700 servo that I need to move in a linear action. I have a home position and a contact position and about an inch later a full force position. I need to drive a component from home / start to the contact position at one speed and then apply full force after I have moved another 1 inch.
Should I use a cam function to do this , and if so can some one provide a code example of how to do this?
My expertise with servo / motion commands is limited.May 13, 2019 at 10:10 am #4148Arjun krParticipant
Karma: 24Rank: Padawan
- Topics: 2
- Replies: 2
- Total Posts: 4
I have used MAM(Motion Axis Move) Command to move my 5500 servo to different positions. I believe you need to create a motion group before you use the command though. Here’s the link for 5700 kinetix servo and in chapter 6 it talks about how to configure the motion group.
ArjunMay 13, 2019 at 2:44 pm #4149
Thank you for your response.
I know how to setup the Motion Group and to use the Motion Axis Move command.
I really need to know about how / if I should use a Cam function for the move I intend to do. Slow then Touch Then FastMay 13, 2019 at 8:03 pm #4151Fred GrahamKeymaster
- Topics: 16
- Replies: 163
- Total Posts: 179
Without knowing the actual application, can’t you use the position feedback from the servo to determine your “coarse” slow move, then once the desired position is achieved (+/- your permitted tolerance) perform another move using the full velocity/torque of the motor as you suggest?
If the “coarse” position is always changing, then you could use the .PositionError parameter to determine when you’ve effectively “bottomed-out” the servo, then use this feedback to know when you need to kick it into high gear. For example, if you’re coarse position changes, it is reasonable to me (without really knowing anything about your application) that it would still be within some + or – that you can check and setup as your “soft limits”. Then just drive the servo (almost blindly but within your soft limits) at your slow speed, use a compare instruction and the .PositionError parameter to determine when you’ve “stopped moving” (i.e. Servo.PositionError > someValue), then kick it into high gear to drive it home.
Like I said without looking at the application or knowing much about what you’re trying to do, this may or may not make any sense at all!
FredMay 13, 2019 at 9:14 pm #4152
What I had thought to do was use two MAM commands , but in that the Servo will stop after Move 1 and then need to ramp up for Move 2. Basically I have a push application on a linear rod. I will drive the linear Rod at a slower speed than the full onslaught touch then a spring cushion will compress a certain distance 1 inch, and after that compression I will provide full onslaught power. The thing I am looking at is keeping the Servo Running and not stopping in the cycle. Kind of Like an S Curve Acceleration where the point on the S Curve is a position and that position will always remain (approximately the same) and the compression is always the same 1 inch.
This is why I was thinking of using a CAM profile – the application seems perfect for it since I am dealing with position and change of speed at each point ..
You must be logged in to reply to this topic.