PLC DE 5 ENTRADAS Y 8 SALIDAS

Construya y programe un PLC para aplicaciones industriales.

EL PLC PROPUESTO

Uno de los objetivos de la utilización de los microcontroladores se basa en el control de procesos industriales, pasando por todas las líneas de producción que tengamos en mente (aun las que ni siquiera nos imaginamos). Para ello se requiere de un circuito base, el cual podamos aplicar de forma general para casi todos los procesos que se requieren automatizar, y que obviamente tenga un microcontrolador como eje principal de su operación (vea la figura 1).

Para contar con lo anteriormente mencionado, debemos hacer hincapié en que tenemos ya los conocimientos básicos como para conjunir toda la serie de tópicos que hemos abordado hasta el momento en esta serie de microcontroladores PICAXE, por lo tanto estamos en la antesala de la construcción de un proyecto que tiene una utilidad muy importante en el ambiente industrial, y cuya denominación es la de “Control Lógico Programable”.

La figura 2 muestra el diagrama esquemático del PLC con PICAXE- 18 que describiremos a continuación.

El PLC (por sus siglas en inglés) lo podemos construir nosotros mismos a partir de las ventajas que nos ofrecen los microcontroladores del sistema PICAXE, y por lo tanto contamos con la prestación adicional de que podemos construir nuestro PLC del tamaño que querramos o más bien del tamaño de las necesidades que se requieren cubrir en el proceso industrial.

De acuerdo a esto último, nuestro PLC lo podemos crear tan pequeño que, inclusive podemos emplear el microcontrolador PICAXE-08.

Lo diseñaremos tomando las bondades que nos ofrece el microcontrolador PICAXE-18A del cual utilizaremos todos los recursos que nos brinda, y que para empezar cuenta con 5 entradas y 8 salidas. El diseño es tan compacto que permite montarlo en una placa de 10 cm x 15 cm (vea la figura 3).

Nuestro PLC tiene todas las prestaciones que nos entrega un dispositivo electrónico comercial, y para programarlo emplearemos el propio sistema de programación de los microcontroladores PICAXE. Alguien, al leer el párrafo anterior se podrá sentir defraudado, porque podrían argumentar que no tenemos un PLC completo ya que faltaría el lenguaje de programación en escalera, y en efecto así es lo que faltaría por el momento, pero sí podemos llamar PLC a nuestro proyecto, ya que un PLC requiere de 3 partes esenciales para admitir esa acepción. Las partes de un PLC son: etapa de entrada o ingreso de datos, etapa de activación de actuadores o elementos de potencia (etapa de salida), y el controlador que gestiona la información de la entrada, la procesa y reporta un resultado a la salida. El controlador al que hacemos referencia normalmente es un microcontrolador. Nuestro PLC contará con las 3 partes que de rigor debe tener un PLC, y el lenguaje en escalera será substituido por el programa de los PICAXE, que durante el desarrollo de este material mostraremos bloques de instrucciones que se utilizan comúnmente en el programa de un PLC.

Comencemos con la descripción del circuito que le dará vida a nuestro PLC, y para ello vamos a dividir el circuito eléctrico en 3 partes, las cuales son:

 
ETAPA DE ENTRADA
Este fragmento del circuito total, es tan imprescindible como las 2 siguientes. En este caso se trata de la parte que se encarga de adquirir la información del entorno que rodea al PLC y enviarla a las terminales de entrada de datos del microcontrolador PICAXE, para realizar esta tarea se requiere de sensores para que éstos adquieran la información.

En general los PLC cuentan con la posibilidad de manejar 2 tipos de sensores, ya sean analógicos o discretos. De acuerdo con lo anterior podemos realizarnos la siguiente pregunta:

¿Cómo sé qué sensor seleccionar?

La respuesta nos la proporciona el propio proceso que vamos a intervenir con nuestro PLC, y lo que tenemos que saber para tomar la mejor decisión sobre qué sensores seleccionar, es tomar alguno de los siguientes criterios:

  1. ¿Se requiere conocer si está presente o no, algún producto o material?
  2. ¿Se requiere saber la magnitud de alguna variable física?

De las preguntas anteriores tenemos que la 1 corresponde a sensores discretos, mientras que la pregunta 2 se relaciona con los sensores analógicos.

El esquema del módulo de entrada discreto del PLC PICAXE-18 incluye optoacopladores 4N25 (figura 4).

