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.
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.
03-05-2018 04:27 PM
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
03-05-2018 05:00 PM
Did you follow the steps on pg 31 for "setting up a multi-axis program"?
03-08-2018 11:52 AM
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!!
03-08-2018 11:59 AM
@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.
03-08-2018 03:17 PM
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.
03-09-2018 11:16 AM
Hi nameless2905
You should check using highlight execution to see the data flow, it may give us some information.
Regards!
03-12-2018 06:01 PM - edited 03-12-2018 06:11 PM
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.
Sorry 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
03-12-2018 06:53 PM
@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.
03-12-2018 07:17 PM
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).
03-12-2018 10:02 PM
@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?