el 04-22-2013 02:53 PM
El manejo de errores en LabVIEW puede ser de dos tipos. Automatico y Manual.
La diferencia más importante entre ambas , es que para aplicaciones profesionales, el manejo manual es un requisito indispensable para el buen funcionamiento de nuestra aplicación. Sin un manejador de errores nosotros solo sabriamos que un error existe, y no tendriamos capacidad de anticiparnos a que este suceso no ocurriera.
Para activar el manejo manual de errores podemos realizarlo a nivel Interfaz , dando clic en FILE , VI Properties y seleccionando la categoria EXECUTION.
Preguntas frecuentes:
¿Cuando usar una y cuando usar otra?
Antes de responder a estas preguntas, debemos recordar que para aplicaciones profesionales el manejo manual de errores es fundamental. El manejo automatico de errores no es recomendable más que para prototipos rapidos, incluso si en algun momento convertimos nuestro instrumento virtual en un ejecutable, el manejo automatico de errores no esta disponible, desaparece.
¿ Como saber si el código , envia notificacion de error ?
Si el código que hemos programado no tiene cables de error ( Cluster de error ) , nuestra aplicación estara usando un manejo automatico de errores, si esta opcion estuviera habilitada.
En caso contrario , si el código tiene clusters de error conectados entre las funciones y al final del código tiene cableado un error out, nuestra aplicación estara usando el manejo manual de errores, en este caso labview no generara una ventana de aviso de que ocurrio un error. En el ejemplo de abajo, el error out es quien despliega todo lo relacionado al error ocurrido, informandonos, el estado, código y la fuente.
Si en determinado momento , es necesario que el usuario final visualize la ventana de error, podemos incluir el VI , Simple Error Handler, el cual se encarga de mostrar el Error ocurrido. El error quedaria ciclado debido a que el VI Simple Error Handler esta dentro del ciclo while.
¿ El código siguiente desplegara una ventana de error al usuario?
Si el manejo de errores estuviera habilitado , en ese caso si tendriamos ventana de error.
¿ Que ocurriria si tuvieramos el manejo manual de Errores deshabilitado?
No tendriamos ventana de error.
¿ El siguiente código, desplegara un error, si el manejo automatico esta habilitado ? ¿ Como identificar si es un manejo manual o automático ?
MANEJO AUTOMATICO HABILITADO
El simple error handler no esta cableado, el código aun respeta el manejo automatico.
MANEJO AUTOMATICO DESHABILITADO
El simple error handler no esta cableado, el código no despliega ventana de error, por lo tanto, para que el usuario visualize una ventana de error, seria necesario cablear el simple error handler.
Nota: El hecho de que se use el VI Simple Error Handler en el código no indica , que el manejo de errores se haga manual por default. Si el manejo automatico esta habilitado,y en mi código tengo cableado los cluster de error a un Simple Error Handler, en ese momento el manejo automatico de errores pasa a ser un manejo manual de errores.
El código usa manejo manual de errores, aunque este habilitado el manejo automatico.
___________________________________________________________________________________________________________________________________________________________
¿El siguiente código desplegara una ventana de error?
Recordar que la funcion "merge errors" devuelve el primer error encontrado, si no existiera error, devuelve el primer warning encontrado. La función "merge errors" se utiliza para unir cables de error de código en paralelo. En el ejemplo anterior está mal empleado, pero es necesario afirmar que para este caso, si devuelve una ventana de error, si este ocurriera.