Para una mejor comprensión explicaremos lo expresado líneas atrás mediante un ejemplo; supongamos que se tiene que controlar la magnitud de la temperatura en el interior de algún recinto, por lo tanto tenemos que seleccionar los tipos de sensores para implementar el control de la temperatura y que ésta sea estable dentro del recinto.

De un análisis rápido y muy básico, llegamos a la conclusión de que por lo menos se requieren 2 tipos de sensores, los cuales se emplearán para realizar una de las siguientes acciones:

  • Leer el valor de la magnitud de la temperatura que está presente.
  • Detectar si la puerta del recinto se encuentra cerrada.

La primera descripción corresponde a un sensor del tipo analógico, mientras que la segunda descripción hace referencia a un sensor del tipo discreto.

La diferencia principal entre los 2 tipos de sensores radica en el hecho de que el sensor analógico entrega un valor infinito de valores, los cuales dependen de la intensidad de la magnitud física que se está midiendo (luz, temperatura, humedad, etc.), mientras que el sensor discreto tan sólo nos reporta tan solo 2 valores, que son un “1 lógico” ó “0 lógico”.

El circuito correspondiente a la etapa de entrada de un PLC tiene que ser adecuada al sensor que se va a emplear, y tomando en cuenta que el microcontrolador que se utilizará es un PICAXE 18A, que nos permite una disposición de 5 terminales que en su totalidad pueden ser para entradas discretas, el diagrama de la figura 4 corresponde a la parte del diagrama que representa la etapa de entrada implementada para sensores discretos.

La entrada discreta tan sólo debe tener la capacidad de reportar si el sensor detecta la presencia o no de algún objeto o fenómeno físico, por ello se requiere que el sensor informe de su estado por medio de un contacto, el cual se hace conectando en los extremos del borne de entrada de que se trate. El contacto está conectado en serie con un resistor, y ambos se encuentran energizados por una fuente de alimentación, y cuando el contacto se cierra (esto si el sensor se activa) se genera un “1 lógico”, mientras que si el contacto se abre (si el sensor no se activa) se da origen a un “0 lógico”.

Estos estados lógicos se dirigen a la terminal del ánodo de un led infrarrojo de un dispositivo opto acoplador (4N25), el cual a su vez en la terminal del emisor refleja el estado en que se encuentra el opto acoplador, mismo que corresponde al estado que guarda el contacto.

Por último, la información del opto acoplador se hace llegar a la terminal de entrada correspondiente del microcontrolador PICAXE. Este circuito se repite 5 veces, una para cada entrada discreta que posee el PICAXE.

 
ETAPA DE SALIDA
Este bloque del circuito total sirve para enviar una señal para que el actuador o elemento de potencia que tiene conectado se energice o se apague, por lo tanto este circuito hace de etapa de aislamiento entre las terminales de salida del microcontrolador PICAXE y los elementos de salida.

El circuito principal que protege al microcontrolador PICAXE es un amplificador operacional, que se encuentra bajo la configuración de seguidor de voltaje, por lo tanto si en la salida del PICAXE se tiene un “0 lógico”, el seguidor de voltaje entregará 0 Volts, mientras que si el PICAXE entrega un “1 lógico” el seguidor de voltaje entregará 5 volt, porque con esa magnitud de voltaje es con la que trabaja el microcontrolador.

En el diagrama de la figura 5 se muestra el circuito completo de la etapa de salida.

Para completar la etapa de salida, se utiliza un transistor para activar la bobina de un relevador, que por medio de sus contactos se energiza o no, un elemento de potencia. Cabe aclarar que los contactos del relevador deben tener la capacidad de manejar tanto C.A. como C.D. y una corriente máxima de 10 ampere en 120V de corriente alterna 7 ampere en 220V ó 10A en 24V de corriente continua.

 
ETAPA DE CONTROL
Esta parte del PLC, de manera indirecta, la describimos cuando hacemos referencia a un microcontrolador PICAXE, porque el PICAXE de forma exclusiva es la pieza que integra a la etapa de control, porque la información que se adquiere de los sensores se tiene que dirigir a las terminales de entrada del PICAXE, para que éste en función del programa que tenga gravado en su memoria, reporte un resultado y lo envíe a los circuitos pertenecientes a la etapa de salida y así poder manipular a un elemento actuador.

El microcontrolador PICAXE de nuestro PLC contará con todas las ventajas que nos ofrece el software de programación, el cual describimos a continuación.

