Anterior
Dibujo



TARJETA DE CONTROL 7

Cómo manejar la Placa de Control LPT-999E de MOVIT - ELEKIT


Programación no lineal:

Es el momento de realizar programas algo más complejos, introducir condiciones y utilizar varias de las entradas y salidas estudiadas. Usaremos las etiquetas para dirigir el flujo del programa.



ETIQUETAS, SALTOS Y RECURSIVIDAD

59 - Crea un programa como el siguiente para el circuito de la figura. se trata de encender una bombilla durante 3 segundos y mantenerla apagada después otros 3 segundos.

bombilla en S1
recursivo


60 - Ahora pulsa el botón etiqueta "Etiqueta" para introducir un marcador.


En la ventana que se abre teclea el nombre BOMBILLA para esta etiqueta.


ventana etiqueta



61 - Sitúa la Etiqueta al principio del programa anterior.

recursivo 1


NOTA: Una etiqueta sirve para marcar ciertos puntos-clave dentro de un programa. No produce ningún efecto en él. Además, podemos "saltar" desde cualquier punto del programa hasta esa posición, utilizando el comando "Salta a..." que veremos a continuación.



62 - Pulsa el botón salta a "Salta a..." y en la ventana que se abre teclea el nombre de la etiqueta a la que queremos que salte el programa, en este caso, BOMBILLA.

ventana etiqueta


63 -Coloca la instrucción "SALTAR A" al final del programa anterior, que quedará como aparece a la derecha. Guarda el programa con el nombre: recursivo.

recursivo 2


64 - Prueba el programa "recursivo" mediante la orden ejecutar "Ejecutar". Como verás, cada vez que termina vuelve a saltar al principio, empezando de nuevo.


Un programa que se repite indefinidamente se dice que es recursivo.

La única forma de interrumpir este programa es mediante el botón parar "Parar".

recursivo animacion


DIAGRAMA DE FLUJO de "recursivo":

diagrama de flujo de recursivo



PROPUESTA 6: hacer recursivo

65 - Modifica el programa repeticiones1 para que, en lugar de repetirse 3 veces, lo haga de forma continuada. Guárdalo con el nombre recursivo2.


Dibuja el diagrama de flujo de recursivo2.





INTRODUCIR CONDICIONES EN EL PROGRAMA

- SISI...   FIN SI

El comando "SI" introduce una condición en el programa. Si ésta se cumple se ejecuta una acción (o varias) y en caso contrario no se ejecuta. Después de esto, el programa proseguirá leyendo las instrucciones que hay tras la etiqueta "FIN_SI".


Vamos a ver su funcionamiento con este ejemplo:

66 - Monta el circuito siguiente, con un interruptor conectado a la entrada E1 y una bombilla en la salida S1.


NOTA: En lugar de un interruptor puedes usar un cable conectado a +5V, con el que tocar la entrada E1 para activarla.


67 - Abre un nuevo programa en Motores v1.61

circuito usando E1 y S1


68 - Pulsa el botón SISI... y verás que aparece la siguiente ventana, donde se puede escoger la condición. Ésta siempre se refiere a una de las entradas y a si está activada o desactivada.


Vamos a escoger la condición de que la entrada 1 esté activada.

ventana SI


69 - Al escoger la condición aparecen las siguientes dos líneas en el nuevo programa. Entre ambas hay que situar las órdenes que queremos que se ejecuten cuando se cumpla la condición.

ventana 1 condicion


70 - Añadiremos la orden de activar la salida S1 (para que se encienda la bombilla) si se cumple la condición. Para que se aprecie el efecto, el encendido lo prolongaremos durante 2 segundos.


Debemos situar la orden entre SI y FIN_SI para que se ejecute sólo si se cumple la condición.

SI 2


71 - Se cumpla o no la condición, la bombilla debe quedar apagada. Por eso se añade al final la orden de desactivar S1.


