Una de las instrucciones más habituales en un lenguaje de programación de alto nivel, es la sentencia FOR-NEXT. Para nuestros autómatas, tenemos la instrucción LOOP en Step 7.
Para comenzar, podrías leerte el post en el que ya hablábamos de ello. Podrás encontrar un ejemplo también en ese post. Pero vayamos nuevamente y repasemos esto de los loop en step 7.
Contenido
Loop en Step 7
La forma de operar es la siguiente: LOOP META. Ya está, no hay más… más o menos.
La idea es que cuando llega la ejecución de la operación se lee el contenido del ACU1, se le resta uno, y si aún hay algo que rascar (es decir, no es cero), se realiza un salto hasta la META.
¿Y cómo hago un FOR NEXT con LOOP en Step 7?
Bien, la fórmula de la Coca-Cola esta vez es muy sencilla:
L Numero_Iteraciones –> Cargamos cuántas veces queremos hacer el loop
NEXT: T Indice_Iteraciones –> Lo transferimos a la variable auxiliar que lleva la cuenta de vueltas
<<<Código que queremos que se ejecute N veces>>>
L Indice_Iteraciones –> Leemos el número de vueltas que llevamos y lo cargamos en el ACU1
LOOP NEXT –> Restamos una unidad a lo cargado en el ACU1, es decir, al número de iteraciones y saltamos a la meta NEXT si el resultado no es cero.
Yo he llamado a mi meta NEXT para que sea como en los lenguajes de alto nivel, pero podemos llamarle PEPE si quieres.
Vamos, que lo que hacemos es inicialmente cargar a tope con el número de iteraciones a una variable auxiliar que será nuestro índice. Por ejemplo 10.
Ejecutamos el código repetitivo y lo último que hacemos es cargar este índice nuevamente. Luego, al ejecutar la operación LOOP, restaremos una unidad a ese 10 inicial, teniendo en el acumulador entonces 9 y salta a la meta NEXT.
Si te fijas, lo primero que hacemos es volcar nuevamente este 9 al indice… ejecutaremos, cargamos el 9, restamos uno en el loop y saltamos a NEXT, teniendo un 8… y así sucesivamente.
¿Fácil no?, ¿vamos con el vídeo?
He realizado un pequeño ejemplo para ver este tema. Crear el factorial de un número entero. Te dejo con él.
Dime tu opinión
¿Qué te ha parecido? ¿Te ha gustado o lo ves útil?
Espero tus comentarios.
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
3 Comentarios
Bucles bucles bucles… uno de los fundamentos de la programación en cualquier plataforma y lenguaje.
Un saludo Iñigo.
Gracias Iñigo!!!
Fabuloso, Como siempre.
Gracias por tu tiempo!!!