In my opinion the main questin you must answer is which type of application you intend to run in your program.
It's true that within AI Acquire Waveform Scan.vi the configuration of the device is executed only in the first iteration, but every time you call this vi, the AI Start and AI Read are executed, that is, a new acquisition is made (and completed) and data are stored in the waveform data output terminal, and may overwrite old data unless you have stored them someway or collect all waveforms in an array. Remember that AI Acquire Waveform Scan.vi waits until timeout or data acquired before returning.
So coming back to my question: are you planning to execute a (relatively) long acquisition in the background and simply want to read data while they are acq
uired or you intend to acquire at each iteration a new set od data?
If you are running the second option, your solution is correct (and your problem is probably due to some error in wiring the iteration terminal, maybe wrongly lead to the device terminal). Remember to store or accumulate waveforms out of AI Acquire Waveform Scan.vi, or you will retain only the last one acquired.
If you are in the first option, you must put in your diagram AI Config, AI Start, then a while loop with AI Read (configured to read a small amunt of data until acquisition completed) and then AI Clear (outside the loop).
Hope to have helped you a little.
Roberto