LabView - Que While debo detener primero

 
Vista:

Que While debo detener primero

Publicado por Angel (164 intervenciones) el 24/06/2010 19:59:39
Primero debo decir que los tres funcionan en paralelo

El primero calcula una determinada salida
El segundo en base a la salida mantiene encendido un led utilizando un elapsed time
El tercero genera una salida a una grafica cada 5 seg con un Delay

El problema es que no puedo cerrarlos con un solo STOP boolean, he utilizado Variables locales en cada uno de ellos pero tanda en detenerse aprox los 5 seg.

Y la verdad no quisiera tener 3 Stop por ello necesito de su ayuda.

Ojala puedan ayudarme

Esta es la imagen

http://img704.imageshack.us/img704/9640/detenlo.png
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Que While debo detener primero

Publicado por eZ (194 intervenciones) el 24/06/2010 22:25:52
Tu problema se resuelve utilizando una arquitectura mas eleborada... tal como Queued Producer-Consumer... entre otros
coloca tu código en Megaupload (de preferencia) para tenerlo y en base a lo que ya tienes hecho proponer una solucion

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que While debo detener primero

Publicado por Moisés (1 intervención) el 25/06/2010 11:27:41
Hola:

Tal como lo tienes en la figura creo que nunca se van a parar los While porque el stop está fuera de ellos.

Pienso que lo debes hacer con variables locales, y para que no tarde tanto en parar creo que debes modificar el primer While que espera 5 sg y es el que te ralentiza la detención del programa. Puedes poner un tiempo menor en el delay (100 ms) y generar la gráfica cuando pasen 5 segundos que lo haces con una estructura case (True/False), analizas si han pasado 5 segundos desde la última representación y en true metes prácticamente todo lo que tienes en ese bucle. En False no pones nada. Así solamente representa cada 5 segundos, pero el bucle está ejecutándose constantemente (cada 100 ms) y se te parará el programa instantáneamente.

Saludos.. Moisés
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que While debo detener primero

Publicado por Angel (164 intervenciones) el 25/06/2010 17:46:28
Gracias por sus comentarios.

Lo que pasa es que necesito tener la opcion de graficar la salida y tambien guardar estos datos por medio de un "write spreadsheet " pero sin la necesidad de para el programa.

He visto que algunos loops tiene una constante para que no sea posible detenerlo, pero enseguida existe un loop que tiene un control y cuando el control es precionado automaticamente se detiene todo el programa, por que y para que aun no lo descubro.

He tenido la posibilidad de ver un programa con hasta 20 loops while y solo 3 tienen un control y los demas solo constantes T/F dependiendo de su configuracion, y esto me confunde un poco.

Gracias y tratare de llevar a cabo sus consejos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que While debo detener primero

Publicado por Untzilla (43 intervenciones) el 25/06/2010 19:35:05
Kaixo Angel.

En primer lugar te agradeceria que subieras el programa como te indica "EZ" ya que en la imagen no es muy buena.

En primer lugar te quiero decir que las funciones que tienes fuera de los "While Loops" solo se te van a ejecutar una vez por lo que al iniciar el programa no tienes el Stop Activado no se te parada nunca. Ademas el graficado solo te hara de un punto.

Se puede apreciar en la imagen que los tres estados son paralelos, pero a la vez son uno dependiente del otro ( por los variables locales). ¿Te has planteado realizar un solo While Loop?

El estado de "Control del Tiempo PID" y "Display" se ejecutan en multiplos de 100ms (¡OJO! esto no quiere decir que se ejecuten cada 100ms, es decir, 100ms-200ms-300ms...) y el estado de "Control PID" cada 5sg. ¿Puedes utilizar un contador que cuente 50 iteraciones y que cada 50 iteraciones realize el "Control PID"? De este modo con un STOP te bastaria. Mira la siguiente imagen:

http://img138.imageshack.us/i/dibujozn.jpg/

Espero de que te sirva de ayuda.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que While debo detener primero

Publicado por Angel (164 intervenciones) el 29/06/2010 04:59:18
Bueno aqui esta parte de lo que mas o menos entendi solo que no se por donde empezar para graficar.

http://rapidshare.com/files/403713751/Otra_forma_de_PID.vi.html

perdo pero no inclui el archivo de variables globales, espero me puedan aconsejar y gracias por sus comentarios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Buena idea

Publicado por anjirus (164 intervenciones) el 30/06/2010 23:27:17
Si por supesto.

Asi no tengo la necesidad de un contador ajeno al while.

Gracias por tus comentarios, los puse en practica y esta perfecto , ahora solo me falta generar una grafica temperatura VS tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar