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.

Discusiones sobre Productos NI

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

problema al activar distintos for

Hola soy nuevo en labview y  me tope con un problema el cual estoy seguro estoy tratando de resolver de una manera erronea, espero me puedan ayudar, veran estoy intentando ejecutar con un boton un for, ese for toma 10 segundos en ejecutarse, ahora bien, mi problema es este, tengo otro boton y quiero que al pulsarlo se ejecute otro for Mientras esta corriendo el anterior, y encuentro que esto no es posible, me imagino que labview entra al for y mientras esta ahi no escucha nada mas, tengo la duda de como podria resolver este problema de igual manera y abusando de la disponibilidad de todos,  me pregunto si existe la posibilidad de poner algo como un temporizador, y en el segundo 0 ejecutar un for(10s de ejecucion) 2 segundos despues del primero (mientras se ejecuta el otro) ejecutar otro for.
adjunto una imagenvi_for.JPG

0 kudos
Mensaje 1 de 6
4.270 Vistas

Julio_alba escribió:

Hola soy nuevo en labview y  me tope con un problema el cual estoy seguro estoy tratando de resolver de una manera erronea, espero me puedan ayudar, veran estoy intentando ejecutar con un boton un for, ese for toma 10 segundos en ejecutarse, ahora bien, mi problema es este, tengo otro boton y quiero que al pulsarlo se ejecute otro for Mientras esta corriendo el anterior, y encuentro que esto no es posible, me imagino que labview entra al for y mientras esta ahi no escucha nada mas, tengo la duda de como podria resolver este problema de igual manera y abusando de la disponibilidad de todos,  me pregunto si existe la posibilidad de poner algo como un temporizador, y en el segundo 0 ejecutar un for(10s de ejecucion) 2 segundos despues del primero (mientras se ejecuta el otro) ejecutar otro for.
adjunto una imagenvi_for.JPG


Hola Julio_alba:

 

Esto lo puedes hacer de forma muy sencilla utilizando dos bucles que se ejecutarán en paralelo, y añadiendo una variable local de stop.

Te adjunto figura para mayor claridad.

Suerte.

Dos bucles paralelo.png

_________________________________________
https://aulamoisan.uva.es

Mensaje 2 de 6
4.258 Vistas

hola que tal muchas gracias 😃
y si en lugar de un boton, necesito que el segundo for se ejecute pasado x tiempo? aun cuando el anterior se este ejecutando?

0 kudos
Mensaje 3 de 6
4.249 Vistas

Julio_alba escribió:

hola que tal muchas gracias 😃
y si en lugar de un boton, necesito que el segundo for se ejecute pasado x tiempo? aun cuando el anterior se este ejecutando?


Para conectar los dos bucles, que son independiente, puedes utilizar variables locales.

 

En tu código, y manteniendo los dos botones tal como están en el diagranma, lo que puedes hacer en el primer ciclo es activar el botón 2 (mediante una variable local) cuando ha pasado un tiempo desde que has pulsado el botón 1.

 

La ventaja de LabVIEW es que puedes experimentar para comprobar que el programa realiza lo que tú deseas.

Suerte...

_________________________________________
https://aulamoisan.uva.es

Mensaje 4 de 6
4.247 Vistas

Hola:

 

Yo tengo un problema similar estoy tratando de adquirir las mediciones de voltaje que estan por debajo o igual a un voltaje de referencia usando una DAQ, hice un programa con un doble for para guardar dichas mediciones en un ARRY y funciona como yo quiero, el problema es cuando meto este doble de arreglo de FORs al case (que a su vez esta dentro de un while) que me determina que el valor de lectura esta debejo o igual del valor de referencia, en este cso el programa solo guarda la medicion pero la coloca en toda la mtriz y si llega un nuevo valor que hay que guardar este borra la matriz y nuevamente la llena con dicho valor.

 

Al parecer necesito una especie de interrupcion en los ciclos para que vaya llenando de medicion en medicion cada vez que la condicion de que dicha medicion este por debajo del valor de referencia pero por lo que he buscado no hay manera de pausar dichos ciclos.

 

Adjunto imgen del codigo  

 

Saludos. 

0 kudos
Mensaje 5 de 6
3.921 Vistas

Podes usar estructuras de eventos para manejar que el ciclo solo itere cuando ese evento se ejecuta o sucede. De la misma manera, lo mas recomendable es no usar el DAQ assistant, y setear la configuracion utilizando los VIs de DAQmx. Por ejemplo, con el DAQmx Trigger podr[ias ahorrarte toda la logica utilizada para capturar un voltaje menor o igual a cierto limite,

Mensaje 6 de 6
3.903 Vistas