I'm writing a LabVIEW VI to move a Zaber linear actuator, and I want to record the device's position every few milliseconds as it moves.
I've installed Zaber's LabVIEW driver and used its examples to get my actuator moving, but how can I read the position during those moves?
There are three options for tracking the position of one of our devices during a move: interpolate from the start and end points, poll the position using a timer, or turn on a device mode that reports the position every 250 ms. Examples that demonstrate the second and third options can be downloaded from our web site.
The easiest method is to just interpolate the position based on where the motion started and stopped. If your acceleration is reasonably high, then this makes a good first attempt. Sources of error are the acceleration and deceleration at the start and end of the motion, as well as the delay in serial communications.
The next option is to use a timer and query the device's position every few milliseconds. The advantage is that the timing is flexible. You can set the update period to anything you want. Of course, the serial communication limits how fast you can query the position. Theoretically, you can get down to about 12 ms, but 15 ms would give you a bit of breathing room.
The last option is to turn on a device mode that sends a position update every 250 ms. The advantage is that the timing is slightly more accurate, since you only have a communication delay in one direction. In more recent A-series devices, you can change the update period, but the T-series devices always use 250 ms.