Showing results for 
Search instead for 
Did you mean: 



Occasional Contributor

I am using KinInterface with arKinCtrl_gb[].CoordMode.SlopeType = MB_KIN_CONT_MOTION.ST_CONTINUOUS_SLOPE and ML_KinPolyTransP to traverse a space curve at constant speed.  If I issue the motion commands in quick succession (for example, all within a single scan), this works beautifully:

Screenshot 2023-05-11 050304-1.png

However, if I pause for some time between commands, I see a break in the continuous motion.  For example, if I pause for 50 ms between issuing motion commands 1-6 and motion commands 7-12, the motion pauses at the end of move 6 as shown below.  Note that motion command 1 is still active when then final six motion commands are issued.  (See also attached video.)

Screenshot 2023-05-11 050538-2.png

The associated code looks like this:


Is this there any way to avoid this behavior?  In my actual use case I would like to traverse a very long space curve at constant speed and not all target points are immediately available (i.e. at start). 

Sample ctrlX PLC project attached.


Community Moderator
Community Moderator

The thing is that our kernel uses several commands for blending and and then prepares them to a moveable curve. If there are less commands available as expected a stop will be inserted, that will not be overwritten even if more/new commands are coming in.

To tell the kernel to not insert that stop the command option ML_KinContour is needed. Be aware that if not enough commands are available in the buffer at the end of a movement and option is still active an error will occur.

Procedure would be as follows:

  1. switch on ML_KinContour (and as before ML_KinPolyTransP)
  2. insert first commands
  3. movement is started immediately
  4. insert at some point further commands
  5. insert last commands of your contour
  6. switch off ML_KinContour (and as before ML_KinPolyTransP)
  7. commands will all be finished and movement ends

There is also the possibility to delay the start of the movement by inserting a number of must have commands available via the input "PrepCmds".