Mostrando entradas con la etiqueta lógica de relés. Mostrar todas las entradas
Mostrando entradas con la etiqueta lógica de relés. Mostrar todas las entradas

miércoles, 4 de abril de 2012

Programación de PLCs (2): Relés especiales

En esta tercera entrega práctica sobre lógica de relés utilizando el simulador TRiLOGI, hablaremos del uso de relés especiales:
  • Salidas de tipo latch y unlatch 
  • Uso de memoria interna, o relés auxiliares 
  • Contactos que detectan cambios, o flancos, de una entrada. 
Al final de esta lección, aplicaremos todos los elementos mencionados para realizar un programa que enciende y apaga una carga utilizando un único pulsador (contrariamente al ejemplo de la lección anterior, que usaba un pulsador para arrancar y otro distinto para parar).

Salidas de tipo latch y unlatch

Como vimos en la lección anterior, la lógica con autoretención es similar a un flip flop. Para algunas aplicaciones, es ventajoso expresar al flip flop mediante dos condiciones lógicas, una para activar al flipflop, y la otra para desactivarlo.

Repetiremos nuestro ejemplo de arranque-parada usando esta forma, que utiliza dos bobinas especiales.

Usaremos nuestro ejemplo anterior de arranque-parada, en dónde ya tenemos definidas las etiquetas que utilizaremos ahora. Agregaremos una nueva etiqueta de output, a la que llamaremos Salida2

Comenzamos una nueva línea agregando un contacto de Arranque. A la salida le conectaremos una bobina "de Función" (9). En el menú que aparece para elegir la función deseada, escogeremos la opción número 7 (Latch), y en la tabla, la salida "Salida2"

Ahora agregamos una línea más, comenzando con un contacto de Parada, y activando una bobina de salida de Función, escogiendo la opción 8 (Clear), para la misma salida, "Salida2". Si hicieron todos los pasos bien, lo que obtendrán es así:



Ahora es el momento de simularlo para ver que las dos versiones de la lógica de arranque-parada funcionan exactamente igual.

Uso de relés auxiliares

Hasta ahora, todos los programas que escribimos afectan directamente salidas del PLC. En una situación de control real, las salidas estarán conectadas a elementos reales (lámparas, motores, actuadores, etc.). Muchas veces queremos realizar una lógica intermedia que no está directamente relacionada con una salida. Para ello utilizamos los relés internos.

Vamos a alterar el circuito de control de "Salida1". Se ha agregado un control maestro, si este control está activo, la salida estará activa sin importar el estado de Arranque y Parada.

Esta nueva lógica puede ser representada de varias maneras. Nosotros utilizaremos un circuito que utiliza relés auxiliares.

1) Definimos dos etiquetas nuevas. En la tabla, agregamos bajo la categoría Inputs, la entrada "Maestro", y bajo la categoría Relays, al relé "Aux1"

2) Borramos la bobina de salida Salida1 (Doble click sobre la bobina, y apretamos "DEL")

3) Agregamos, en su lugar, una bobina, escogiendo "Aux1" de la categoría Relays.

4) Agregamos una nueva línea. Colocamos contactos de Maestro y Aux1 en paralelo, para activar la Salida1.

5) Si todavía tienen la lógica de arranque-parada para Salida2 con latches, la podemos eliminar para ver la lógica nueva con mayor claridad. Para eso, hacemos click derecho sobre la lógica y elegimos la opción de "Eliminar Circuito", y en el menú introducimos la opción de borrado de los circuitos 2 a 3.

En la figura siguiente pueden ver cómo queda la lógica de arranque parada con comando maestro y relé auxiliar:


Simulemos el circuito. Si activamos en forma permanente al control maestro (botón derecho del mouse), la salida queda activa todo el tiempo sin importar el estado de Arranque y Parada. Qué ocurre si activamos a "Maestro" sólo momentáneamente?

Detección de Flancos

