08-05-2008 05:57 AM
Tom,
>>>Create a new version of the library VIs you need (error handler in this case) on your hard drive. Compile this VI for RT (add it to an RT target on a project and run it) and then use that RT-compiled file on your RT system whenever you need it. This way you have a copy on your hard drive (and potentially in memory) for Windows, and another for RT.
What I'm not getting here is that I don't have a Windows version. The error handler is in vi.lib and is shown as a dependency of the CompactRIO project (e.g. it is shown under the RT target).
Questions:
1) If I am running an RT Target in debug (and that RT code has the error handler), is Labview compiling a Windows version?
2) If I open an (RT) VI in Labview, Is Labview creating a Windows version just so I can "see" it.
3) I get the save file problem even if I do a full real-time build and deploy. After I have built the project, when I deploy it, it tells me that I need to save changes to VI's. How can this be after I have just built it?
Regards
Jon
08-06-2008 04:10 AM
08-06-2008 08:15 AM
Tom,
Without wanting to sound like a stuck record - I don't have a Windows version of my software, only one for the RT Target.
Here's what I'm doing in detail
1) I have made sure that all VIs in my project are saved and closed.
2) I right-click on my startup VI and select Run. The VI front panel appears and...
3) I get prompts to Save Changes.
I have noticed that if I open Format Message String.VI or Error Handler CORE.Vi, the moment I open them a * is amended to the filename meaning a change has been made. If I say List Changes it reports the VI was recompiled. In the bottom lefthand corner of all my VIs it says CompactRIO suggesting that these are RT versions.
08-06-2008 08:37 AM - edited 08-06-2008 08:38 AM
08-06-2008 09:01 AM
Tom,
In answer to your Q's
1) There are no other VIs open at the time, only the top level one I am running.
2) I answer Save All to the Save Changes, I then deploy and run. If I then stop the VI running and run it again I DON'T get asked to Save Changes - this is OK :). If, however, I close the main VI and reopen it, despite there being no * on the file name (i.e. no changes), if I run it for a second time I DO get prompts to save changes to other subVIs. These sub VI's have not EVER been opened this session.
3) The affected VIs are already RT targetted.
4) If I set about making my own versions of Labview system VI's (e.g. Format Message String and Error Handler CORE) presumably I would then have to replace all callers of the originals with my own version? This is unworkable since we are using several third party libraries and to change all of these libraries to use the custom version would be an onerous task, not to mention a configuration control nightmare.
Any other bright ideas?
Jon
08-07-2008 04:35 AM
08-07-2008 05:16 AM
Tom,
>>>Whilst it's odd that you get the save file dialogue so often, you're going to get it from time to time during normal development anyway.
Er, why? I wouldn't expect to be prompted to save a file if I haven't ever opened it or modified it. I haven't seen this behaviour in any other IDEs - what's so different about Labview?
>>>Without duplicating VIs, it's not feasible to expect no save messages - you're code is going to get recompiled sooner or later!
In large software projects (like this one), one aims to reduce the re-complie time by designing the software in such a way that you do not need to "build the world" everytime. The system has been formally designed using UML and an OO approach - it hasn't been thrown together in a lab in a day. When your efforts to promote maintainablilty appear to be defeated by the development language, it does get you down. Are you saying that this is a known isssue?
>>>Am I right in thinking that this is a problem because it asks you to save protected VIs? If so, I think you're going to need to get copies of those VIs that aren't protected so that you can save re-compiled code.
Presumably LV would tell me if the file is protected if it was (and I haven't seen any messages to this effect). All I do know is that the problem seems to come from the Labview error handling functions and VI's that are built on them. If this was any other language, I would say that this feels like a circular dependency issue.
Regards
Jon
08-07-2008 05:43 PM
08-08-2008 03:11 AM
01-06-2010 04:56 AM
Hello everybody,
This thread stopped quite some time ago. Has a solution been found? Cause I'm experiencing exactly the same problem here.
I'm using LV 2009 together with a RT desktop PC.
TIA,
Frank.