Discusiones sobre Productos NI

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

Ayuda con ciclo FOR

¡Resuelto!
Ir a solución

 

Hola  a todos, 

 

quisiera saber si en Labview, es posible editar un ciclo FOR, para conseguir hacer esto:

 

  > for i=10 to 100, step 10;

  > next i 

 

Es decir elegir desde que valor partir, establecer un limite máximo y poder setear el tamaño del paso.

 

Ojalá me puedan ayudar, de ante mano muchas gracias!.

0 kudos
Mensaje 1 de 7
3.021 Vistas
Solución
Aceptado por el autor del tema MauricioAvalos

Hola Mauricio,

 

          Si se puede, en el snippet adjunto está la forma en que se hace. Utilizas un shift register, en lugar de la terminal de iteración (i) y agregas una terminal de condición al ciclo For. Para agregar esta terminal debes dar clic derecho sobre la estructura for y seleccionar la opción Conditional Terminal. A la N le coloqué una constante de 1000 arbitraria porque el ciclo se detiene de acuerdo a lo que suceda primero, que se cumpla la condición cableada a la terminal condicional o el número de iteraciones. El 1000 te permite cumplir la terminal condicional primero. Si tienes alguna pregunta no dudes en escribirme.

 

Saludos,

 

Héctor Rojas

0 kudos
Mensaje 2 de 7
3.015 Vistas

Hola Hector,

 

gracias por la ayuda, me demoré un poco pero conseguí hacer lo que me explicaste. Tengo una sola inquietud, cuando realizo mi iteración, ésta comienza desde el primer escalón y no del nível mínimo.

 

> for i=0 to 100 step 10

>next i

 

La iteración la realiza de esta forma:

 

i=10;

i=20;

...i=100

 

La idea es que la iteración sea:

 

i=0;

i=10;

i=20;

...i=100

 

Estuve buscando alguna forma de corregir eso, sabes algo al respecto?.

 

Saludos, y gracias nuevamente.

0 kudos
Mensaje 3 de 7
2.989 Vistas

Hola Mauricio,

 

       Para eso simplemente necesitas cambiar el 10 que está cableado fuera del ciclo For al Shift Register por un 0, de esta forma el registro comienza en 0 y no en 10.

 

Saludos,

 

Héctor Rojas

0 kudos
Mensaje 4 de 7
2.984 Vistas

perdón, me equivoqué en tipear, lo que hice fue modificar el inicio y efectivamente cambié el 10 por un cero. Pero la primera iteración no es 0 si no que es "0 + escalon"

 

es decir si el escalon es 10 que sea i=0; i=10; i=20..etc

pq en estos momentos si pongo el inicio desde 0 y escalon de 10, pongo un indicador y observo i=10; i=20; i=30...etc

 

Saludos.

0 kudos
Mensaje 5 de 7
2.982 Vistas

Hola Mauricio,

 

      Supongo que lo que quieres hacer es esto:

 

> for i=0 to 100 step 10

> alguna acción

> next i

 

      Es decir, que sea i=0; i=10; i=20..etc. Para esto, lo que debes hacer es realizar esa acción que tú necesitas antes de que le sumes 10. Puedes colocar ahi un indicador antes de la suma y entonces te va a dar el resultado que tú quieres. Ahorita el indicador lo estás colocando después de la suma, si lo colocas antes no debes tener ningún problema.

 

Saludos,

 

Héctor Rojas

0 kudos
Mensaje 6 de 7
2.914 Vistas

Hola Hector,

 

conseguí lo que quería, muchas gracias por la ayuda. Era como decías.

 

Saludos.

0 kudos
Mensaje 7 de 7
2.912 Vistas