Antes de hablar de detección de flancos debemos hacer un ligero desvío para comentar qué es el I/O Scan (barrido de entradas y salidas). La lógica del PLC funciona de la siguiente manera:
  1. Se inspecciona el estado de todas las entradas.
  2. Se realiza la lógica que dicta nuestro programa
  3. Se actualizan los estados de las salidas.

Uno de los problemas que se presentan en un programa de PLC es el hecho de que la escalera es barrida en forma secuencial. Si bien las salidas serán actualizadas al final del ciclo, la representación interna del estado de dicha salida será actualizada a medida que se recorre el diagrama de escalera.

Esto se demuestra en los programas siguientes:

En el programa 1, la Salida2 es activada y desactivada a través de la entrada "Arranque". No se ven cambios visibles en el estado de la Salida2:


En el programa 2, en cambio, la Salida1 es activada. Simulen y analicen detenidamente ambos ejemplos:


El contacto Salida2 del programa 2 estuvo activo durante parte del scan, y fue suficiente para activar la Salida1. Surge aquí una ventaja del circuito de arranque parada realizado con contactos, con respecto al realizado con instrucciones de tipo Latch y Clear. En la lógica de contactos, queda bien definido el comportamiento de la lógica, incluso si tanto Arranque como Parada están activos.

En cambio, en la lógica por latch, si tanto la condición de arranque como la de parada son válidas, el comportamiento del programa dependerá del orden en que se hayan escrito las instrucciones. La última instrucción "gana". Así, si se escribió primero una instrucción Latch y luego una instrucción Clear, y ambas son ejecutadas, la salida no será activada. Obviamente si fuera al revés, es decir, la instrucción Latch estuviera después, la situación sería distinta y la salida sí se vería activada.

Una vez comentada la lógica del Scan, veamos la función de detección de flancos.

La idea de este contacto especial es detectar un cambio en una entrada de abierto a cerrado. Si esto ocurre, el contacto detector de flanco estará activo durante un scan completo.

A continuación, utilizaremos todos los elementos aprendidos para construir un programa de arranque-parada que funciona con un solo pulsador. Cada pulsación invierte el estado de la salida, si estaba apagada pasa a estar encendida, y viceversa. Algunas implementaciones de este tipo de lógica tienen el problema que si se deja el pulsador apretado, la salida oscila rápidamente cambiando constantemente de apagado a encendido y viceversa.

La lógica que veremos a continuación no presenta este problema. El contacto de flanco produce el pulso de un sólo scan de duración. Posteriormente se activa o desactiva un relé interno dependiendo del estado actual de la salida. Por último, se transfiere el estado del relé interno a la salida:


Simulemos ahora el programa, observen el comportamiento de los elementos del mismo, observen también qué ocurre si se mantiene presionado el pulsador durante un tiempo largo en cada una de las dos transiciones.

En la próxima entrega hablaremos de temporizadores y contadores.


lunes, 12 de marzo de 2012

Programación de PLCs (1): Arranque-Parada

Cuando empecé a planificar los contenidos de esta serie de artículos sobre PLC, era para mí obvio que debía contar con ejemplos prácticos (según la tradición de la revistucha Lúpin).

Así es que busqué simuladores de PLC gratuitos en la Internet y… encontré unos cuantos. Me decidí por uno en especial porque es gratuito y no tiene limitaciones de uso (se pueden guardar y cargar programas en la versión libre). De todos modos muchos de los ejemplos son bastante simples y si Uds. prefieren o tienen acceso a otro simulador (o a un PLC real), no les costará mucho adaptar los ejemplos para el entorno que decidan utilizar.

El simulador que voy a utilizar en los ejemplos se llama i-TRiLOGI 6, y lo pueden descargar aquí.

Para poder descargarlo deberán anotare en el sitio del simulador, tras lo cual recibirán un e-mail con instrucciones para instalarlo. El programa necesita Java y recomiendan una versión en particular del mismo. Para bajar esa versión, tuve también que crear un usuario en el sitio de Oracle… Luego, utilizando la contraseña que recibí por e-mail, instalé el simulador de TRiLOGI.

