LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Long term experiment application error

Hi I am running a long term experiment where I am continuously reading in and plotting/saving Bluetooth Data, using a LabVIEW executable.  After about a day, a pop up appeared titled:

 

"SMessaging.exe - Application Error"

 

Application has generated an exception that could not be handled.

 

Process ID=0xe4c (3660), Thread ID=0xe7c (3708)

 

Click OK to terminate the application.

Click CANCEL to debug the application.

 

Nothing appeared in my Error Handler list, however when I cleared the pop-up error and ran the vi again, Code 1: source - ??? in btnew.vi appeared and the vi wouldn't run, I had to shut down the computer.

 

Is it something to do with the .exe build that I made? I am running Windows XP with the LabVIEW runtime. 

0 Kudos
Message 1 of 12
(2,524 Views)

EDIT 11:14 AM GMT -3:00:

So far this is useless, because the user is running an application built with LabVIEW 2010. I don't know if the 2010 version has the exactly same problem.

 


 

 

When you said that this happened about a day, I remembered something.

What version of LabVIEW are you using currently?

In LabVIEW 2012 there's a known issue that happens in the same context.

BUT, I'm not sure if the error quoted and your error are correlated, besides the execution duration (1 day).

 

Hope this helps you.

Regards

 

 

Mondoni
Message 2 of 12
(2,515 Views)

I developed the vi in LabVIEW 2010, SP1 and built an executable which I am running off a different machine using LabVIEW Runtime engine.

0 Kudos
Message 3 of 12
(2,512 Views)

So please ignore my message. 😞

I will do some researches and see what I can find.

Sorry if that didn't help.

 

Regards

Mondoni
Message 4 of 12
(2,509 Views)

It seems to me that the error popup is a OS dialog, a so-called "unhandled exception" dialog.

After acknowledging that dialog, are you sure the the process is shut down? (look into Windows Task Manager for this, use the "processes" tab)

 

If the process is killed, but the resource (Bluetooth interface) is still blocked, it indicates that a service is still accessing this device. If the service is stuck or simply running wild is something difficult to find out. Maybe you can try to reset the device using the Windows Device Manager.

 

You should observe memory consumption and CPU load (use PerfMon and log the data) and check if immediatly/some time before the crash something unexpected happens here.

 

Additionally, make sure that the PC does not go into power save or hibernate as this could interfere in the communication.

 

hope this helps,
Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 5 of 12
(2,501 Views)

Since you didn't provide any code for us to examine, it'll involve some lucky guessing to solve your problem.

 

However, two relevant questions come to mind (having nothing to do with each other) :

 

1.  Does this problem happen when you are running the non-executable, i.e., the VI under LabVIEW?

 

2.  How much data are you getting/plotting/saving? Are you trying to build an array in memory which could use up GBytes, using all available RAM?

 

If the answers are "No" and "Not too much, No" then you'll probably have to provide more data about the problem.

 

Cameron

 

To err is human, but to really foul it up requires a computer.
The optimist believes we are in the best of all possible worlds - the pessimist fears this is true.
Profanity is the one language all programmers know best.
An expert is someone who has made all the possible mistakes.

To learn something about LabVIEW at no extra cost, work the online LabVIEW tutorial(s):

LabVIEW Unit 1 - Getting Started</ a>
Learn to Use LabVIEW with MyDAQ</ a>
Message 6 of 12
(2,499 Views)

No I have not tried to run the vi under LabVIEW, I am going to do that today.  Here is my code.  The program receives in 6 bytes of data every 4 minutes, so I am doubtful that the memory is being consumed. Could the graph only display a certain amount of  continuous data?

0 Kudos
Message 7 of 12
(2,491 Views)

A couple of quick theories.

 

Is the Bluetooth hooked up via USB?  If so, the OS could be cutting power from the USB hub and therefore your Bluetooth messaging will have a major error.  It is a power saving feature.  This can be fixed via the Device Manger and changing the USB power settings.

 

Usually when tests go a long time and suddenly die it is due to a memory leak.  These memory leaks are usually from building arrays.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 8 of 12
(2,490 Views)

Well, two things stand out to me:

 

1.  Your inner loop has no timing. That means it is going to run as fast as possible, taking up 100% of the CPU until it is told to stop. And it is only told to stop when you get an error. You cannot stop it without hitting the Abort (stop sign) which screws up everything. And if anythng else comes along that wants to use CPU time, they're going to have to fight for it.

 

2.  Your outer loop also cannot be stopped without hitting the Abort, because you have wired the F to the stop loop terminal. Again, not good.

 

I have no idea how you can stop your executable without just turning it off (might even have to go into Taskmanager to do so, but you'll have to fight for CPU time).

 

You would be much better off putting some reasonable timing in there so you could at least stop things manually, as I assume you are going to want to stop the program sometime, unless the Bluetooth signal you're reading is actually a "5 minutes to Doomsday" signal and you want to be sure you are ready.

 

The comments by others about what might happen when the PC sleeps/hibernates/etc. are also relevant, unless you have disabled this.

 

Programs are much easier to troubleshoot before they are compiled into an executable.

 

Cameron

 

To err is human, but to really foul it up requires a computer.
The optimist believes we are in the best of all possible worlds - the pessimist fears this is true.
Profanity is the one language all programmers know best.
An expert is someone who has made all the possible mistakes.

To learn something about LabVIEW at no extra cost, work the online LabVIEW tutorial(s):

LabVIEW Unit 1 - Getting Started</ a>
Learn to Use LabVIEW with MyDAQ</ a>
Message 9 of 12
(2,473 Views)

Thanks for the suggestions.  I am aware of the inner loop and program stopping issue which I am working on.  I have posted about this before and got some nice help from other forum members.

0 Kudos
Message 10 of 12
(2,459 Views)