ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

array maximo a tiempo

    Hola.  tengo el vi que adjunto, dentro de una case y quiero obtener el valor máximo de los arrays cuando se cumpla lacondicion,m pero no se porque hasta que no apago y vuelvo a encerder el boton del case que incluyo todo este vi, no me devuelve los valores maximos, pero si que me guarda. ¿A que se debr?Gracias
0 Kudos
Message 1 of 6
(3,739 Views)
Hola Jewel, no me ha quedado nada claro que es lo que te pasa. Tienes un bucle WHILE que genera un array de valores y que se para con una condición A. Cuando este bucle while se detiene al cumplirse la condición A, se pasa a una estructura CASE que actua en función de otra condición B. ¿de que condición hablas, de la A o de la B?. El boton case que dices supongo que es el que se llama "guardar datos", pero no es posible que puedas pulsar el boton cuando estas ejecutando el vi y te de un valor con sentido, porque si el flujo de datos ha llegado hasta la ultima estructura CASE, el programa se para, y si el flujo del vi no ha llegado hasta el CASE, que pulses el interruptor o no, no tiene ningun efecto porque el flujo de datos no ha llegado hasta la estructura CASE y no se va a ejecutar. ¿que botón es?

Espero tu respuesta.
0 Kudos
Message 2 of 6
(3,728 Views)
Perdona, no me he explicado bien. Es que todo ese código en el programa original esta dentro de un case con un botón booleano. Gracias.
0 Kudos
Message 3 of 6
(3,725 Views)

Hola Jewel. La parte del código que me has pasado referente a la obtención de los valores máximos/mínimos y a la escritura en fichero no parece que tengan ningún error, así que tiene que estar en el resto del programa (la generación de arrays y la parte de código que no tengo). Te propongo dos cosas:

1.- Puede haber un error en el establecimiento de las condiciones del bucle WHILE y CASE del código que me has pasado. Es la misma condición en los dos casos pero en el bucle WHILE, el ultimo bloque de la condición es un "menor que" y en el CASE es un "mayor que". Bajo estas condiciones, el programa no va a entrar en el CASE que obtiene los valores máximos y mínimos y escribe en fichero. Prueba a cambiarla, porque al no inicializar los arrays en cada ejecución del WHILE, se mantienen los valores anteriores en los registros de desplazamiento y esto puede explicar el comportamiento tan raro que tienes.

2.- Si con esto no mejora, vas a tener que pasarme tu código completo, porque solo con este trozo no puedo hacer nada.

Espero que esta información te sea útil.

Un saludo,

0 Kudos
Message 4 of 6
(3,708 Views)
Hola.  A ver, yo lo que quiero es que cuando acabe el while, que es el que va introduciendo los datos en el array,obtener el dato mayor d elos arrays, por eso tenía conduciones contrarios una mayor y la otra menor. No se me ocurre como hacerlo de otra forma. Gracias.
0 Kudos
Message 5 of 6
(3,703 Views)
Vale, pero si pones condiciones en el while y en el case, lo que haces es que cuando salga del while porque se cumple la condiciñon, no entre en el case porque no se cumple. Pon la misma en las dos o quita la segunda (que no hace nada) porque el case no se ejecuta hasta que no le llega el flujo de datos, y eso no pasa hasta que no termina el while.
Prueba esto y comentame lo que pasa. Un saludo,
0 Kudos
Message 6 of 6
(3,697 Views)