Como esta acción debe cumplirse en cualquier caso, se sitúa después de la orden FIN_SI.

SI3


72 - Tal y como ha quedado, el programa sólo es leído una vez.

Queremos que el programa permanezca funcionando, para que la bombilla se encienda siempre que se active E1. Por ello hacemos recursivo el programa añadiendo una etiqueta al principio y un salto a ella desde el final.

SI4


73 - Guarda el programa con el nombre: condicion. Pruébalo para observar su funcionamiento.



DIAGRAMA DE FLUJO de "condicion":

diagrama de flujo de condicion



-SI_SI...SINOSI NO...   FIN SI

La instrucción "SI_NO" sólo puede usarse combinada con el comando "SI". Y debe situarse incluyéndola entre los comandos "SI" y "FIN_SI".


Hemos visto que la orden "SI" presentaba una condición y, si esta se cumplía, se ejecutaba cierta acción. Pues bien, si a continuación añadimos la orden "SI_NO" podemos además hacer que, si no se cumple la condición anterior, se ejecute otra acción distinta. Tras analizarse ambas condiciones, el programa prosigue leyendo tras la etiqueta "FIN_SI".



74 - Vamos a utilizar el mismo circuito anterior pero mejoraremos el funcionamiento del programa.



75 - Crea este nuevo programa, utilizando el comando SI... como hemos estudiado antes.

Se trata de que si la entrada 1 está activa, se enciende la bombilla (Salida 1), pero en este caso se deja activada de forma permanente.

imagen programa con SI-NO


76 - Si pinchas con el ratón sobre algún lugar entre las etiquetas SI... y FIN_SI verás que en la barra de herramientas se "ilumina" el botón SI_NO.

Esto ocurre porque este comando sólo se puede utilizar situándolo entre dichas etiquetas.

iluminacion del comando SI_NO


77 - Añade la instrucción SI_NO.

Sitúala en la posición en que aparece a la derecha.

SI_NO añadido


78 - Tras el comando SINO insertaremos la orden que deseamos que se ejecute cuando NO esté activa la entrada 1, que consistirá en desactivar la salida 1.

orden para la condicion SINO


79 - Finalmente, hacemos recursivo el programa, añadiendo las órdenes oportunas. Así conseguimos que esté siempre preparado para responder  cuanto activemos la entrada 1.

programa completo con SI-NO


80 - Guarda el programa con el nombre condicion2. Pruébalo y observa las diferencias con el anterior (condicion).


Responde ahora a las preguntas:

  • ¿Por qué en el programa anterior (condicion) no se activa la Salida 1 de forma permanente?

  • ¿Y por qué en condicion2 sí puede hacerse?



DIAGRAMA DE FLUJO de "condicion2":

diagrama de flujo de condicion2



PROPUESTA 7: Saltos condicionales

Si combinamos condiciones, etiquetas y saltos, podemos hacer que, dependiendo de que se cumpla o no una condición, el programa salte a una intrucción o a otra. Esto se llama "salto condicional".



81 - Vamos a realizar el programa siguiente. Pero lo haremos paso a paso, para analizarlo a la vez.


programa alterno


82 - El circuito es el siguiente. Necesitas un motor, una bombilla y dos interruptores, conectados de la forma que aparece.


Por supuesto, aunque no aparece en el esquema, para no complicarlo, habrá que conectar las entradas +3V/0/-3V al convertidor de tensión.


A continuación estudiaremos el programa.

circuito salto condicional


83 - En la primera parte del programa, introducimos una condición: si la ENTRADA 1 está activa, el programa salta a la etiqueta BOMBILLA, y si no, salta a donde está la etiqueta MOTOR.

El programa es recursivo para que sea leído continuamente y así se produzca el efecto deseado si se da alguna de las condiciones señaladas.

programa alterno1


