From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discusiones sobre Productos NI

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

Tengo una operación y quiero que al dar clic en un botón se re calcule la operación

Tengo varios campos de entrada de datos y luego realizo una operación, cuando cambio un dato quiero dar clic en un botón para re calcular la operación.

 

El VI usa otras cosas que hacen que el programa se mantenga corriendo, por eso quiero re calcular con un botón y no parar y volver a dar clic en run 

 

Adjunto imágenes con los campos de la operación que realizo y otra con el bloc diagram

 

Descargar todos
0 kudos
Mensaje 1 de 4
2.614 Vistas

Hola tavolarte95

 

Lo más sencillo (no necesariamente lo más recomendable) es poner todo dentro de un "Case Structure", en el caso falso no se hace el calculo y en el verdadero se realiza el calculo, pon cuidado en la acción mecánica del botón, para que el calculo se realice solamente una vez al presionarlo.

 

También puedes utilizar un "Event Structure" dentro de un while loop, este espera un evento, en este caso el botón, cuando este cambia su estado se dispara el evento y se realiza lo que esté dentro de él.

 

Y si tu programa tiene más funciones, una máquina de estados es más recomendable.

 

Pero me extraña que menciones que el vi se mantiene corriendo y para re calcular se tiene que detener y volver a correr, si se mantiene corriendo lo que esté dentro del vi no para de realizarse por lo que el balanceo estaría re calculandose en cada iteración si es un while loop lo que tienes para mantenerlo corriendo, yo solamente puedo adivinar.

 

Saludos.

0 kudos
Mensaje 2 de 4
2.602 Vistas

Hola Antoniooh

 

Voy a probar el Event structure, no entiendo lo de la maquina de estados.

 

El VI se mantiene corriendo porque le tengo al programa un tab control que lo manejo por botones y puedo cambiar de pestañas en cualquier momento, te voy a enviar el VI porque me de curiosidad lo de la maquina de estados, el VI carga 4 senales de unos archivos, se esas senales yo extraigo unos datos que ingreso en la pantalla de análisis para después calcular el balanceo, me falta la ultima pestaña que va a ser un reporte.

 

Quedo atento, no se si con lo que dices de la maquina de estados se pueda hacer mas sencillo el VI

0 kudos
Mensaje 3 de 4
2.575 Vistas

OK, creo que lo recomendable es que empieces por tomar tutoriales de LabVIEW.

Por ejemplo: http://www.ni.com/getting-started/labview-basics/esa/

 

 

Realmente no estas deteniendo el vi, lo que haces para detenerlo es utilizar el botón de abortar y eso es algo que no es recomendable.

Es mejor crear un evento Value change para un botón y así detener el vi, también es recomendable meter el botón dentro del evento creado.

Captura boton.PNG

La acción mecánica que elegiste para los botones "Switch Until Released" te recomiendo que la cambies por "Latch When Released".

 

Tienes la lectura de los archivos fuera del while loop por lo que el estado en el que se encuentren sus entradas nunca cambia a menos que se detenga el vi, se cambien sus entradas y se vuelva a correr, es necesario meterlo todo dentro del while loop y dentro de un evento para que puedas realizar la operación varias veces como sea necesario.

 

También puedes crear un evento en donde le solicites al operador el nombre de archivo del documento a abrir, todos los read from measurement file tienen la misma configuración.

 

Tienes operaciones que se repiten para las cuales podrías crear en un sub vi para llamarlo donde se necesite.

Tienes operaciones innecesarias.

Captura oper.PNG

Bueno, no es mi intención desanimarte, ve los tutoriales que hay en la red.

También LabVIEW tiene muchos ejemplos incluidos que puedes utilizar como referencia, no se que versión estés utilizando.

 

Saludos.

0 kudos
Mensaje 4 de 4
2.565 Vistas