Jump to content
OMRON Forums

Motor stops after Mxx61 hits maximum 48 bit value


kash

Recommended Posts

I have a motion program that essentially rotates a motor in one direction quite rapidly. This results in the motor variable mxx61 to hit a limit of (2^48)/2 and the motor stops. Nothing about the motor status indicates any errors.

 

What is the cause of this behavior?

What can I do to work around this?

Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

The value in the internal motor position register addressed by Mxx61 has a maximum possible value of (2^48)/2. At this point, it rolls over to a negative number. When just commanding motor moves, like jogs, this does not matter at all - it will just report a negative position value.

 

However, when the motor position is computed from a programmed axis position, the floating-point axis position will not roll over, and when the axis position corresponds to a motor position greater than this value, it will not compute a proper motor position. Usually you will get a following error at this point.

 

While the position range cannot be made infinite, there are things you can do to extend the effective range. If you can reduce the Ixx08 motor scale factor and keep good servo performance, you can increase the range proportionally (remember to increase Ixx30 proportionally to keep the same effective servo gain). A couple of users have forced the starting position to the maximum negative value to double the range.

 

If you ever come to a commanded stop, even for a moment, you can execute a "homez" command to reset the motor position to zero.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...