Pero bueno, una vez pasados todos estos tediosos pasos, el simulador queda listo para usar en nuestra PC y viene la parte más interesante, el aprendizaje. Para ello utilizaremos el programa en su versión con interfaz en castellano.

Comenzaremos un proyecto nuevo. Para eso, en el menú de Archivo, elegimos la opción "Nuevo".
La pantalla inicial del simulador de PLC se ve así:


Con el puntero del ratón, hagamos click doble sobre la flecha roja a la izquierda de la pantalla, y entraremos en el modo de edición del diagrama de escalera, que se verá así:


En la barra de estado pueden verse diversos contactos y bobinas, que iremos utilizando en nuestros ejemplos.
En esta entrega desarrollaremos un circuito clásico de lógica de relés, el circuito de control de arranque-parada con autorretención.

El primer paso será definir una serie de etiquetas que iremos utilizando luego en nuestros ejemplos. Definiremos las siguientes etiquetas:

Entradas: Arranque, Parada
Salidas: Salida1

Para ello procederemos así:

1) Hacemos click sobre el botón I/O Tabla ubicado en la parte derecha de la barra de estado (o presionamos la tecla F2).
2) Nos aseguramos que la selección del menú sea Inputs (entradas)
3) Hacemos click al lado de la posición 1 y escribimos "Arranque"
4) Hacemos enter y el cursor azul se moverá a la posición número 2
5) Sin necesidad de usar el ratón, escribimos "Parada", que será también registrado luego de oprimir Enter.
6) Con las flechas rojas a los lados de la palabra "Inputs", o abriendo el menú descolgable, elegimos la categoría Outputs (salidas)
7) Ingresamos la etiqueta "Salida1"

Ahora comenzaremos a construir nuestra lógica.
Elegimos un contacto NA (1). Inmediatamente "saltará" la lista de etiquetas, escogemos la entrada "Arranque". Le conectamos una salida de relé(7), escogiendo la etiqueta "Salida1". El circuito deberá quedar así:




Este circuito es muy simple, y bastante aburrido, pero sirve para comenzar. Vamos a simularlo. Para ello, elegimos en el menú Simular, la opción Ejecutar.

Se abre la tabla de Entradas y Salidas del Simulador, con cinco columnas. Por ahora nos concentraremos en la primera columna (inputs) y en la última (outputs).

Con el botón izquierdo del mouse, mantengamos presionado sobre la entrada "Arranque". Qué veremos? Mientras mantengamos presionado, la salida estará activa. Tenemos otra opción, que es la de apretar sobre la entrada con el botón derecho. Esta opción cambia la entrada en forma permanente, la activa o la desactiva "con memoria". Pruébenlo Uds. mismos. Observen los cambios que se producen tanto en la tabla de entradas-salidas, como en el diagrama del programa en sí.

Cerremos la ventana de entradas-salidas, y hagamos click sobre la flecha roja, o apretemos la barra espaciadora, para entrar en el modo de edición.

Agregaremos un contacto en paralelo al contacto de arranque (usando la opción 3, que representa un contacto en paralelo). El contacto será activado por Salida1, por eso debemos escogerlo de la tabla, en la categoría de outputs. El programa quedará así:


Cuando lo simulemos, veremos que aún una activación momentánea de la entrada de Arranque, hace que la Salida1 se mantenga activada indefinidamente. A esta configuración se la denomina enclavamiento o autorretención.

A esta configuración le está faltando un control de parada, que es lo que agregaremos ahora. Si el modo de edición no estaba activo, lo activamos ahora. Hacemos click sobre el contacto de arranque, que se pondrá amarillo. Ahora hacemos nuevamente click sobre el cuadrado pequeño a la derecha del contacto. Aparecerá un cuadrado amarillo pequeño de inserción. Hacemos click derecho sobre el contacto NA (1), obteniendo de esta manera un contacto NC, para el que utilizaremos la etiqueta de "Parada".
Si todo salió bien, deberán tener ahora un circuito así:



