From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

KST101 multi axis system

Hi there

 

I'm working with two KST101 controllers form thorlabs, trough labview, using the instructions that i found on the thorlabs web-page.

My problem is that I just can't get them to work at the same time, every time that I start my IV, the firts motor goes first, ends a stept, and then the second one starts.

 

This is the guide that I'm following:

 

https://www.thorlabs.com/Software/Motion%20Control/Kinesis/Kinesis-labview.pdf

KST101_1.jpgKST101_2.jpg

0 Kudos
Message 1 of 14
(3,759 Views)

Did you follow the steps on pg 31 for "setting up a multi-axis program"?

0 Kudos
Message 2 of 14
(3,750 Views)

Hi nameless2905,

 

I would recommend to use two parallel while loops intead of one, in that way both will execute at the same time.

 

Let me know if it works.

 

Regards!!

0 Kudos
Message 3 of 14
(3,706 Views)

@CMurillo wrote:

Hi nameless2905,

 

I would recommend to use two parallel while loops intead of one, in that way both will execute at the same time.

 

Let me know if it works.

 

Regards!!


Hi Cmurillo,

That's not true. Those invoke nodes have no dependencies on each other, so putting them in separate loops will not make them run any more in parallel than they already are. The reason you would want to put them in separate loops is if they needed to run at different rates, because right now they can only run at the shared loop rate.

0 Kudos
Message 4 of 14
(3,703 Views)

I already tried with the two loops before posting this on the forums, sorry, I forget to mention it.

I cannot follow the stept on the guide that talks about a multi axis system because in the guide they're using a different kind of Thorlabs controller, and the .NET thing that is used there does not have an equivalent for the KST 101

I've also tried adding some delay but it doesn't seem to work either.

0 Kudos
Message 5 of 14
(3,695 Views)

Hi nameless2905 

 

You should check using highlight execution to see the data flow, it may give us some information.

 

Regards!

0 Kudos
Message 6 of 14
(3,686 Views)

Hi

I've already did that, and the only thing that I can see is that one of the two invoke nodes starts a few moments before the other one, after that, it appears to change when the home operation ends, but then again one starts first. A few time is added on the y=f(x) operation node, but that was something that I already expected because it's a X Y system and the synchronization was the project's final objective.

Also I've noticed that when I use the Kinesis front panel in Labview instead of the Iterative Motion Loop system, both motors can operate at the same time.

So, I'm thinking about adding a little delay, but I don't know if there is any way of adding it to a single wire in specific.

KST101_3.pngSorry about the bad image edition, next time i'm gonna try sending a video, buecause I don't own the controllers and I don't have them right now

 

0 Kudos
Message 7 of 14
(3,661 Views)

@nameless2905 wrote:

 

So, I'm thinking about adding a little delay, but I don't know if there is any way of adding it to a single wire in specific.

 

 


In 2017 this is done with the malleable VI (not sure of the name). In older versions, create a small SubVI, with 1 input of wire type, 1 input of time in ms, and 1 output of wire type. Inside the VI wire the input and output of "wire type" together. Wire the time in ms to the Wait (ms) function.

 

You could also do this with a flat sequence structure representing the boundaries of the SubVI, but I think the SubVI looks nicer.

0 Kudos
Message 8 of 14
(3,657 Views)

Instead of using "MoveAbsolute", just use "MoveTo".  I've tested it on my units and it moved them at the same time. I don't have them at my desk to double check that they don't to that with "MoveAbsolute", though.

 

Alternately, you may have to set the timeout to zero and then use the MotorStateUpdate event to determine when the motion is done (whenever the motors return to an "Idle" state).

0 Kudos
Message 9 of 14
(3,652 Views)

@Kyle97330 ha escrito:

Instead of using "MoveAbsolute", just use "MoveTo".  I've tested it on my units and it moved them at the same time. I don't have them at my desk to double check that they don't to that with "MoveAbsolute", though.

 

Alternately, you may have to set the timeout to zero and then use the MotorStateUpdate event to determine when the motion is done (whenever the motors return to an "Idle" state).


I'm gonna try that, thanks a lot.

About the MotorStateUpdate, is there any information about how to use it somewhere?

0 Kudos
Message 10 of 14
(3,648 Views)