06-08-2018 04:01 PM
We have developed a project that runs unique top level VIs in interactive mode on 3 different FPGA targets (two 7852 and one 7813). Once compiled, the VIs run smoothly, however closing the front panels then requires that the bitfiles be recompiled before the VIs can be run again in interactive mode. A variety of subVIs are used by all three top level VIs and they seem to be the root of the issue as the VIs break when opened together and the errosr are of the "VI edited in other application instance" type and are corrected by doing a synchronization, which then allows the bitfiles to be compiled.
Solved! Go to Solution.
06-11-2018 03:18 AM
Switching context will cause that a lot. I run into this problem and it's very frustrating.
What I have started doing is opening parallel projects with one target in each in Virtual machines for testing. This essentially "sandboxes" them and allows one to continue even if the others have been used int he meantime. Once I find a bug, however, I need to make sure I close all others, implement the bug fix and then re-copy the new files to the other directories also and re-start the VMs. Tedious, but less so that having to constantly re-compile.
06-11-2018 09:44 AM
Thanks for the feedback Intaris.
It sounds like this is a known issue that you've run into; could you explain the cause in more detail? By "switching context" do you mean changing the target (running VI on different FPGA)?
The workaround you propose seems like it would work for some of the development, but what do you do for a final deployment? Deploy as parallel projects on Virtual machines?
-- P
06-11-2018 10:01 AM
It's weird behaviour.
Some changes, like switching to simulation mode and back don't seem to re-trigger the need to recompile but any other conditional disables I change (my own custom values) seems to lead to requiring a recompile.
Changing target can also be a context change, so that is highly likely to trigger a "code has changed" flag.
I'm not sure what you mean with "final deployment". Projects and contexts don't exist in our final deployment, there's no source code involved..... Could you elaborate a little?
Shane
06-11-2018 01:59 PM
In our case final deployment means we install the PXI crate with the 3 FPGAs in our rack, connect all the I/Os and deploy the blessed versions of the VIs (think verified to conform to specs) in interactive mode (I know interactive mode is not ideal, in hindsight we should have used RT architecture). The plan is to run the VIs from the same project, but when we do this we get the recompile issue. It seems like your suggesting running parallel projects on Virtual machines, one for each target. I'm asking if this is true or if it is not, what you would do for a project like ours? It requires simultaneously deploying 3 FPGAs in the same PXI crate and running top-level VIs on them in interactive mode, all of which use the same subVIs. According to an NI tech, the problem is because one of the targets (7813) is not like the others (7852); I wish I could elaborate more on why that's causing problems, but I didn't get that good of an explanation and I'm still waiting for him to provide some documentation (e.g. white papers) that does.
06-11-2018 04:21 PM
Instead of interactive mode, make a host UI to interface with the controls on the FP of the FPGA VI via the FPGA reference.
Takes some maintenance but avoids the problem with interactive mode.
06-12-2018 08:10 AM
What problem with interactive mode? Are you implying that the recompile issue is somehow related to running in interactive mode?
06-12-2018 08:31 AM
Yes, the problem is kind of tied to interactive mode.
Assuming you choose to deploy a bitfile as opposed to a VI (which would be the preferable method if not using interactive mode) then your changes are irrelevant, it will simply deploy the last compiled version. This is how we do it. Only when using Interactive mode do we run into these problems.
06-12-2018 08:41 AM
Ah I see. I'll run that up the food chain. Thanks for all your input!
06-12-2018 08:46 AM
If you have any scripting wizards at your company, you might even be able to script a UI to mimic the one on the FPGA VI, saving you the maintenance work. I'd be interestied in doing that, I might even try it myself because I'm forever having to rely on interactive mode for some low-level debugging and can't make ANY changes until compiled and tested..... This slows down my development a lot. Sometimes I just want to test a snapshot, even if things change in the meantime.