LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Error management without error cable ?

Is there a way for being aware of errors, after or while execution of a VI, without execution interruption ( thus also without error message blocking popups) AND WITHOUT needing to cable the error line through every single VI and function ? I need to be remote alerted of any error thus VI needs to continue working in case of error, for sending the alert.

Or, alternatively, could I trig an alerting VI on execution interruption of the  first VI ?

Thank you in advance.

Charles.

0 Kudos
Message 1 of 7
(3,883 Views)

Common practice in larger application is to have a parallel loop that monitors any errors. You do what your error clusters to be wired through every VI because your VI grouping should all be similar functionality, so you shouldn't want your code to finish operation if the first VI errors out.

 

This is a good explanation.

Cheers


--------,       Unofficial Forum Rules and Guidelines                                           ,--------

          '---   >The shortest distance between two nodes is a straight wire>   ---'


0 Kudos
Message 2 of 7
(3,869 Views)

Thank you for your reply.

Nice to know there is a possibility.

What should I put in that parallel loop in order to monitor errors  ?

Does the common error handling VI handle errors even without being cabled on the error input ?

According to my first trials it doesn't.

What then should I put in that loop to make it aware of errors ?

 

I'm not sure to understand your sentence:

"You do what your error clusters to be wired through every VI because your VI grouping should all be similar functionality, so you shouldn't want your code to finish operation if the first VI errors out."

 

 

Thank you .

Charles.

0 Kudos
Message 3 of 7
(3,802 Views)

What should I put in that parallel loop in order to monitor errors  ?

Does the common error handling VI handle errors even without being cabled on the error input ?


The error cluster is a boolean status, integer code, and string source. You can unbundle that code and handle specific codes, or do whatever you want with the Source. How would you expect the error handling VI to handle errors without inputting an error..? This is basic data flow.

 


I'm not sure to understand your sentence:

"You do what your error clusters to be wired through every VI because your VI grouping should all be similar functionality, so you shouldn't want your code to finish operation if the first VI errors out."


Oops, typo. I meant "You do want..."

Once again, you need to wire your error clusters through, or else whatever was in that error cluster wire will be lost.

 

 

Cheers


--------,       Unofficial Forum Rules and Guidelines                                           ,--------

          '---   >The shortest distance between two nodes is a straight wire>   ---'


0 Kudos
Message 4 of 7
(3,795 Views)

Typically, you use a Queue to send the errors to your parallel loop.  You can then do whatever you want with the errors from display, log, ignore, etc.

 


CharlesDel wrote:

I'm not sure to understand your sentence:

"You do what your error clusters to be wired through every VI because your VI grouping should all be similar functionality, so you shouldn't want your code to finish operation if the first VI errors out."


You normally have a group of VIs that depend on each other.  For these, you will want to chain your error cluster from VI to VI and then either directly handle any errors or send them to your error handling loop.  For example, you are reading data from a file, doing a little processing on them, and then displaying the data.  There is no point in processing the data if you had an error while reading it, so you just let the process (and probably also the display) parts see the error and decide to not run.


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
0 Kudos
Message 5 of 7
(3,787 Views)

The terminology you use plus the fact that you would ask this at all suggests to me that you are new to LabVIEW.  Look at James Moriss' or crossrulz's signature and follow the link there.  At the bottom, under "Looking For Free Training," there are many really excellent tutorials to read.  Take them to learn some basic LabVIEW concepts and pepper us with questions on any difficulties you run into.  🙂

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 6 of 7
(3,748 Views)
The point I make about errur handling is that you need to take as much care to aggregate and protect error data as you do for the "real" data in your system.

Used properly, errors become a useful tool for pacing the execution of your application. Think about it, if you have three operations that have to happen in order, do you really want to waste time trying to perform the 2nd and 3rd function if the 1st one generates an error?

The tricky part of working with LabVIEW is often figuring out what to do in parallel and what to do serially. For that reason on my blog I present the building of a test application that consists of multiple parallel processes running asynchronously. One of those processes is an error handler that catches, displays and logs errors.

Show me an application that handles errors well, and I'll show you a successful, reliable application.

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 7 of 7
(3,724 Views)