Discusiones sobre Productos NI

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

activar un ciclo for

Hola, este es mi problema: tengo un ciclo for y quiero que haga la suma del anterior con el actual solo cuando sea verdadera una condición, es decir, ligarle a su stop un true, pero lo que pasa es que cuando se cumple la condición se queda activado el true y por lo tanto la suma se sigue haciendo continuamente. Hay alguna foma de que cuando se cumpla una condición se active y desactive automaticamente como si fuera un switch?, es decir, que cuando se cumpla la condicion no se mantenga el true sino que cambie de true a false, para que el ciclo for nada mas haga una vez la suma. Gracias.
0 kudos
Mensaje 1 de 16
4.215 Vistas

Dulcy:

 

Como estas, amigo/a.

Te mando este program, a ver si se comporta como lo quieres.

Como simpre, si tienes mas preguntas/comentarios, hazlo.

 

Santiago

0 kudos
Mensaje 2 de 16
4.211 Vistas
Hola, la condición de paro en ciclos FOR está disponible a partir de la versión de LabVIEW 8.5. Te adjunto un VI sencillo que te ayudará a realizar tu aplicación.

Si cuentas con una versión de LV que te permita hacer uso del Stop en ciclos FOR solo da clic derecho sobre el contorno del ciclo FOR y selecciona Conditional Terminal.

En caso de no contar con esta opción yo te recomiendo que utilices un ciclo WHILE en logar del ciclo FOR, te adjunto también el mismo VI pero con WHILE en lugar de FOR.

Saludos.
Arturo Gómez | Applications Engineering
Certified LabVIEW Associated Developer

National Instruments Latin America
01-800-010-0793
ni.com/support
Descargar todos
0 kudos
Mensaje 3 de 16
4.196 Vistas
Hola, la version de labview que tengo es la 8.0, por favor denme alguna opción que se aplique a la versión que utilizo. El problema es que solamente quiero que se haga una suma SOLO UNA VEZ (suma acumulativa con los shift registers) aunque se mantenga el caso del case fijo. Gracias.
0 kudos
Mensaje 4 de 16
4.188 Vistas
No sé si me explique, o no sé si me pueden informar si hay alguna opción en donde se cumpla una condición y se prenda y se apague algo al instante, no que se quede prendido, esto sería para activar el ciclo o el while solo una vez mientras se cambia de caso, gracias.
0 kudos
Mensaje 5 de 16
4.187 Vistas
Dulcy, en los VI que te mandé se desactivan los Loops cuando se cumple la condición de paro, que es la salida del comparador -menor que-.
Arturo Gómez | Applications Engineering
Certified LabVIEW Associated Developer

National Instruments Latin America
01-800-010-0793
ni.com/support
0 kudos
Mensaje 6 de 16
4.177 Vistas

Dulcy:

 Tienes aqui la version 8.0. No se si es lo que estas explicando. Si puedes, danos un ejemplo mas concreto con números y con resultados que esperas.Por ejemplo:Primer caso….numero generado es 1.25, paso al shift registerSegundo caso….numero generado es 2.5…sumo al caso anterio si es que condicion x se cumpla….resultado en shift deberia ser 3.75…etc  Santiago
0 kudos
Mensaje 7 de 16
4.171 Vistas
Dado que tu versión de LV no cuenta con la opción de FOR con condición de paro, te recomiendo utilices un ciclo WHILE. POr favor revisa los VIs que te mandé para que puedas comparar FOR contra WHILE y veas que no existe problema alguno.

Existen múltiples soluciones a tu problema, te puedo brindar un pseudocódigo muy simple que te puede ayudar.

1. Condiciones Iniciales.
Tamaño del registro: n
Posiciones: [0]=0
[1]=0
.
.
.
[n-1]=0
[n]=0
2. Ejecución del código
3. Almacena dato en el registro
4. [n] = 0 ??
SI: Se terminó de llenar el registro. Se detiene la ejecución activando la condición de paro del WHILE
NO: No se ha terminado de llenar el registro, la ejecución continua


La salida del comparador NOT EQUAL TO 0 se conecta a la entrada del stop. La condición de paro del ciclo WHILE debe estar en el modo STOP IF TRUE,

Esto solo te funciona si se ejecuta una vez nada más.

Espero puedas aterrizar este pseudocódigo a tu problema.

Saludos
Arturo Gómez | Applications Engineering
Certified LabVIEW Associated Developer

National Instruments Latin America
01-800-010-0793
ni.com/support
0 kudos
Mensaje 8 de 16
4.169 Vistas
Hola les envío mi vi del problema. El caso de la estructura case llega por medio del daq assistant. Pero, para que cambie de caso, el daq assistant tarda un poquito, es decir, se activa el caso, sale el uno, y se suma, pero el uno de la estructura case se mantiene un ratito en lo que cambia el voltaje de entrada. En ese ratito, se sigue haciendo la suma acumulativa,sigue y sigue sumando, hasta que se vuelve cero la condición. Por eso preguntaba si no habia algun bloque que se activara y se desactivara al instante de que sale el número de la estructura case. Solamente estoy trabajando con números 1, es decir, en todos mis casos de la estructura case sale un uno, por eso es que puedo hacer la condición de la and para mi ciclo while. Espero y me haga entender mejor. Por favor avísenme si me entendiero y si me pueden dar otra solución a mi problema. Gracias.
0 kudos
Mensaje 9 de 16
4.163 Vistas
Hola Dulcy, realmente no logro visualizar el propósito de tu VI, lo estuve analizando y encontré casos de logica ineficiente. Como es en el CASE y en tu condicón de paro para el While. La parte de código que está dentro del WHILE siempre se ejecuta ya que no hay forma de que se detenga, es decir se queda ciclado por que solo lee una vez la condición de paro.

Con todo gusto te ayudo con tu aplicación si me explicas mejor que es lo que tratas de resolver con tu VI, es decir, ¿cuál es el problema a atacar con LabVIE ?

Arturo Gómez | Applications Engineering
Certified LabVIEW Associated Developer

National Instruments Latin America
01-800-010-0793
ni.com/support
0 kudos
Mensaje 10 de 16
4.154 Vistas