LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Already-running vi 'not compiled'?

Solved!
Go to solution

I have a mixed-mode FPGA device we access by ethernet, and I have a VI on this device, and it runs, and that's all wonderful.

 

I have an application which has a reference to this VI. It used to work.

 

Then we moved to a different place and the network address changed. We adjusted the address on the device and then we could get to the VI on it and run it again. That was good.

 

But the reference to the VI in the other application? It didn't update. Fair enough. I drag the VI from the target in the project window into the reference, to replace it.

 

One would think - I would have thought - that this would fix the problem. But no, I still have a broken arrow, and the error is that the referred-to VI has not been compiled. Not compiled? It's Running!

 

So, I'm a bit confused about that. Any ideas what might be going on and how I could fix it?

0 Kudos
Message 1 of 12
(4,887 Views)
Solution
Accepted by topic author LukeASomers

Luke,

 

Do you get this error if you reference the bitfile rather than the VI?

Matt J | National Instruments | CLA
0 Kudos
Message 2 of 12
(4,818 Views)

While I'm surprised it'd require a compilation if you haven't changed the hardware, it's important to note that the code on your computer and the code on your FPGA are different.  Anything you're editing is not running on the FPGA.

0 Kudos
Message 3 of 12
(4,805 Views)

Do you get this error if you reference the bitfile rather than the VI?

 

No; I'd been hoping to leave open the option to modify the other VI without having to mess around with the reference, but as a workaround I was able to just change the reference to be by bitfile, and with that done it went back to working.

0 Kudos
Message 4 of 12
(4,779 Views)

Hi LukeASomers

 

Actually that sounds a bit confusing, have you already tried recompiling the VI and calling it again? Did the same error and broken arrow was displayed? 

 

My guess is that since you have dragged the VI again into Open FPGA VI reference funciton it has just the reference to the VI not the comiled version, other thing that I am thinking of is that if you get the same behavior if you make the reference to the bitfile instead of the VI 

Regards,

Sil.VI
0 Kudos
Message 5 of 12
(4,751 Views)

That was the first thing I tried - dragged the VI into the reference, then saved everything and ran the VI on the target, and that was the situation when I asked the question in the first place.

 

As noted before, switching to referring to the bitfile fixed it.

0 Kudos
Message 6 of 12
(4,737 Views)

I came across this same problem in LabVIEW 2018. I copied a whole project directory to a new location and it gave me a broken arrow in the code that contained the FPGA reference. It said it wasn't compiled but it was compiled and running right there in the next window. Solved it by deleting the build specification for the FPGA code in the project window (right click on the build specification and "Remove from Project") and recompiling. You might also want to try right clicking on the build specification and choosing "Build" or "Rebuild". I didn't try this but may also work. 

0 Kudos
Message 7 of 12
(3,830 Views)

I know this is an old thread but i am seeing exactly the same behaviour on two projects.  I can run my FPGA interactively, but on a calling RT VI I get the error ' fpga not compiled'. The only fix was to delete the build spec and re-compile the FPGA.  I would like to try and find out how/why this goes wrong sometimes and see if there may be a quicker fix than a lengthy recompile.

0 Kudos
Message 8 of 12
(3,362 Views)

My take on this is that there is possibly a dependency being shared somewhere between the RT and FPGA targets.

 

If you don't have compiled code separated, LV will recompile that VI on opening the RT target, which causes the FPGA VI to register that "something has changed" and will then claim that the just compiled Bitfile is "out of date", leading to the "VI not compiled" problem.

 

This is a head wrecker to get a handle on, but at very least, make sure you have compiled code separated out from ALL VIs which are used on multiple targets.

0 Kudos
Message 9 of 12
(3,332 Views)

 The thing is, if the FPGA VI thought it was not compiled it would not run. it does run so it is compiled and up to date.  The RT thinks it is not compiled.  I would like to know how the RT vi 'knows' the FPGA is out of date (when it is not out of date!)

 

As for separating compiled code, I thought I had this enabled, but I am working on a VM and I did not have it enabled for this install of LabVIEW. So good call, thanks, I will see if that does solve it

0 Kudos
Message 10 of 12
(3,325 Views)