04-08-2014 02:11 PM
Hi All,
I am running the NI 9401 cRIO with Labview 2011. I have an application that stores data at the FPGA level via DMA and then transmits this data to my host PC via the real-time OS. So I have three main VIs, titled simply as PC_Main, RT_Main, and FPGA_Main. The FPGA has a build specification and under RIO Device Setup, I have "Autoload VI on device powerup" selected. I do believe the FPGA is running at boot up.
Now my issue is getting the RT to run at boot. I have created a build specification called RPDT that uses RT_Main as a startup VI.
I build this and then choose "set as startup"
But I must be missing a step, because when I run my PC_Main VI, nothing happens. I should see data being collected. Everything works when I run RT_Main.vi as an opened VI, but I can't get it to run at boot. What am I missing here?
Also, related to this, what does my state of RPDT mean with respect to being able to run PC_Main.vi? I mean that do I always have to be connected through the project by right-clicking and "connect"? My end-game is to make PC_Main an exectuable and then everything runs at launch of this VI.
Please let me know if there is any other information I can provide. Also, I've already referenced:
I followed this, but I am having an on the host side with the open application reference blocks, and strict VI reference. When I actually did get it to run, I still was unable to collect any data, as if the RT VI was never executing.
Thanks,
Scott
04-08-2014 03:15 PM
Just to be sure - after you set the build specification as "Set as startup" you are first deploying it and then restarting (software reset or power cycle) the cRIO ?
04-09-2014 06:28 AM
Thanks for the reply.
Yes, I deploy then restart. When I deploy RT_Main, it says deployment is successful. However, after a chassis reboot, when I try to deploy PC_Main, I get this:
I don't understand why this conflict is happening...
Thanks for the support.
04-09-2014 11:33 AM
The conflict means that you have an executable already running in the target calling that VI. If you then re-deploy, it will have to close and reopen again the application. As far as that, it seems it is running. Could you try to add a heartbeat code in the RT Main VI to make sure the application is in fact running?
I've seen cases where the RT executable won't run because a particular object in the front panel or function is not supported as an executable. For example, a type definition in an RT executable. This article details some other steps we can try to get the application running for these cases.