The best way to implement this is using a background VI for DAQ+storage. Load this VI from your main VI with Open VI Reference and start the VI with the Invoke node Run VI. Use a named queue to send data from your UI VI to the background VI. Use a strict typedef for the data to transfer over the queue. This way the background VI will get the configuration information. Use another named queue or a named notifier to send the aquired data from the background VI to the UI VI. Notifiers have the advantage that more than one reader can receive the data but if he is to slow he will loose data. Queues don't loose data but you can have only one reader. If screen3 is a subVI of screen2 it can also create a named queue with the same name as in screen2 and read the data. If screen3 is closed screen2 will read the data but the data read by screen3 will be missing. If you don't want this you have to load screen3 and run it with Run VI and screen2 has to forward the data to screen3 over another named queue. Look for <a href="http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=506500000008000000B2BD0000&USEARCHCONTEXT_CATEGORY_0=_49_%24_6_&USEARCHCONTEXT_CATEGORY_S=0&UCATEGORY_0=_49_%24_6_&UCATEGORY_S=0">Bens</a> example of who to run UI VIs independently. You only need to add the fourth VI for the DAQ+storage and the queue to communicate between the VIs and of course the code and controls to do the things you want.
Waldemar
