From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Monitoreo de señales degitales por labview

Hola Colegas

Estoy haciendo un proyecto de pasantias en el cual adquiero unas señales por un microcontrolador PIC y luego de estas ser acondicionadas por medio de RS232 la envio a un computador, el cual solo me tiene que indicar si esta encendido o apagado (ON/OFF) son 20 señales.

La programacion del PIC ya esta lista y envio constantemente las señales al PC, la idea es que por medio de labview yo pueda visualizar dichas señales pero tengo un gran problema.

Logro visualizar la primera señal pero no se me "actualiza" el envio de labview ya que se queda en un loop y hasta que no termine no vuelve al principio de la programación,tengo que apagar y encender de nuevo el programa para que tome la segunda toma y asi sucesivamente, si quito el loop entonces funciona pero me borra el estado anterior de la señal y debo mantenerla.

No se si me estoy explicando bien, estoy oxidado en labview no lo utilizaba desde hace tiempo desde a version 6i y actualmente estoy utilizando 2010


Le agrego el programa de labview
Esta facil y debe ser una tonteria o abra una manera mas facil de hacer pero realmente requiero de su ayuda.
En el ejemplo de labview que le envio estoy agregando un control numerico, que realmente no va en el programa original, solo lo estoy colocando para hacer las pruebas sin mandar nada por el puerto y solo hacer una suma y que me muestre lo que coloco por el indicador.

Gracias. Cualquier cosa pregunten con confianza y sugerencia las acepto.

0 Kudos
Message 1 of 2
(2,437 Views)

 Hola granwil para preguntas en español te recomiendo Discusiones sobre Productos NI.

  Ahora con respecto a tu problema de que se bloquea tiene que ver con el flujo de datos en LabVIEW, en general una estructura o VI no se va a ejecutar hasta que todas sus entradas reciban un valor, y no va a dar ninguna salida hasta que se termine de ejecutar todo el programa.

 Por ejemplo aqui la Flat Sequence es innecesaria porque el ciclo while no se va a ejecutar hasta que se ejecute el VI inicial, también el wait the 500 que tienes ahí sabes si se ejecuta antes que el subVI o despues.

 Ahora lo que esta bloqueando tu programa son los ciclos while que tienes dentro del ciclo ya que estos se van a estar ejecutando en forma continua a menos que el valor salga de rango. Y como el valor que recibiste en u puerto serial cae en el rango de alguno ese ciclo se queda bloqueado y no permite que se ejecute de nuevo tu programa. Así que lo que bloquea tu programa son los ciclos while. Aquí mas que solo modificar el código de LabVIEW probablemente puedes modificar el código del micro para que sea más eficiente el programa.

 Para que no actualices de una señal en una lo que puedes hacer es que tu microcontrolador te mande en un solo mensaje la información de todas tus señales es decir estas recibiendo 20 bits. No es necesario que mandes tu string en forma ASCII es decir no tiene que enviar un '0' o un '1' en ASCII, sino como un string binario y tu convertir este string en LabVIEW directamente a un Arreglo de Boleanos, de esta forma evitas hacer la comparación y puedes desplegar el valor directamente.

 

Tambien esta guia de LabVIEW en 6 horas te puede ser de utilidad:

Guía de Introducción a LabVIEW en 6 Horas - National Instruments


Saludos

 

 

 

Benjamin C
Principal Systems Engineer // CLA // CLED
0 Kudos
Message 2 of 2
(2,350 Views)