Les dejo para Uds. el análisis y la experimentación con el circuito, que ya está completo. Traten de hacerle algunas variaciones, hasta sentirse seguros con los modos de edición del simulador. Les recomiendo guardar este programita (usando el menú Archivo-Guardar).

Como comentario final, quizá ya habrán notado que la lógica de relés tiene su equivalente en la lógica digital. Dos contactos en paralelo son equivalentes a una función OR, ya que la salida estará activa si uno cualquiera de los dos contactos (o los dos juntos) están activos.

Dos contactos en serie son equivalentes a una función AND, ya que su salida estará activa solamente si ambos contactos están activos.

Por último, el circuito de arranque y parada es similar a un flip-flop. El arranque activa al flip-flop, la parada lo desactiva. Si el usuario pulsara simultáneamente tanto el arranque como la parada, la función de parada "gana". Por eso se dice que éste es un circuito de arranque-parada con prioridad al arranque. Se puede programar de manera que el arranque tenga prioridad, y se los dejo para que lo piensen.

Como ejercicio adicional, se propone lo siguiente:
Programar y simular un circuito que consta de dos entradas y una salida. La salida estará activa:

1) Si la entrada 1 está activa y la entrada 2 inactiva, o
2) Si la entrada 1 está inactiva y la entrada 2 está activa.

Estf función es similar a los interruptores de pasillos o escaleras, en la que dos llaves en los extremos pueden cambiar el estado de la lámpara, de apagado a encendido, y viceversa.

Algunos de Uds. se estarán preguntando sobre otras de las funciones disponibles en el simulador. No se preocupen, ya las iremos viendo en próximas entregas.


sábado, 18 de febrero de 2012

Introducción a la lógica de relés

En los capítulos anteriores comentamos qué es un PLC, qué es la automatización y comentamos que uno de los métodos de programar un PLC es con la llamada "lógica de relés".

Pasaremos a un ejemplo práctico explicado paso a paso, en la próxima entrega ejecutaremos los ejemplos en un simulador de PLC.

La lógica de relés o ladder logic, se suele representar como un conjunto de contactos conectados en combinación de serie y paralelo que activan bobinas de relés. Los contactos pueden representar el estado de una entrada física al PLC, o el estado de un "relé interno" de la lógica.

Las bobinas a su vez pueden ser salidas físicas, o la activación de un "relé interno".

Será más claro usando algunos ejemplos:



La ventana muestra un típico ladder diagram. Las barras verticales representan alimentación y retorno, o tierra. En la fila superior, numerada como fila cero, vemos en el costado izquierdo un dibujito de dos corchetes invertidos. Esto es la representación de un "contacto". A la derecha vemos otro dibujito de dos paréntesis. Esto representa una bobina de un "relé".

Si el contacto se cierra, la tensión entre las barras será aplicada a la bobina, activándola. La forma de las hileras que conectan las dos barras verticales en cierto sentido recuerdan a una escalera, por eso el nombre de "ladder diagram" (ladder=escalera en inglés).

La primera fila es un poco "aburrida", si el contacto se cierra, la bobina se activa, si se abre, se desactiva. En general la lógica será un poco más compleja, en el diagrama pueden ver varias filas (o "rungs") de complejidad creciente.

Concentrémonos en la nomenclatura. El contacto de la fila 0 está rotulado I:1/2. Cada módulo de entradas y salidas está numerado y generalmente tiene muchas entradas y salidas. En este caso, estamos diciendo: Queremos verificar el estado de la entrada número 2 que pertenece al módulo 1.

Si tal entrada está activa, se activará la salida número 6 del módulo número 2 (O2/6).

A veces queremos generar una lógica interna. Esto se muestra en la fila 3, en la que la "bobina" activada es un bit interno (por eso usamos la letra "B").

Esta terminología es específica de un fabricante determinado de PLC, pero es representativa, con variantes menores, de lo usado por todos los fabricantes.

