Showing results for 
Search instead for 
Did you mean: 

Kinesis with LabVIEW and continuous movement

Go to solution

Hi to all!

I have a thorlabs MTS50-Z8 motor(actually three of them) with kdc-101 controller paired. I want to make a linear movement(e.g. on X axis...) between three or more points without stopping at the intermediate ones with Labview and kinesis software.

My problem is that the motor stops at the intermediate points even in an instant and the movement is not smooth and continuous. I have tried many configurations in Labview without success.

I would appreciate any help or recommendation guys.

Best Regards

0 Kudos
Message 1 of 9

I don't know the ins and outs of your software, but it probably has a "Move from point to point" with the ability to specify the end points, the velocity, and (possibly) the acceleration/deceleration.  If accel/decel are not specified, then they are probably assumed to be "infinite", i.e. "Stop instantly".


Does anything change (other than the end points) in your multiple movements?  That is, are the velocities all the same?  Then if you want a continuous movement, simply go from the first to the last point, not "stopping" at the intermediate points.  Otherwise, if the velocity changes, you (by definition) must have an acceleration at some point.  If your controller allows you to "update on the fly", and if it is smart enough to allow you to say "Go from whereever I am to point X", then you can try the following:

  • Assume you want to go to X1 at velocity V1, then move to X2 at velocity V2.
  • Move to X1 + Delta at velocity V1 (Delta is "a little bit farther").  Calculate when you will be right at X1.
  • When you are at X1, deliver the command to go to X2 at velocity V2, over-riding the current X1 + Delta, V1 command.

This is a little messy.  Note that some motion controllers allow you to control not only velocity but also acceleration.  This turns a "Move from here to there, and then come back here" from a Trapezoidal movement with "sharp corners" into a movement with a smooth stop.  It's a fun exercise to figure out the programming so that you make the intended motion.  Newton's Laws of Motion come in handy when doing this.


Bob Schor

0 Kudos
Message 2 of 9

 Thanks for your reply!

My velocity definitely will not be the same from point to point. Can thorlabs kdc 101 controller "update on the fly"??If so how do i programm it in labview?

In case the controller cannot "update on the fly" how a continuous movement the way i want can be achieved?

0 Kudos
Message 3 of 9

Hi stzog,


I believe what you're looking for is something called a "contour move".  Once upon a time, NI offered motion controllers that have this functionality, but they are now discontinued.  Contour move allows to you to hit all the points, without stopping.  See here for an explanation.


It is really hard for LabVIEW software to update velocities on-the-fly and send to the motion controller, you would need super low latency to achieve this for contour moves.  Usually the velocity calculations are done in the onboard trajectory generator of the motion controller, before the contour move is executed.  Therefore, I would check with Thorlabs to see if they have this function on their hardware.  


We offer the contour move function on our EMotion controller, but it may not the best fit for your case as you already are using Thorlabs motors and controller.  But, at least you'll know what function to look for.





Add motion to LabVIEW in 30min or less - TENET EMotion
Finding it hard to source NI hardware? Try NI Trading Post


0 Kudos
Message 4 of 9
Accepted by stzog

I have used Kinesis a fair amount.  It's fine for some things, but not really for anything that requires exact timing or high speeds.


The company is much more oriented towards the sort of things you would see in a lab environment than in a manufacturing environment (it is called ThorLabs for a reason).


You will likely need different equipment to accomplish your desired task at the desired speed.  As a general rule, if a motion controller can control several axes all at once it will be much more likely to have the features you need.  Nearly all of the controllers ThorLabs makes are one controller driving one motor.


If you're looking for such a controller and to use one with LabVIEW I can tell you I've had pretty good results with Newport XPS line, but there's others out there I haven't even tried which might work as well or better.

0 Kudos
Message 5 of 9

Thank you all for your replies.

Is it more likely to achieve the movement i want with my hardware by using python instead of Labview?

It sounds me a little strange A KDC101 controller and a MTS50-Z8 motor not to be able to make a simple 4 point continuous movement on X Axis e.g.

without stopping at the intermediate points. 


0 Kudos
Message 6 of 9

I've been (passively) following this thread, as we've recently "inherited" a fairly simple motion-control project done with Arduinos and fairly clumsy LabVIEW code.  We're adding data-processing routines, but if we needed to replicate this system, I'd seriously consider looking at TENET (see the earlier post by @RIObotics to this topic).


Bob Schor

Message 7 of 9

Thank you but the hardware is already purchased and cant be altered.

0 Kudos
Message 8 of 9

The problem i face up with is finally hardware related...I had response from throlabs that the specific controller cannot achieve this kind of movement i want to achieve.

Thank you all for your help!

Message 9 of 9