Para cualquier PLC, el software que normalmente se emplea para programarlo es el llamado “lenguaje en escalera” o diagrama de contactos, en el cual las instrucciones se implementan mediante símbolos, tal como se observa en la figura 6.

Ya hemos descrito, que en particular para el PLC que estamos diseñando, por el momento no se contará con un lenguaje en escalera, pero vamos a solventar esta desventaja con la realización del armado de bloques con instrucciones propias de los microcontroladores PICAXE, para que de esta manera podamos contar con una equivalencia en cuanto a la serie de símbolos que nos puede proporcionar un PLC.

Existe una serie de símbolos del lenguaje en escalera que tienen un reflejo hacia la actividad exterior del PLC, y de esta manera se tienen contactos normalmente abiertos (N.A.) y normalmente cerrados (N.C), los cuales leen la información de las terminales de entrada de datos y envían la información al PLC.

También existen los símbolos que por medio de los cuales se le indica al PLC que tiene que enviar un mando de control para activar o desactivar algún actuador o elemento de potencia. Entonces, para programar un PLC lo único que tenemos que hacer es emplear los símbolos adecuados para tener un sistema de control automático.

Por otra parte, los símbolos que se emplean en el lenguaje en escalera, son la base para programar las funciones lógicas que integran al programa que controla algún proceso industrial, por lo tanto, por medio de un ejemplo vamos a observar de qué manera se puede implementar una función lógica AND (Y), ó una función lógica OR (O) y una negación.

 
FUNCION LOGICA AND (Y)
Esta función en lenguaje escalera equivale a interconectar una serie de contactos que pueden ser N.A. ó N.C. en serie, lo que asemeja en un diagrama eléctrico, a un circuito serie en donde se encuentran interruptores y al final de éstos una lámpara, y para que ésta encienda en necesario que todos estén cerrados. Para implementar esta misma función mediante el código en un microcontrolador PICAXE lo haremos en dos partes, en primer término se requiere leer el estado que están reportando los sensores (en este caso discretos), para ello como ejemplo obsérvese el fragmento de lenguaje escalera expresado en la figura 6.

Esta disposición de símbolos da origen a una rama, en la cual se observa el efecto de 3 contactos que al estar conectados en serie, se tiene una equivalencia de una función lógica AND, estos contactos muestran su efecto a partir de 3 entradas, pues bien, en nuestro microcontrolador PICAXE también se tiene que leer el estado de 3 entradas para tener la equivalencia, y para ello necesitamos saber en qué terminales de entrada de datos se encuentran conectados los sensores, continuando con el ejemplo supóngase que las entradas para conectar esos sensores fueron la E0, E1 y E2 (en un PICAXE las terminales de entrada son 5 y son E0, E1, E2, E6 y E7), por lo tanto para que la función lógica AND implementada en la figura 6, tenga el mismo efecto en el microcontrolador PICAXE, se tiene que leer solo el efecto de las terminales involucradas con la función lógica, por lo que tenemos que anular lo que suceda con las terminales restantes, para ello vamos a colocar una máscara a manera de filtro, para que solo pueda obtenerse el estado lógico de los sensores en las terminales de entrada que nos interesan. La máscara o filtro, que le vamos a colocar al PICAXE, estará implementada de acuerdo a como se muestra en la tabla 1.

Por medio de la aplicación de la máscara descrita anteriormente, vamos a indicarle al PICAXE que lea sus terminales de entrada y ese dato lo almacene en un registro temporal o variable que puede ser como en este ejemplo, el identificado como “b0”, y para eliminar el efecto de las terminales E6 y E7 lo que tenemos que hacer es, de alguna manera, que estos bits adquieran un valor de 0 lógico, no importando el estado que tengan sus sensores respectivos, mientras que sobre las terminales E0, E1 y E2 se debe mantener el valor del estado lógico que respectivamente guarden los sensores correspondientes. Esto se puede escribir por medio de un “diagrama de flujo” con el que haremos el programa de nuestro PLC en el Editor de Programas.

Para describir entonces, cómo se hace una función AND, vea el esquema de la figura 7.

Se observa que el valor de la variable b0 se opera por medio de una función AND (&) con el valor decimal de 7, mismo que equivale a la aplicación de la máscara, y de esta manera cualquier valor lógico que tengan las terminales E6 y E7 será igual con “0” lógico. El dato que tengan las terminales E0, E1 y E2 se mantendrá.