Concentrémonos en la línea 1. Qué hace esta línea? Supongamos que I:1/2 está conectado a un pulsador. Cuando presionamos al pulador, se activa la salida O2/7. La salida O2/7, a su vez, activa al contacto de su mismo nombre. Aunque dejemos de presionar el pulsador, la salida se mantendrá activa a través de su propio contacto. Esto es un circuito de arranque con autoretención.

Como normalmente queremos tener control tanto del arranque como de la parada de un equipo, la línea 002 les muestra exactamente esa función. La salida O2/8 comenzará a funcionar si pulsamos I:1/2 y se mantendrá en funcionamiento hasta que pulsemos el botón de parada conectado a la entrada I:1/1.

Presten atención al dibujito del contacto de I:1/1, tiene una barra cruzada que simboliza "normalmente cerrado". Solamente cuando activamos el pulsador conectado a esa entrada, su contacto se abre, se interrumpe el "flujo de corriente" a la bobina de O2/8, por lo que esa salida se desactiva.

En la próxima veremos éste y otros ejemplos, en un equipo de simulación de PLCs.


viernes, 17 de febrero de 2012

PLCs y lógica de relés

Panel de control de un PLC
Los controladores lógicos programables son, como ya dijimos, computadoras industriales. Para el control de los procesos, poseen entradas y salidas de tipo on/off o digitales (Más tarde hablaremos de otras capacidades de los PLCs).

Las entradas digitales se conectan a pulsadores, sensores de proximidad, sensores mecánicos, barreras fotoélectricas, detectores de nivel, etc. Las salidas pueden ser salidas de tensión, salidas de tipo "contacto seco" como los contactos de un relé, salidas transistorizadas, etc. Las salidas se conectan a relés de potencia, actuadores, motores, válvulas electromecánicas, etc.

Los PLC suelen ser de tipo modular. El módulo principal contiene la unidad de procesamiento, y en algunos casos, una determinada cantidad de puertos de Entrada/Salida (E/S). Los módulos auxiliares agregan capacidades adicionales de E/S.

Los controles de procesos que requieren sensores y actuadores del tipo analógicos, en el pasado eran una disciplina independiente, reino exclusivo de los llamados "controladores de lazo" o DCS. Hoy en día, con el abaratamiento del costo de las unidades de E/S analógicas, no es raro ver a un PLC realizando tareas de control y monitoreo analógicas.

Pantalla de supervisión de la producción

Dado que el PLC tiene que informar al operador del estado del proceso, normalmente incluye capacidades de HMI (interfaz hombre-máquina), desde simples LEDs que muestran el estado de las E/S, pasando por una gran gama de terminales con capacidades gráficas y por supuesto, la posibilidad de conectar a computadoras corriendo programas gráficos de supervisión.

Los PLCs no son una excepción a la tendencia de conectar en redes. La red permite conectarse a unidades de E/S distribuidas, interconectar PLCs para controlar procesos complejos, y transmitir los datos de producción a computadoras centrales de control, supervisión y planificación de la producción.

Los PLCs se interconectan a través de redes específicas del mundo industrial (ejemplo: Profibus), a través de las diversas variantes de LAN según el protocolo Ethernet, etc.

La programación del PLC
Los PLC aparecieron en el mundo allá por los años 1960. El antecesor de los PLCs era, en numerosas industrias, el tablero de control basado en relés electromecánicos.

Un relé es un dispositivo que consta de una bobina, y de contactos. Cuando se entrega energía a la bobina, los contactos cambian de estado. Los que estaban abiertos se cierran, los que están "normalmente cerrados", se abren.

Mediante la conexión de numerosos relés, a los que se agregan temporizadores y contadores, se pueden realizar numerosas tareas de control. Los PLCs adoptaron esta forma de representar y resolver problemas lógicos, utilizando la lógica de relés para representar y realizar la programación del equipo.

Con la evolución de la complejidad de las operaciones que realiza un PLC (control distribuido, comunicaciones, control analógico), nuevos lenguajes de más alto nivel están siendo adoptados. De todos modos, dado que la lógica de relés sigue siendo excelente y usada para solucionar muchos problemas de control, nos concentraremos en ella en las siguientes entregas.