The example that I mentioned in my first answer should do almost exactly what you request.
- In the first iteration of the loop the first move is started with the Start Motion.
- The inner while loop iterates only once in this case as the blend complete flag is set immediately after Start Move.
- In this state the first move is still running and the target position is loaded for the next move. If you want you can also move load velocity and load acceleration into the while loop to update these values for your move.
- In the next step Blend Motion is called (the first move is still running)
- The inner while loop checks if the first move is finished. The subsequent move is started (blended) automatically then without a delay.
- The vi exits the inner loop and loads the new parameters for the next move while the second move is running and so on.
Of course it takes some time to download the parameters but as long as your moves take longer than the time needed for the execution of these functions (load velocity, acceleration and target position) you won't get any delay between the moves. If the duration of the moves is actually shorter than this time (you mentioned 4-5 ms) then you should use contouring instead of blending (see examples).
You can find more information about blending, contouring and other motion control concepts
here.
Jochen