07-06-2018 11:46 AM
I have made a giant LabVIEW program what enables voltage data acquisition from FPGA, subsequent waveform signal processing calculations, and TCP communications.
Starting from a certain point, every time I change the code a little bit, and as little as changing the value of a constant, the program would crash, and you see that "sorry for your inconvenience" dialog.
Since the program is always saved before running, all I need to do is restart the program, recover the code, and the cycle continues.
It is annoying because it wastes time, since the crash does not cause any loss of data or program. It is confusing why when the code grows to a certain size the crashing appears more often.
07-06-2018 11:50 AM
Did it generate a crash report, and if so, did you submit it to NI?
(What's your definition of "giant LabVIEW program" :D)
07-06-2018 12:14 PM
I did every time but I don't see any response.
I guess "giant" or not is really subjective and relative. Lol. My observation was when it reaches a certain complexity the crashing begins and then becomes more often until it reaches to a point when every time I make changes LabVIEW would crash.
07-06-2018 12:18 PM - edited 07-06-2018 12:18 PM
Yeah that would be bad. SpaceX and Virgin Orbit both likely have very large LabVIEW programs for controlling system critical things, and if they just started crashing after a certain size that would be a problem. Submit to NI, and do some troubleshooting to isolate the issue, and be sure and follow up here if you or NI discover anything.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
07-06-2018 01:05 PM
By "giant" do you mean one really big block diagram? I hope not, there are limits to block diagram size..
- https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019LqySAE
- https://forums.ni.com/t5/LabVIEW/Block-Diagram-is-not-working-properly/td-p/3719945
07-06-2018 02:28 PM
cstorey brings up a very good point. Many experienced LabVIEW Developers would agree that a good size for a Block Diagram is that it fit on a laptop screen. The size of a well-written LabVIEW Project is measured in the number of VIs and TypeDefs, which can number in the hundreds (or more), with nothing taking more than a single screen. As a rule, such "tiny" pieces of code are very easy to develop, maintain, debug, and test, so a routine that has, say, 20 of these little guys in, say, a State Machine can be expected to have a better probability of running correctly (and not getting a "We Apologize" message) than if all the code was poured into a single VI.
Bob Schor
07-06-2018 02:51 PM
@Bob_Schor wrote:
cstorey brings up a very good point. Many experienced LabVIEW Developers would agree that a good size for a Block Diagram is that it fit on a laptop screen. The size of a well-written LabVIEW Project is measured in the number of VIs and TypeDefs, which can number in the hundreds (or more), with nothing taking more than a single screen. As a rule, such "tiny" pieces of code are very easy to develop, maintain, debug, and test, so a routine that has, say, 20 of these little guys in, say, a State Machine can be expected to have a better probability of running correctly (and not getting a "We Apologize" message) than if all the code was poured into a single VI.
Bob Schor
I always say that you would never dump all your C code into main(). It makes sense to break up your code into functions that get called by main, though, and that's what subVIs are for.
One oft-overlooked advantage of having many subVIs is that it make troubleshooting so much easier. Because the errors have call chain, you can easily see exactly what module cause the error, whereas if you have one gigantic block diagram... good luck finding where it came from.
07-07-2018 07:43 PM
Thanks! My diagrams are not too big, within 5000 x 5000 pixels.
07-07-2018 09:36 PM
@PetheGreat wrote:
Thanks! My diagrams are not too big, within 5000 x 5000 pixels.
My Laptop has a resolution of 1920 x 1080, call it 2000 x 1000. So I'd need 15 Laptop Screens, 3 across by 5 high, to see your Block Diagram. To say it another way, if I can view 2 MPx (= MegaPixels), and your Diagram is 25MPx, I can see 8% of your Block Diagram at once. Makes it difficult (and tedious, and error-prone) to view, to understand, to follow the wires, to debug.
I've certainly encountered diagram like these (and even much worse -- one early Project had a key VI whose Block Diagram I printed at a factor-of-4 reduction (so one page of paper showed 2 x 2 "screens" worth of code) and ended up with a "scroll" that was 80" (10 landscape pages) wide and 15" (2 landscape pages) tall. Impossible. I "started over", abandoning the initial effort as "too messed up to salvage".
There is a Discussion in Progress on the Forums now about using sub-VIs to get a Block Diagram to fit on a single screen (https://forums.ni.com/t5/LabVIEW/Use-of-sub-VIs-to-reduce-block-diagram-size-in-top-level-VI/td-p/38...). You might find this useful. It will probably get rid of the LabVIEW crashes you are observing.
Bob Schor