kevilay

AB Kinetix Drive Jog with Dynamic Speed

9 posts in this topic

Hey Guys,

 

I am trying to use a motion jog instruction with an AB kintex servo. However I want the jog speed to be dymanic. I am controlling the speed with an analog feedback from a tensioner. I have my speed set as a tag and it is working correctly. However I am having to blink the jog command to get the speed to update. Is there a better way to constantly monitor speed in a jog instruction? or a better instruction to use?

Share this post


Link to post
Share on other sites

I am trying to get this working however I am getting an error 23 on the MCD instruction. I am not sure how to reset it? or if it is configured wrong. Any Suggestions? For Testing I am using the exact same parameters as my MAJ, which is working correctly. 

 

Error #

23 An instruction attempted an illegal change of dynamics. Illegal Dynamic Change

 

Thanks,

Kevin

MCDError.png

Share this post


Link to post
Share on other sites

Another way might be to do another jog at the new speed and disable the first jog when the second is in process.

Note I have not tried this.

 

Alan

1 person likes this

Share this post


Link to post
Share on other sites

This shows that your MAJ command is done, not enabled.  To update the MAJ jog speed, include handshaking to enable the MCD until it is done.

Share this post


Link to post
Share on other sites
2 hours ago, kaiser_will said:

This shows that your MAJ command is done, not enabled.  To update the MAJ jog speed, include handshaking to enable the MCD until it is done.

I did notice this as well, as soon as the instruction turns on, it does turn the DN on right away. Even tho it is still jogging.

Share this post


Link to post
Share on other sites

The MCD instruction will give you Error 23 if the axis isn't moving at the time the MCD goes true.

MAJ is basically a starter's gun:   BANG! and the axis is off to the races.    A that point the MAJ's job is done so the .DN bit turns on and it wanders off to find a Gatorade, leaving any speed changes or stopping up to other instructions.

You described "blinking" the jog command to get the speed to update.   That's the right approach, you just need to condition that logic so it doesn't execute unless the axis is active.   Use the axis status, not the MAJ instruction /EN or /DN or /IP.

If you really want to do this as fast as possible there might be a trick with Event tasks, but for testing I would just have the MCD driven by a self-resetting timer and logic that only executes once the axis is active.

 

Edited by Ken Roach

Share this post


Link to post
Share on other sites
On 2/22/2018 at 4:21 PM, Ken Roach said:

The MCD instruction will give you Error 23 if the axis isn't moving at the time the MCD goes true.

MAJ is basically a starter's gun:   BANG! and the axis is off to the races.    A that point the MAJ's job is done so the .DN bit turns on and it wanders off to find a Gatorade, leaving any speed changes or stopping up to other instructions.

You described "blinking" the jog command to get the speed to update.   That's the right approach, you just need to condition that logic so it doesn't execute unless the axis is active.   Use the axis status, not the MAJ instruction /EN or /DN or /IP.

If you really want to do this as fast as possible there might be a trick with Event tasks, but for testing I would just have the MCD driven by a self-resetting timer and logic that only executes once the axis is active.


What is strange with this is when I set the jog command from the MAJ, the command immediately shows as Done. However the axis does continue jogging. Without the  "blink" I will manually toggle the jog command on. Then toggle the MCD instruction, while the jog command is still active, and the servo is currently moving, and I will still get the error. Does this seem incorrect?

 

 

Share this post


Link to post
Share on other sites

A Motion Axis Job (MAJ) instruction is considered complete as soon as the axis starts moving;    the MAJ doesn't need to be held true for motion to continue.   You generally need to issue a Stop command to stop an axis that was set in motion by a Jog.

This is a little different than the terminology used with variable frequency drives, where "jog" is a maintained signal and stopping is automatic when it is removed.

Motion Axis Move instructions (MAM) are different because they have an endpoint, so they stay In Progress (IP) until the motion is complete or is modified.

If the axis is in motion when you trigger the MCD and you still get an error, that's unexpected.   There must be another reason for the error.

I noticed that your move type and selection bits for changing speed/accel/decel/jerk are numeric instead of the usual drop-down for "Yes" or "No".    Is that on purpose ?    They seem right, but I wonder if one of those arguments is what's causing the error.

Check the motion control tag and see if the .ERR value also correlates to values in the Segment and EXERR tags.   That might tell you which argument of the instruction is causing it to error out.

 

 

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