If channel.vi can function as a top level VI or a sub VI is there any changes in channel VI=92s state? Does channel vi run as a parallel loop with the other while loops in the main vi? Or is the channel vi placed inside the while loops in main vi requiring the channel vi to run once as a sub vi where it runs continuously as a top level? If the later is the case you may be forcing a reconfiguration of the data acquisition each time the vi is called. If it is running in a parallel loop you may be missing a time delay in the version you made to run in this mode. Try the profiler found in the menu tree Tools>Advanced>profile vis. Run the profiler with the timing statistics and details selected to see which vi is running away with the program.
Good luck Randall