84 - A continuación  aparece una serie de órdenes encabezadas por la etiqueta BOMBILLA. Estas órdenes activan la salida 1 para que se encienda la bombilla, y desactivan el motor 1, por si acaso estaba activo.

Tras estas acciones, el programa vuelve a saltar al INICIO para que vuelva a leer la entrada 1, por si ha cambiado de estado.

alterno 2


85 - Un poco más adelante se sitúan otras órdenes precedidas por la etiqueta MOTOR. En este caso se desactiva la salida 1 (para apagar la bombilla si estaba encendida)  y se activa el motor.

Al final, se vuelve a saltar a la etiqueta INICIO.

alterno 3


86 - Entre los distintos bloques del programa se insertan líneas en blanco para distinguirlos. Esto se hace con el comando correspondiente del menú "Añadir una acción".

linea en blanco


87 - Una vez completado el programa guárdalo con  el nombre: alterno.



diagrama de flujo alterno 1



DIAGRAMA DE FLUJO, por partes, del programa "alterno".

Se corresponde con los anteriores bloques analizados en los apartados 83, 84 y 85 respectivamente.


Ver apartado 83
Ver apartado 84diagrama de flujo alterno 2Ver apartado 85



PROPUESTA-ANÁLISIS 8: Depurar el programa

88 - Si en el programa "alterno" anterior  eliminas la línea número 70, que contiene un salto al INICIO,  observarás que sigue funcionando correctamente. Habíamos dicho que esta orden hacía recursivo el programa.


  • ¿Cómo puede ser que siga funcionando igual que antes?

  • ¿Ya no es recursivo el programa?

Para ayudarte a responder a las preguntas, observa cómo quedan el programa, y el diagrama de flujo completos (insertando las partes del motor  y la bombilla en el esquema general). Una vez analizado, contesta a las preguntas anteriores en tu cuaderno.


Modifica tú también el programa y guárdalo con el nombre alterno2.

PROGRAMA "alterno2":
programa alterno 2


DIAGRAMA DE FLUJO de "alterno2":

diagrama de flujo alterno 2



PROPUESTA-ANÁLISIS 9: Condiciones anidadas

A veces es necesario incluir unas condiciones dentro de otras, por ejemplo, vamos a suponer que estamos controlando el movimiento de un ascensor: Estoy en un tercer piso y desde allí quiero subirme al ascensor, que está parado en otra planta. Entonces pulso el botón de llamada. En ese instante, el motor del ascensor debe empezar a funcionar, pero ¿en que dirección? ¿el ascensor tiene que subir o debería bajar? Dependerá al menos de otra condición: que el ascensor en este momento esté situado más abajo del tercero o más arriba.


Cuando una condición depende de otra, se dice que está "anidada".


Pero en Motores v1.61, si en un programa creas una condición, con el comando SI... FIN_SI, verás que entre estas dos órdenes no puede incluirse otra nueva condición del tipo SI...FIN_SI.


¿Cómo se puede introducir una condición dentro de otra? Utilizando el salto a una etiqueta, como se hizo en el programa anterior. Vamos a verlo en el programa siguiente.


89 - Este programa es una modificación del anterior para controlar que un motor gire en un sentido o en otro.

Copia el programa y guárdalo con el nombre control-motor.

Esta vez no explicaré el programa, analízalo tú para entender su funcionamiento. Observa que se ha dividido en secciones, intercalando líneas en blanco para que sea más  fácil observar las partes.


RESPONDE en tu cuaderno a las preguntas siguientes:


90 - Fïjate en las entradas y salidas que se utilizan. ¿Cuáles son?


91 - ¿Qué componentes eléctricos hace falta?


programa con dos condiciones


92 - Dibuja el esquema de las conexiones del circuito basándote en el modelo de placa siguiente.

modelo placa


93 - Dibuja el diagrama de flujo del programa.



94 - Monta el circuito y comprueba su funcionamiento.




Arriba
Anterior
Dibujo