Funciones
PLCs programacion con logo (Funciones)
CAPITULO 2 : FUNCIONES
Las Funciones (o Bloques) son todas aquellas condiciones que se tienen que cumplir para que una salida determinada se active.
La definición de Siemens es: "Un bloque en LOGO! es una función que sirve para convertir información de entrada en información de salida."
Retomando nuestro programa base de las dos bombillas:
En un principio, las condiciones que se deben cumplir para que se activen las salidas de las bombillas, es que esté pulsado su pulsador correspondiente. Aquí podríamos decir que el propio pulsador haría de bloque, aunque en realidad no estemos usando ninguno.
Pero si lo que quisiéramos es que las bombillas necesiten para encenderse que los dos pulsadores estén pulsados a la vez, nuestro programa cambiaría. Tendríamos que añadir una función, mas en concreto una función "Y" que en un circuito convencional equivaldría a poner esos dos pulsadores en serie con las dos bombillas.
¿Que pinta tiene una función en nuestro programa LSC?
Pues esta:

1, 2, 3 y 4 son el numero de entradas que se le pueden conectar al bloque "Y" y si todas las entradas están activas, se activará la salida Q del bloque. Esta salida se conecta después a una salida o a otro bloque.
Si solo usamos por ejemplo 2 de las entradas disponibles, LOGO! pasará olímpicamente de las otras dos, podríamos decir que las pone a "1" él automáticamente para que la función pueda trabajar cuando nosotros le pulsamos en la entrada 1 y 2. En el LOGO! estas entradas sin conexión aparecen como (X).
O esta:

O esta:

O esta otra:

O esta otra (que es la que uso en mi programa para simular amanecer/anochecer):

Como veis cada funcion es un mundo. En LOGO! actualmente existen 39 tipos diferentes de funciones. Desde las mas basicas (Y, O) hasta las mas complejas como por ejemplo esta rampa analógica. Y un LOGO! (la ultima versión 0BA6) como máximo puede manejar 200 funciones.
Cada función dispone de unas condiciones para activarse o desactivarse, y algunas de unos parámetros que se pueden modificar como tiempos, limites de conteo, sentido de contaje etc etc.
Como dije en el capitulo anterior LSC incorpora una ayuda buenísima donde aparecen las diferentes funciones y cómo utilizarlas. :)
Ahora vamos a complicar un poco nuestro programa con un ejemplo en el que van a aparecer 5 funciones que a mi me parecen basicas y que aparecen en casi todos los programas:
Texto del problema:
Tenemos dos bombillas y 3 pulsadores.
Pulsando el pulsador 1, se encenderá la bombilla 1 y permanecerá encendida hasta que alguien pulse el pulsador 3.
Pulsando el pulsador 2, se encenderá la bombilla numero 2, pero después de que pasen 30 segundos se apagará sola.
Si pulsamos los dos pulsadores a la vez, las dos bombillas de encenderán y se apagarán solas a los 59 segundos.
El programa sería este:

Explicación:
Si pulsamos I1 (pulsador 1) como veis activamos un relé autoenclavador (entrada S de la función), que a parte de ser mi función preferida, actúa como una memoria (con una pulsación de I1 se activa y con una pulsación de I3 se apaga). De aquí la señal viaja hasta una función O (derecha). Esta función determina quién es capaz de activar la bombilla 1. Y como vemos hay dos condiciones en las que la bombilla 1 se enciende. Una es el relé autoenclavador que decíamos, la otra es el temporizador del minuto. "O" la una "O" la otra activarían la salida de la bombilla 1.
Respecto a la bombilla 2 también tiene una función "O" que indica que hay otras dos condiciones que la encenderían. Como vemos una es el temporizador del minuto y la otra el temporizador de los 30 segundos.
Aparece también otra función un poco especial, un flanco negativo, que explicaré dentro de un momento. Como veis, junto con el pulsador 3, forman las dos condiciones que "apagan" el rele autoenclavador. (entrada R de la función)
Y por último los temporizadores. Existen varias funciones diferentes de temporización, antes veíamos el esquema del retardo a la conexión; pero para esto he elegido el "Temporizador de luz de escalera" que como su nombre indica, funciona igual que la luz del portal de casa.
El de 30 segundos es activado por I2.
El del minuto es activado por una función "Y", que si nos fijamos tiene conectados a I1 e I2. De esta forma, sólo cuando I1 e ("Y") I2 estén pulsados a la vez, se activará el temporizador del minuto. Y será el flanco negativo de este temporizador el que apague la bombilla 1.
Flancos:
Los flancos son señales especiales. Se refieren al momento exacto en que una señal cambia de estado, bien sea de "0 a 1" (flanco positivo) o de "1 a 0" (flanco negativo). Son muy muy útiles a la hora de programar, te permiten condicionar, por ejemplo, el encendido de algo sola y exclusivamente cuando otra u otras cosas ya se hayan apagado (o encendido).
En el caso de nuestro programa, ese flanco negativo viene a decir que: Cuando el temporizador del minuto pase de estar activo a estar desactivado, el flanco negativo enviará una señal al reset del relé autoenclavador, lo que apagará la bombilla 1. (así conseguimos que se apaguen la 1 y la 2 a la vez; la 1 de esta forma, la 2 porque está supeditada al estado del temporizador del minuto a través de la funcion "O"
NOTA A PARTE: Si os fijáis en la imagen del programa, abajo donde salen las entradas en colo azul, I1 aparece con un símbolo de interruptor en vez de pulsador. Esto es por que a la hora de simular el programa sería imposible activar a la vez I1 e I2, ya que con el ratón solo podemos pinchar en una de las dos. Poniendo I1 como interruptor, primero pulsamos ésta, que se queda activada, y luego ya pulsamos I2 que actuará como pulsador, y activará la funcion Y, al recibir ésta, señal de ambos pulsadores. Justo después de pulsar I2, volvemos a pulsar I1 para desactivar esa señal y dejar que el programa continúe como si I1 hubiera sido un pulsador.
Ahora os dejo los esquemas de conexión de cada función que aparece en el programa para que podáis ir atando cabos :)
Funcion "Y" (AND): Ya vimos la imagen antes.
Funcion "O" (OR):

Funcion Relé Autoenclavador:

Interruptor de alumbrado para escalera:

Flanco Negativo:

Aquí cuando dice ciclo, hay que tener en cuenta que un ciclo, estamos hablando de milisegundos. Un ciclo es el tiempo que tarda el autómata en revisar el estado de todas las entradas de un programa, interpretar las funciones y activar las salidas pertinentes. Anda en torno a los 45 milisegundos. (depende claro está de lo grande que sea el programa).
Y para terminar: todos aquellos parámetros que tiene una función que no se pueden asociar a una entrada o a otra función, como son por ejemplo los tiempos o los límites de un contaje, se modifican con el LSC. Cuando añades una función a un programa, dando doble click en ella se despliega la ventana de edición de la función, donde puedes poner todos esos parámetros. Ejemplo:
Ventana de edición del temporizador de los 30 segundos:

Explicación:
El título, B005 es que es el bloque numero 5 dentro del programa.
Nombre de bloque: es para darle un nombre al bloque, de esta forma si lo tenemos que buscar en un futuro para modificarlo desde el propio LOGO! podremos buscar su nombre en vez de B lo que sea.
Retardo a la desconexión: es el tiempo que la luz permanece encendida cuando este temporizador la controla.
Tiempos de advertencia: Tiempos en los que la función te puede avisar de que se va a desactivar, en este caso no los utilizamos así que los dejamos en 0.
Remanencia: esto lo traen casi todas las funciones de LOGO!, otras ya son remanentes de por si. Sirve para que en caso de que se vaya la luz, LOGO memoriza el estado de esa función y cuando vuelve la luz la pone en el valor que tenía antes.
Protección activa: Para ponerle una contraseña a la edición de esta función en concreto. (esto se suele usar en programas comerciales, por ejemplo el control de un robot, en el que hay funciones que el propio usuario puede modificar, pero otras que no, por que si lo hiciera se iría todo a tomar por ... :) )
Las ventanas de edición cambian dependiendo del tipo de función pero en general son muy fáciles de interpretar.
Bueno y ya está. En el próximo capítulo hablaremos de algunas funciones especiales y "rarunas" y de las cosas raras en general de LOGO!.
Salu2.
Cuélebre.







