Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Problemas en el tratamiento de errores

Hola.

 

Tengo un subVI (llamémosle subVI_1) que tiene una salida  de error  y otro subVI (subVI_2) con una entrada y una salida de error. En ambos, el error que puede producirse tiene con un código definido por mí que puede ser 5001 o 5002. Estos dos suVIs están conectados (la salida de error de subVI_1 a la entrada de subVI_2) dentro de un tercer subVI (subVI_3), estando la salida de subVI_2 conectado a un indicador de subVI_3 que será la salida de error del mismo. La salida de error de subVI_3 esta conectada al VI "Gestión de errores" (que adjunto) dentro del VI principal. Cuando ejecuto el VI principal y se produce un error en subVI_3, siempre me aparece el mensaje de que el código de error está indefinido (adjunto la imagen del mensaje). Al darle al OK, ya me aparece el mensaje de error que debe aparecer tal como yo quiero, pero siempre me aparece primero el otro. No sé cómo evitar que me aparezca ese mensaje, ya que le he dado muchas vueltas y creo que estoy tratando los errores correctamente.

 

Agradecería cualquier ayuda.

Descargar todos
0 kudos
Mensaje 1 de 3
2.962 Vistas

Hola Ajoalmejo,

 

he estando intentado reproducir el error que comentas en el post anterior y no he conseguido hacerlo. A mi me lo captura bien, por lo que puede ser problema de la configuración de LabVIEW o de tu código. Vamos a hacer un par de cosas:

 

1) adjunta al foro los VIs y subVIs de tu programa para ver como pasa el error desde subVI_1 hasta subVI_3 y donde se produce ese mensaje.

2) Por otro ladom, te recomendaría que deshabilitases la captura automatica de los errores, que puede ser la causa de que LabVIEW haga una primera captura instantanea mostrande el mesnaje de error no encontrado y luego muestre la captura correcta.

 

Para deshabilitarlo, vete a las propiedades de LabVIEW en Tools>>Options... y deshabilita las opciones que te pongo en la imagen adjunta.

 

Salu2,

 

0 kudos
Mensaje 2 de 3
2.937 Vistas

Muchas gracias gracias por la respuesta. Lo de mandar los VIs lo dejé estar porque subVI_1 y subVI_2 dependen, a su vez, de un montón de VIs para su funcionamiento, así que era bastante follón enviarlos todos. Además, se trata de un protocolo de comunicación serie (subVI_1 envía y subVI_2 recibe), así que hace falta un puerto serie para probarlo. El mensaje aparece cuando el error se produce en subVI_1, al entrar en subVI_2. Si el error se produce en subVI_2, no aparece.

 

Lo de deshabilitar la captura automática de errores ya lo había probado, pero se sigue dando el problema. Al final lo he solucionado haciendo que subVI_2 se ejecute sólo si no hay error en subVI_1, pero sigo sin saber por qué ocurría.

0 kudos
Mensaje 3 de 3
2.925 Vistas