La instrucción “Let b0 = pins & 7” indica que le asigne a la variable b0 el valor que corresponde a la lectura de los pines E0, E1 y E2. Por ejemplo, si E2=0, E1=0 y E0=1, entonces b0=1. Otro ejemplo: si E2=1, E1=0 y E0=1, entonces b=5.

Posterior a la aplicación de la máscara, se tiene que analizar el estado de las 3 terminales que están involucradas con la función lógica AND de la rama del lenguaje en escalera de la figura 6, para ello el valor que debe estar alojado dentro de la variable b0 debe ser igual a 7 decimal, si el estado de los 3 sensores es 1 lógico, y la variable b0 reportará cualquier otro valor si alguno de los sensores o todos están en 0 lógico, tal como se ilustra en la figura 7.

El efecto de esta función lógica AND, equivalente a la rama de la figura 6, lo estamos reflejando sobre la salida S0, misma que se encenderá cuando los 3 sensores reporten un 1 lógico sobre las terminales de entrada del PICAXE.

Si se quiere cambiar de terminales de entrada o involucrar más (sólo tenemos 5) entradas, basta con adecuar la máscara que filtra a las terminales que nada tienen que ver con la función AND de una rama de lenguaje en escalera, por otra parte si se tienen más ramas, el fragmento de código que implementamos para el PICAXE tiene que repetirse tantas veces como ramas necesitemos.

Para que se entienda, según lo expresado en la tabla 1, los valores de E6 y E7 son siempre igual a cero, luego, para obtener una función equivalente a una AND de 3 entradas (E0, E1 y E2), sólo habrá una salida válida cuando estas tres entradas estén en “1” y si esto se cumple, la sumatoria en binario equivale al número decimal 7, por lo tanto, y tal como se muestra en el bloque de la figura 7, asignamos a una variable b0 la suma de los pines de entrada y si se cumple que:

E0 = 1, E1 = 1, E2 = 1, E3 = 0, E4 = 0

Entonces la sumatoria será igual a “7” y para completar la función AND deberemos preguntar si la variable b0 = 7, tal que cuando se cumpla esa condición entonces la salida “0” vaya a estado alto. El diagrama de flujo que representa a la función lógica AND se completa entonces con el diagrama de flujo de la figura 8.

 
FUNCION LOGICA OR (O)
Esta función en lenguaje escalera obliga a interconectar interruptores en paralelo, lo que equivale en un diagrama eléctrico a tener alternativas para que al final de éstos pueda encenderse una lámpara, y para ello es suficiente con tan sólo tener un interruptor cerrado. Para implementar la función OR mediante el código en un microcontrolador PICAXE, en primera instancia se requiere leer el estado que están reportando los sensores (en este caso discretos), para ello a manera de ejemplo se muestra un fragmento del lenguaje escalera ilustrado en la figura 9. Por la disposición de los símbolos se está dando origen a una bifurcación en una rama, en la cual se observa el efecto de 3 contactos que al estar conectados en paralelo, se tiene la equivalencia con la función lógica OR, estos contactos muestran cómo operan a partir de 3 entradas, por lo tanto, el microcontrolador PICAXE debe leer el estado de las 3 entradas involucradas, y para ello necesitamos saber qué terminales fueron las elegidas para conectar los sensores. Prosiguiendo con el ejemplo ilustrado en el lenguaje escalera para la función lógica OR, supóngase que las entradas para conectar esos sensores fueron la E0, E2 y E6 (recuerde que en un PICAXE las terminales de entrada son 5 y son E0, E1, E2, E6 y E7), por lo tanto para que la función lógica OR implementada en la figura 9, tenga la misma operación en el microcontrolador PICAXE, se tiene que leer sólo el estado lógico de las terminales involucradas con la implementación de la operación lógica OR, por lo que tenemos que nulificar el estado que se genere para las otras terminales que no están contempladas, para ello vamos a utilizar una máscara a manera de filtro para que sólo pueda obtenerse el estado lógico de los sensores en las terminales de entrada que nos interesan.

La máscara o filtro que le vamos a colocar al PICAXE, estará implementada de acuerdo a como se muestra en la tabla 2.

Por medio de la aplicación de la máscara descrita, vamos a indicarle al PICAXE que lea sus terminales de entrada y ese dato lo almacene en un registro temporal o variable que en este ejemplo se trata de “b0”, y para descartar el efecto de las terminales E1 y E7 lo que tenemos que hacer es de alguna manera que estos bits adquieran un valor de 0 lógico, no importando el estado que tengan sus sensores respectivos, mientras que las terminales E0, E2 y E6 deben mantener el valor del estado lógico que respectivamente, guarden los sensores que tengan conectados.

