06-19-2012 08:06 AM
Hi all,
I am maintaining a producer/consumer data acquisition program to be deployed on a real-time target. The main code is deployed to and run on the real-time target during experiments, but was having trouble because the program was originally designed to write all experimental data to disk on the real time during acquisition, which puts the whole experiment at the mercy of the hard drive. I am now trying to rework the code so that the host takes care of logging, so that my time-critical loops don't have to wait.
I am currently using LabVIEW 8.5
I have two questions:
First, how can I programmatically call the data-logging subvi on the host so that it runs in parallel with the main vi which runs the experiment and collects data on the real-time? I have attached the test code that I have been working with to figure this out, but it does not run the logging vi continuously in the background. I am aware that there is better functionality for this in newer versions of LabVIEW, but I would prefer not to upgrade unless there is no other option. I would like to be able to run my data-generating vi and have it start the data logging remotely.
Second, is there a way in the host VI to read values off the network variable using an event structure rather than polling it for updates?
Any help would be sincerely appreciated!
06-19-2012 12:00 PM
OK update time. I have moved the data generation vi in the project I posted to the host computer and it is able to call the subvi and have it run in parallel. So the issue I am having must be that the main VI can't call the sub-vi because it is hosted on a different machine. How do I get around this constraint?
06-19-2012 12:16 PM
VI server
Mark the target VI as served on the machine on which it will execute and use VI server Call by reference to invoke the served VI.
This used to be taught as THE way to communicate syncronously with an RT app.
Ben