01-28-2011 10:27 AM
I am using a traverse system by Zaber to traverse an area and collect some data. I am therefore trying to track the position of my Zaber linear stage on Labview so that I can know the position it is in at every interval data is collected.
Does anyone know how to continuously track its position? I can only get the traverse to output its position after a move request but would like to know exactly where it is at all points in time.
Please help!
Thank you.
01-28-2011 06:47 PM
02-01-2011 06:50 AM
Dear Don Kirkby,
Thank you very much for your response. It is very useful.
I do not fully understand the difference between Write and Request, could you explain that further? I am also confused as to how you get the values reported back to the computer when you are either using Manual Tracking or Move Tracking.
Any more information would be greatly useful.
I have attached the code that I am using so far.
Fred
02-01-2011 01:35 PM
Write just sends a command to the Zaber device and doesn't wait for a response. Request sends a command and then waits for a response. When the move tracking is turned off, Request works well because the device doesn't respond until it finishes moving. When move tracking is turned on, Request isn't really useful, because it sees the first position update and thinks the move is finished. Instead, you can use a Write followed by a loop that uses Blocking Read and loops until it sees the final move response.
There's a brief description of all the instrument driver's different VI's here:
http://www.zaber.com/wiki/Software/Labview_Driver#VIs_included_in_the_driver
You can also look at the documentation in the VI's themselves.
02-03-2011 09:15 AM
Thanks again.
I have been looking closely at the Write commands and read responses example VI on the link you posted but am facing a few issues. How would you include a time for each response out, would it be possible? And also how would you provide a series of write commands one after another?
02-03-2011 11:23 AM
I can think of two ways to add a time stamp to each response out:
02-04-2011 04:23 AM
Thanks again.
I need to send a list of multiple commands with Write, how to I avoid the traverse not finishing the first command before starting the next etc? You mentioned something about Block Read. How should that be used?
02-04-2011 01:16 PM - edited 02-04-2011 01:25 PM
The easiest way to wait for the movement to finish is to use the Request Command VI instead of the Write Command VI. The Request Command VI does three things:
1. Call Write Command VI. This sends the command out the serial port.
2. Call Blocking Read Response VI. This waits for a response from the serial port.
3. Check the response to see if it's an error response.
Request Command VI is the VI you should use most often. The only time to use the Read and Write VI's is when you want to send more requests while a move is still executing. If that is what you want to do here, then you can look at the Zaber Expert - Simultaneous Requests example to see the Blocking Read Response VI in action. You can also look inside the Request Command VI to see exactly what it does.
If you're still trying to implement the position poll that we discussed at the start of this thread, then you want to use Write for the move command and Request for all the Return Current Position requests. You use Blocking Read at the end of the loop to scoop up that one last response that's sitting in the serial port. This works because you're not sending multiple move requests. The Return Current Position requests don't interrupt the move request.
12-19-2012 08:45 AM
Hi guys,
I'm using 4 Zaber linear actuators to move 2 antennas on a XY plane. I can't reach this two goals:
1)tracking exactly the two antennas to preview their collision
2)move (absolute or relative) with a lower speed
Does anyone could help me?
Thank you all!
Stefano
12-19-2012 12:57 PM
Are you trying to track the devices' positions while they move, Stefano? If so, I described three options on stackoverflow.com.
You can change the movement speed using the Set Target Speed command. You can find a list of all the commands and settings for each device in the user manuals.
yours,
Don Kirkby
Zaber Technologies