En dicha figura se observa que el valor de la variable b0, se opera por medio de una función AND (&) con el valor decimal de 69, mismo que equivale a la aplicación de la máscara (vea la tabla 2 nuevamente), y de esta manera sólo se tendrán en cuenta para fijar el dato de la variable b0 el dato que tengan las entradas E0, E2 y E6. La instrucción (let b0 = pins & 69) indica que se le asigne a b0 el valor correspondiente a la suma en decimal (con el peso de cada bit) de las entradas E0, E2 y E6. Por ejemplo, si E6=1 (que tiene un peso igual a 64 expresado en decimal, E2=0 (no tiene peso por ser “0”) y E0=1 (tiene un peso igual a 1, expresado en decimal) entonces b0=65 (64+1).

Posterior a la aplicación de la máscara, se tiene que analizar el estado de las 3 terminales que están involucradas con la función lógica OR del lenguaje en escalera de la figura 9, para ello el valor que debe estar alojado dentro de la variable b0 se debe comparar con el valor decimal de 0, específicamente se hace la pregunta si b0 es mayor que 0.

Si el estado de los 3 sensores es igual a 0 lógico, significa que ninguno de ellos se ha activado, por otra parte si en la variable b0 se reportara cualquier valor que sea mayor que 0, quiere decir que alguno de los sensores o todos inclusive están en 1 lógico.

Por lo tanto, el paso siguiente del diagrama de flujo será “preguntar” si b0>0 ya que cualquier valor mayor que “)” indicará que al menos un sensor en los pines E0, E2, E6 esté activado.

El efecto de la función lógica OR programado en el diagrama de flujo de la figura 10 equivalente al lenguaje escalera de la figura 9, lo estamos reflejando sobre la salida S1. La lámpara conectada en esta salida se encenderá cuando por lo menos uno de los 3 sensores reporten un 1 lógico sobre las terminales de entrada del PICAXE.

Si se quiere cambiar de terminales de entrada o involucrar más (sólo tenemos 5 entradas), basta con adecuar la máscara que filtra a las terminales que nada tienen que ver con la función OR que se quiere implementar, por otra parte si se necesitan más funciones lógicas OR, no tenemos más que repetir el fragmento del código que hicimos para el PICAXE, por lo que éste tiene que repetirse tantas veces como funciones necesitemos.

Recuerden que con el programa llamado “PICAXE Programming Editor”, podemos implementar perfectamente las mismas funciones que se realizan en un lenguaje escalera, claro que no es tan fácil de hacer pero se puede. Por otra parte ya hemos abordado los conceptos mínimos que se requieren para que nuestro PLC haga todas las funciones básicas de uno comercial, pero se debe tener presente que se necesitan dominar ciertas técnicas de programación para los PLC, por lo que nuevamente les hacemos una atenta invitación a que visiten nuestra página de internet www.webelectronica.com.ar y en la sección de password empleen la clave “progplc”, para que puedan descargar mucha información sobre la programación de PLC.

Si quieren obtener más información de los microcontroladores PICAXE los invitamos a que descarguen de la página de Internet toda la información que necesiten de microcontroladores PICAXE, pero ahora empleando la clave “picaxe”. El código en basic derivado del diagrama de flujo para implementar la función AND se muestra en la tabla 3. El código en basic derivado del diagrama de flujo para implementar la función OR se muestra en la tabla 4.

Por último, en la figura 11 se muestra el diagrama completo para la placa de circuito impreso, incluyendo la máscara de componentes (el lado de las pistas de cobre se ha reproducido en la figura 3). Recuerde que este PLC se programa con el Editor de Programas y que en próximas ediciones daremos varias aplicaciones para el uso de este PLC.

 
De la Redacción de Saber Electrónica
FIGURA 01
 
 
FIGURA 02
 
 
FIGURA 03
 
 
FIGURA 04
 
 
FIGURA 05
 
 
FIGURA 06
 
 
FIGURA 07
 
 
FIGURA 08
 
 
FIGURA 09
 
 
FIGURA 10
 
 
FIGURA 11
 
 
TABLA 1
 
 
TABLA 2
 
 
TABLA 3
 
 
TABLA 4