LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Ejemplo simple que no funciona ( Event structure)

Hola a todos, estoy haciendo un ejercicio simple, pero no consigo resultados. En el fichero adjunto se puede ver que intento comunicarme con el puerto serie a través de Visa, tanto para recibir como para enviar datos y puedo hacerlo pero no funcia bien. (Está conectado a un pic)

 

Lo que deseo hacer es que cuando pulse un pulsador de inicio, comience a funionar un motor, y comenzará a funcionar un caudalímetro, cuya señal se envía por el puerto serie. Además de forma simultánea puedo mandar al puerto dos señales digitales (LED1 y LED2).

 

Lo que me ocurre es que no fucniona bien el "Event Structure" y si el motor arranca no realiza el contaje contínuo del caudalimetro (solo cuenta cada  vez que pulso el botón de inicio o el paro de emergencia), además no puedo variar el estado de los LED1 y 2 hasta que no pulse de nuevo "Inicio de proceso" o "paro de emergencia" ¿Qué ocurre?

 

Por otro lado cuando lleva un tiempo funcionando obtengo el error 107 380 72 53 "A framing error ocurred during rtransfer"

 

He intentado ponerlo dentro de un bucle pero tampoco ha funcionado.

 

¿Alguna sugerencia al respecto?

 

Gracias de nuevo a todos por vuestra colaboración.

0 Kudos
Message 1 of 8
(3,568 Views)

Hola,

 

         Por favor subelo guardado para la evrsión 2009 para poder verlo y ayudarte.

 

Saludos Cordiales,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 Kudos
Message 2 of 8
(3,565 Views)

Hola, framirez,

 

el problema que hay en tu código es que la estructura de eventos bloquea la ejecución del bucle while tal y como lo tienes programado. Esto es, el bucle While termina su ejecución cuando todos los elementos que contiene han terminado de ejecutarse. Por tanto, cuando presionas el booleano "Inicio Proceso" el bucle se ejecuta una única vez y espera a que la estructura de eventos vuelva a ejecutarse, es decir, hasta que vuelvas a pulsar el booleano. Por eso, tal y como lo tienes programado, no te va a funcionar. Así mismo, la escritura en el puerto serie, debido a que se queda "colgada" puede dar numerosos errores, timeout entre ellos.

 

Espero que esta información te ayude.

 

Saludos.

 

Jesús.

0 Kudos
Message 3 of 8
(3,556 Views)

Gracias a los dos por vuestra respuesta, ahora entiendo que es lo que está sucediendo, así que intentaré buscar alguna solución. Por otro lado será bienvenida cualquier sugerencia al respecto, ya que soy nuevo en esto y aún me cuesta algo.

 

Adjunto está una versión anterior.

 

De nuevo gracias y que pasen un buen día

0 Kudos
Message 4 of 8
(3,553 Views)

Hola, framirez,

 

te he puesto una posible solución en la 2010. Hay muchas y mejores, pero creo que ésta te valdría.

 

Un saludo.

 

 

0 Kudos
Message 5 of 8
(3,548 Views)

Gracias Jesús por tu respuesta, pero como te he dicho estoy comenzado con labview, y por ejemplo no entiendo lo que significa cuando es falso en "case structure" (Está en un círculo en un fichero adjunto).

Si no te inporta, podrías decirme que significa.

 

De nuevo muchas gracias.

0 Kudos
Message 6 of 8
(3,543 Views)
Eso es s
0 Kudos
Message 7 of 8
(3,537 Views)

Eso es simplemente una constante de error que quiere decir "No error". El motivo por el que lo he puesto es porque no se puede dejar un túnel de salida de una estructura case sin cablear a nada.

0 Kudos
Message 8 of 8
(3,536 Views)