Hello swngiam.
Thank you for posting to the NI discussion forums.
Although I have not worked directly with STM, I think I can provide some valuable insight into your application. First, I would recommend looking into the LabVIEW PID Control Toolkit for Windows. This will allow you to use LabVIEW custom VI's to use feedback in control loops fairly easily. If you combine the PID.vi with the DAQmx read and DAQmx write VI's, you would be well on your way to achieving your end goal.
To answer your real time question, LabVIEW's execution is non-deterministic. Thus, if there are a lot of processes running, there is no guarantee of when or how long it will take to complete a specific block of code. To see more deterministic performance, you can use LabVIEW Real Time. There is more information about this product here:
LabVIEW Real-Time Module
In terms of filtering out high frequency noise, you can use one of LabVIEW's filtering VI's. I would recommend searching for filter on the functions palette and the results will depend on what LabVIEW package you have. However, when I search, I find a Filter Express VI that is very good as well as many other VI's that focus on specific types of filters such as Bessel and Butterworth just to name a couple.
The USB-6229 device is a very good M-series device. In this case, we need to ask ourselves if 16 bits of resolution and 250 kS/s are good enough specifications for what we want to do.
Let us know if this helps in your application or if you have any other questions.
Have a great day!
Brian F
Applications Engineer
National Instruments