The NI-735x family of motion controllers allows you to read the position much faster. The position is read from a shared register that the motion board updates. Since it is a register read, the host takes very little time to get the position information.
The NI-733x/4x families of motion controllers do send a command to the motion board that the motion board has to process and then return the data. Typically this should only take a few milliseconds or less for a read. But it is dependent on what else the motion board is doing. Things that can effect the time it takes to respond to a host request are number of axes used in arc moves, and short bursts of multiple commands sent to the board. The board has a FIFO that is 16 commands deep. If you send down multiple commands followed by a read position, each command in front of the read command has to be processed first. Which could explain why you are seeing a 20 ms read.
In NI-Motion 6.1.x we have changed the driver software to help load balance the host request with the rest of the processes running on the board. In most cases this helps performance.
What version of our driver software are you using? How fast do you really need to get the position information?
Thanks,
Rodger S.