From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

ASI MS2000 stage: can move x and y axes but they don't take the shortest path

Solved!
Go to solution

Hello,

I am trying to automate an Applied Scientific Instrumentation MS-2000 stage using Labview. The instrument driver (ASI TG-1000; http://www.asiimaging.com/support/downloads/tg-1000-control-using-nis-labview-and-the-serial-port/) contained some examples on how to move to certain positions and I made a VI based on the examples (Moving_XY_ASIStage.png/Loading_array_from_file.vi attached below). The VI for loops through the x and y values and the stage moves according to that. Unfortunately, even though the stage moves to X and Y coordinates simultaneously with a loaded csv file for xy positions, it does not follow the shortest possible path. For example, if I put X=1 mm, Y=2 mm in the array, the stage first moves to X=1 and Y=1 simultaneously, then stops moving in the X since it has already reached the destination and moves in a straight line to Y. Is it possible to include in the VI a function that can help specify the path so that I can trace arbitrary shapes with the stage? Say I make it go to X=1 Y=5 directly along the hypotenuse instead of it going first to X=1 Y=1 then to Y=5?

 

I have attached my VI and some of the example VIs from the Instrument Driver and can provide more information if needed. 

0 Kudos
Message 1 of 5
(1,015 Views)
Solution
Accepted by topic author JohnDeer1123

Is it possible to include in the VI a function that can help specify the path so that I can trace arbitrary shapes with the stage? Say I make it go to X=1 Y=5 directly along the hypotenuse instead of it going first to X=1 Y=1 then to Y=5?

 


Of course it is possible. Sound like you already know how to do it mathematically. The question is WHY you want too.
I am guessing your response will be "efficiency".

I see from your code (ignoring the obvious race-conditions) that you are trying to set the Vertical and Horizontal speeds. To move along the hypotenuse, you would have to slow down the speed of one or the other axis. Will it get there faster? No, because the travel time will always be the longer of the two axis divide by the speed of that axis.

 

Hope this helps

---------------------------------------------
Certified LabVIEW Developer (CLD)
There are two ways to tell somebody thanks: Kudos and Marked Solutions
0 Kudos
Message 2 of 5
(998 Views)

Thanks a lot. That’s very helpful. Just means that I can’t trace arbitrary paths without iteratively changing the speed. I was hoping to run into the folks that developed TRACER for ASI which allegedly allows the tracing of arbitrary paths. There aren’t any resources available for figuring out how to make that work. Appreciate the reply nonetheless.

0 Kudos
Message 3 of 5
(983 Views)

Hi

The only way to do what you want is to adapt the speed of the x and y motor to reach the end point simultaneously.

greetings from the Netherlands
0 Kudos
Message 4 of 5
(957 Views)

Thank you for the reply. I think it wouldn't work very well for my experiment if the speeds of both axes were changing constantly. This is probably the only way it works.

Greetings from the United States as well.

0 Kudos
Message 5 of 5
(938 Views)