Showing results for 
Search instead for 
Did you mean: 

Transition from Continuous to Discrete motion

Transition from Continuous to Discrete motion

New Contributor


When in axis is running with MC_MoveVelocity and then MC_MoveAbsolute is activated, I see that the axis comes all the way to standstill before continuing to the target position. With MLC the axis would go to the velocity of MC_MoveAbsolute without stopping and arrive at the target postion in a more "blended" fashion. Are there settings which affect this, or perhaps this transition will be improved in future versions? On a somewhat related note, is there a way to tell a modulo axis to take positive, negative or shortest path when executing MC_MoveAbsolute?

Best regards,



Established Member

I was able to do this by using the jog mode. I was trying in 1.12, before velocity mode was released.

Community Moderator
Community Moderator

At the moment you can only change the drive operation mode in standstill. We are working on the direct switching feature.

But this is only a problem if you are are using drive velocity mode (MC_MoveVelocity.DriveVelMode := true) because then drive will change its operation mode. In ctrlX CORE you can also have a velocity mode only calculated in the motion, but drive stays commanded in positioning mode (DriveVelMode := false). By using this and sending a non buffered command while axis is in velocity it simply changes to the new dynamic values.


I have some more detail about what is happening. When transitioning from MC_MoveVelocity (or MC_Jog) to MC_MoveAbsolute, the velocity passes through 0 to the negative of the new commanded velocity and always goes reverse to the target position. In the screenshot below, the commanded velocity of MC_MoveVelocity is 100 RPM and commanded velocity of MC_MoveAbsolute is 10 RPM. When the blue trace goes from 0-->1 is the Execute of MC_MoveAbsolute. The velocity decelerates from 100 RPM to - 10 RPM until the axis reaches the target position (in this case 90 deg). This happens on real axis or virtual axis.



Please mention that in the moment you activate the mode position absolute the ctrlX MOTION tries always to go shortest way to the commanded position.

In you case this means:

  • activation point: 300°
  • next absolute 90° in positive: 60°+ 90° = 150°
  • next absolute 90° in negative: 300°- 90°= 210°

So positive direction is chosen as endpoint but as your deceleration ramp is set quite low the axis overshoots the target position and goes backward until absolute position is reached.

The behavior I get is that the axis is always moving backward at the end, regardless of activation point or target position. If I do the same sequence with MLC (same velocity commands, ramps, target position) I see that the velocity ramps down from 100 RPM to 10 RPM and continues in the positive direction until it reaches the target position. The additional distance travelled, after reaching 10 RPM, could be more than 180 deg but never more than 360 deg, and never moves backwards. See examples below. This is the behavior I hope for in my use case. This could be for a printing/converting machine, or a press transfer in automotive industry, where many axis are connnected to a virtual master who has to stop from production speed to an absolute position and should not move backward in the process.

Best regards,