07-27-2010 04:57 PM
If you're using the terms "loops", perhaps you are still not understanding me correctly. I mean put the DAQ Loop in a separate VI from the UI Loop VI, where both of those VI's are children of a top-level VI. Note: in this scenario, the top level VI is no longer the UI VI.
07-27-2010 04:57 PM
Could you post a picture of your VI hierarchy?
07-27-2010 05:11 PM
Hi Jack
Hierarchy is way too big to make sense - but I got your point and this is also how we do it now , the DAQ is in a VI with a loop, and we just call that VI from the "mother VI" - to make it easier, i've attached a screen dump of a "quick example" VI I just build.
Very simple producer / consumer example, with a VI that puts number into a queue, and a VI that reads the numbers from the queue..
start the mother VI - load only the front panel of the consumer VI, so that the producer VI is not visible.. While i look at the front panel of the running consumer VI i click and hold the task bar of the "mother VI" - the sub VI's stall too - in fact, even clicking a probe will freeze the entire system - so I feel very confident that when you click the title bar the entire execution space is stalled, so that the only proper work around for this is to physically seperate the DAQ from the UI via creating two seperate .exe files, and then I'm back at the question on how to share 50K DBL values / second in a reliable way.
07-27-2010 05:22 PM
OK, at this point I have no doubts we're talking about the same thing, thanks for the good clarification.
Alright... as for sharing data between two executables, probably the easiest way is through TCP messaging. 50k DBL's per second times 4 bytes per DBL is 200kB/sec, or 1.6Mbps, which is well within reasonable TCP throughputs using localhost.
07-27-2010 05:25 PM
Thanks Jack - I'll look into that option as an increased performance / stability solution sometime soon in the future.