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,451 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,440 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,437 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,420 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,415 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,409 Views)