Este proyecto de Micro PLC Arduino NANO está desarrollado para aprender a programar con un editor ladder y al mismo tiempo utilizarlo incluso en pequeños montajes industriales en los cuales no requieran de complejidad en la programación y/o domotizar la vivienda, el garaje, jardín, etc. No hay límite.
Este Micro PLC Arduino NANO se programa en ladder
Cuando empecé este proyecto de PLC, pensaba en un proyecto sencillo de construir y fácil de entender para todos los niveles de usuarios. Estudiantes con conocimientos de electrónica y programación y para los que no tenían ni idea pero muchas ganas de aprender a programar en ladder.
Primero opté por usar un Microcontrolador PIC, pues son mis favoritos, pero mientras realizaba el diseño, cayeron en mis manos unos Arduino NANO y me di cuenta de que era la solución, por facilidad de uso y programación. Ya tenía el Hardware solucionado!!!.
Pero después me surgió una duda, qué software iba a utilizar para programar el PLC de forma que obtuviese las tres “B”; Bueno, Bonito y sobretodo Barato. Teniendo en cuenta que al ser un PLC, la programación debe de ser en Ladder (escalera) porque en el mundo del PLC es un estándar y este proyecto no puede ser menos.
Durante un tiempo, probé y sin exagerar, más de una docena de ellos (porque si digo más, me dirán que soy exagerado), algunos de pago y otros gratuitos. Entre los de pago encontré varios muy buenos y muy caros, así que opté por no adoptarlo al proyecto. Entre los gratuitos, encontré dos, bueno, uno, el otro hace años que lo conozco y realmente es muy bueno, pero para este proyecto buscaba uno que me llamara la atención, quería algo fácil para los usuarios. Probé un software creado por los hermanos Walter el cual ellos lo desarrollaron para una aplicación que comercializan y regalan este software.
Un editor ladder maker free
El programa llamado Walter Ladder Maker es gratis y funciona en varias plataformas, yo lo he probado en Windows 7 y python, pero realmente prefiero la versión Windows, funciona muy bien (y mejor aún siendo gratis), tengan en cuenta que es un software que lleva unos dos años sin actualizar, pero cumple perfectamente mis expectativas del proyecto.
También tengo que decir que estoy intentando contactar con el Sr. Walter para ver si podemos actualizar el software pero no he tenido suerte.
Este proyecto está dedicado a la memoria del Sr. Miró, ingeniero de los años 80 que trabajaba en una empresa llamada Raspistan y al cual admiro su paciencia en la reparación de un elevador/descensor equipado con un PLC fabricado a medida (y con mucho wire-wrap).
Y no quiero olvidarme de Luis Amigó y Juan Manuel Sánchez, mi segunda familia durante 25 años.
Veamos el hardware del proyecto plc con Arduino
El Hardware del Micro PLC Arduino NANO lo he diseñado en base al Arduino por varias razones, lleva incorporado el bootloader que facilita la carga y el módulo se consigue a muy buen precio. Más adelante les haré un video de cómo funciona todo este proyecto que podrán usarlo para modernizar alguna máquina, depósito, etc.
Características:
Tensión de alimentación: 12V DC
Entradas digitales optoacopladas a 24V DC: 5 entradas
Entradas analógicas hasta 24V DC: 4 Entradas
Salidas PWM a 5V DC: 2 salidas
Salidas digitales a relé: 7 salidas
Microcontrolador: Arduino NANO V3
Las conexiones de entradas y salidas del Micro PLC Arduino NANO ya están configuradas y no se pueden modificar debido al software que utilizamos.
Conexiones del Arduino NANO:
Entradas:
A4: Entrada 1
A5: Entrada 2
D2: Entrada 3
D3: Entrada 4
D4: Entrada 5
Salidas:
D5: Salida 1
D6: Salida 2
D7: Salida 3
D8: Salida 4
D11: Salida 5
D12: Salida 6
D13: Salida 7
Entradas analógicas:
A0: Analógica 1
A1: Analógica 2
A2: Analógica 3
A3: Analógica 4
Salidas PWM:
D9: Salida PWM 1
D10: Salida PWM 2
Recuerde que por el software que usamos para programar en Ladder, no podemos modificar los datos de E/S. No es un inconveniente porque usamos casi todo el potencial del Arduino NANO.
En caso de necesitar alguna entrada adicional, podemos usar las analógicas como entrada digital mediante el sistema de comparación.
Más adelante veremos algún ejemplo y si necesitas más, escribe en los comentarios.
El esquema del PLC Arduino Nano es el siguiente:
Si desean descargar el esquema en formato pdf pueden hacerlo pinchando el siguiente enlace:
El esquema del PLC lo podemos dividir en 6 secciones y las comento a continuación.
Sección del Microcontrolador:
La primero y más importante del proyecto es el componente Microcontrolador basado en el Arduino NANO.
Este componente alojará en su interior todos los programas que vayamos a usar con nuestro PLC. Para programarlo, simplemente conéctelo al computador con el cable USB, con el software LadderMaker haga su proyecto y directamente lo graba en el Microcontrolador. Hay otras opciones, estas las veremos más adelante cuando hablemos del software.
Fuente de alimentación
Todo el PLC lo alimentamos con una tensión de entrada de 12V DC, es importante no sobrepasar este valor para no quemar componentes del PLC, los relés son a 12V. Si miran el esquema observarán que es muy simple, pero funciona muy bien.
Entrada a 12V DC (fuente y relés) y salida para el Arduino y resto de componentes a 5V DC a través de un regulador del tipo 7805 o similar, lo importante es que pueda soportar 1 Amp. De carga máxima.
Todo el PLC Arduino NANO suele consumir máximo unos 300 o 500 mA.
Les comento de que si ustedes usan este circuito para un ambiente de tipo industrial, ahn de colocar filtros de ruido en la entrada de la fuente.
Sección de entradas
Las entradas digitales soportan hasta 24V y por seguridad son optoacopladas. Siguiendo el circuito de entradas, vemos de que cada entrada tiene una resistencia de 3K3 para limitar la carga del led que visualizará cuando tengamos un nivel alto en la entrada y el diodo emisor del optoacoplador que con la luz que emite, polariza el transistor y permite la conducción entre colector y emisor.
Pueden apreciar que las entradas no tienen un punto común, es decir, todas son independientes y optoacopladas para mayor seguridad del PLC. Entre ellas pueden conectarse, pero no entre la masa del PLC si queremos tener la seguridad del optoacoplador.
Recuerden que el valor máximo de la tensión de entrada es de 24V DC. Un valor bueno para obtener un nivel alto en la entrada es a partir de 5V, por debajo, será nivel 0 en entrada.
Entradas analógicas del PLC Arduino NANO
A continuación les muestro la sección de entradas analógicas, cuatro entradas que permiten controlar el PLC con señales de hasta 24V DC.
En otro artículo les hablaré de cómo configurar y obtener el máximo provecho de las entradas o convertidor analógico digital (ADC) del Arduino. Ahora nos centramos en este proyecto.
Como ya les mencioné, las entradas analógicas permiten leer señales de hasta 24 voltios mediante un divisor de tensión y un operacional que adapta esta tensión a la entrada ADC del Arduino.
En esta ocasión, si tenemos un común para todas las entradas analógicas, por lo tanto han de tomar precauciones si conectan más de una entrada al PLC. Y las masas entre las entradas y el PLC que son las mismas. Tengan mucha precaución.
Las salidas del PLC Arduino programado en ladder.
Como las salidas de relés son las más importantes a la hora de hacer funcionar un PLC, comenzaremos la descripción de esta sección comentando que los relés están alimentados a 12V.
El PLC también dispone de 2 salidas PWM a 5V.
Sección de relés de salida.
Observen el esquema a fondo de la etapa de relés de salida.
Los relés de salida están configurados en dos formas, Relé 1, tiene el contacto conmutado en las bornas de salida, podemos usar el común y un contacto cerrado o contacto abierto según necesidad. Los contactos de un relé siempre se describen en posición de reposo.
Y en el resto de relés solo disponemos de contacto abierto. Tengan esto presente a la hora de programar sus proyectos.
Las bobinas de los relés se alimentan a 12V y la señal de 5V para la exitación que viene del Arduino la controlamos con un IC especial llamado ULN2803, ampliamente utilizado en estos circuitos y en la industria.
Esquema del PLC donde aparece el ULN2803
Salida de pulsos PWM
Estas salidas que les acabo de mostrar son las que podemos usar para controlar circuitos con control de impulsos (PWM). A destacar que la tensión de amplitud es de 5V DC, si necesitan otros valores, deberán de usar interfaces o convertidores.
El diseño del PLC
Una vez detallado todo el PLC, les muestro como es el PCB.
La imagen anterior nos muestra el proyecto PLC Arduino NANO modelo Miró.
Y la siguiente imagen el PCB por la parte de componentes:
Figura del PCB del lado de componentes para su montaje, las medidas de la placa son de 100 mm X 150 mm aproximadamente. He intentado mostrar la máxima información posible en el PCB para que de un simple vistazo sepamos distinguir las diferentes secciones del PLC. El diseño del PCB es de una sola cara, así es mucho más económico poder comprarlo o fabricarlo en casa.
¿Dónde comprar el PCB?
Si desean, el PCB lo pueden adquirir en pcbway a un precio muy económico y además lo envían a cualquier parte del mundo.
He procurado que todo el proyecto sea fácil de construir y los materiales asequibles para cualquier persona, no hay componentes difíciles de conseguir, incluso los optoacopladores pueden montar tipos equivalentes si estos no los tienen en su comercio habitual. El proyecto es compatible con cualquier módulo Arduino NANO que venden en el mercado.
Una vez montado todo el PCB, al conectarlo a la fuente de alimentación verán leds que se iluminan e indican el estado del PLC. El módulo Arduino lo han de insertar según les indica la imagen del PCB.
Junto al regulador de 5 Voltios tenemos el primero que ha de iluminarse y nos indica que la alimentación del PLC esta bien. Recuerden que la entrada de alimentación es a 12V DC.
Siguiendo con las observaciones de los leds, en el módulo Micro PLC Arduino NANO tenemos 4 leds, dos que indican cuando hay emisión / recepción desde el puerto USB, el segundo por la derecha indica que tenemos 5V alimentando la placa del Arduino y el led de la derecha es el que está conectado al pin out7 y se usa para comprobar que el Arduino está en funcionamiento. Este Led sería bueno que para tener un buen control del PLC a simple vista, lo programamos para que luzca una intermitencia de aproximadamente 1 segundo y así tendremos una buena percepción de que el PLC está corriendo.
La indicación de RUN
Yo suelo hacerlo tal como he descrito anteriormente con la salida out 7, en caso de necesitarla, pues la programo y todo continúa normal.
EL PLC tiene suficientes indicadores de funcionamiento, tensión de alimentación, entradas , salidas y el control del módulo Arduino NANO.
Para estar seguro, es mejor repasar bien todo el montaje del circuito, es mejor perder un poco de tiempo que un semiconductor o el PCB.
Datos Técnicos del micro PLC Arduino NANO
Información general | |
Tarjeta de Microcontrolador base | Arduino NANO |
– Programación | Walter Ladder Maker, IDE Arduino |
Lenguajes de Programación | |
– KOP | SI, Waltech Ladder Maker y LDmicro |
– Lista de Texto | SI, Atmel QTouch |
– FUP | NO |
– Texto Estructurado | SI, IDE Arduino |
Tensión de Alimentación | |
Valor Nominal (DC) | 12.0 V |
Rango Admisible, límite inferior (DC) | 9.4 V |
Rango admisible, límite superior (DC) | 13.8 V |
Intensidad de entrada | |
Consumo Valor Nominal | 19 mA (CPU) |
Consumo Max. | 500 mA |
Memoria | |
Memoria de trabajo | |
– Integrado | 2 KB |
– Ampliable | No |
Memoria de Carga | |
– Integrado | 32 KB, – 2KB reservado para Bootloader |
– Ampliable | No |
Respaldo | |
– Existente | Si, Libre de Mantenimiento |
– Sin Pila | SI (No necesita reloj RTC) |
Tiempos de ejecución de la CPU | |
Para operaciones a bits | 6 uS |
Para operaciones a palabras | 260 uS |
Para operaciones de coma flotante | N/A |
CPU – Bloques | |
N° de bloques (total) | 1 OB Principal (algo limitado) |
Bloque de Organización | |
Cantidad Máxima | Limitada por la Flash de 32KB. |
Funciones Admisibles | Limitado por programa (Ver Manual) |
Área de datos y su remanencia | |
área de Datos Remanentes | No |
área de Marcas y Datos Globales | 16KB |
Configuración de hardware | |
N° de módulos por sistema máx. | Solo 1 módulo CPU |
Entradas digitales | |
N° de Entradas Digitales | 5 canales |
ED con funciones Tecnológicas | Ninguna |
Canales Integrados | 7 canales |
Tensión de entrada | |
– Valor Nominal (DC) | 24VDC |
– Para señal “0” | 0.1VDC – 5.0 VDC |
– Para señal “1” | 5.0VDC – 24VDC |
Retardo de entrada (a tensión nominal de entrada) | |
– Parametrizable | No |
– En transición “0” a “1”, máx. | 20 nS |
– En transición “1” a “0”, máx. | 50 nS |
Salidas Digitales | |
Número de salidas | 7 canales |
Canales integrados | 7 canales |
Tipo de Salidas | Relé |
Tensión máx. | 28 VDC, 120 VAC, 220 VAC. |
Salidas PWM a 5V | 2 de tipo transistor |
Entradas Analógicas | |
N° de entradas analógicas | 4 canales |
Canales Integrados | 4 |
Tipos de Entrada | |
– Corriente | No |
– Voltaje | Si |
Rangos de entrada (valores nominales) | |
– 0 – 24 V DC | Si |
– 0 – 20 mA | NO |
Formación de valores analógicos | |
Tiempo de integración y conversión/resolución por canal | |
Resolución | 8 bits, 1,024 |
Tiempo de conversión por canal | 260 uS |
Tipo de cableado | 2 hilos (masa común) |
Interfaz Programación PLC | |
Tipo de Interfaz | Mini – B USB |
Norma Física | USB 1.0 |
Funciones de Comunicación | |
Comunicación en RS 232/485 | No |
Comunicación Ethernet | No |
Servidor Web | No |
N° de Conexiones | 1 tipo USB |
CEM (Compatibilidad Electromagnética) | |
Tipo de Prueba e Inmunidad | Sin Pruebas Aplicadas |
Condiciones Ambientales | |
Temperatura de Servicio | |
– Mínima | -10 °C |
– Máxima | 60 °C; Todas las salidas conectadas |
Humedad relativa | 60% |
Unos apuntes del proyecto
Hasta aquí he descrito el hardware del PLC, ahora creo que toca el software.
El editor laddermaker para programar el Micro PLC Arduino NANO lo pueden descargar directamente desde la web del autor.
Autor del HardWare PLC Arduino NANO: Joan Mengual
El manual del hard y soft en formato PDF del proyecto PLC Arduino NANO lo pueden descargar de aquí: Manual completo.
Autor del SoftWare ladder maker: Waltech
En el próximo artículo sobre este proyecto que hablaré del editor, dejaré unos enlaces para poder descargar todo el proyecto hardware en un solo archivo y otro con el editor por si falla el enlace anterior.
La programación del PLC pueden hacerla de varias maneras, yo he escogido el software Waltech Ladder Maker que se lo presentaré en una próxima entrega. Mientras pueden optar por montar el circuito y recuerden los pines para programarlo con cualquier editor como el IDE de Arduino.
Dejen sus comentarios y cuenten que tipo de editor ladder usa para programar su PLC Arduino.
Hola Joan,
Te mando un pequeño resumen de algo que escribí hace tiempo y tu artículo me ha vuelto a recordar aquellos tiempos de garaje con unos amigos desarrollando inventos electrónicos que hoy día es nuestro trabajo.
«El PLC (controlador lógico programable) ha sido y sigue siendo el componente básico del mundo de la automatización industrial.
La aplicación industrial hizo que los sistemas PLC fueran muy caros, tanto para comprar como para reparar, y también debido a las habilidades altamente específicas que se les solicitan a los diseñadores de software para extraer el máximo potencial de los controladores.
Arduino es un tipo de controlador programable universal, aunque es solo el «núcleo» y, en cualquier caso, se ha creado para aplicaciones generales; con un poco de hardware externo (esencialmente interfaces capaces de transferir señales desde sensores y actuadores, reduciendo la EMI que puede dañar el microcontrolador) y un software apropiado puede, sin embargo, convertirse en algo muy similar a un PLC.»
Me ha parecido ideal porque es básicamente lo que tu has realizado con este proyecto.
Un abrazo y sigue adelante, me gustan tus proyectos.
Gracias por tu comentario David,
Aún recuerdo aquellos veranos de campamento y los inventos que solíamos llevar para jugar con los amigos, grillos electrónicos, luz que se encendían en la noche y se apagaban solas, voces fantasmagóricas de ultratumba, detectores de presencia. xD, qué recuerdos con nuestra pasión de electrónicos. Un saludo y cuando quieras puedes mandar un artículos de los tuyos y lo publico. Será un honor, tener a todo un doctor en electrónica en una de mis páginas.
Un abrazo.
Buenas amigo, quisiera ver si puedes apoyarme necesito un PLC como este pero necesito que tenga 6 entradas y 6 salidas y que se pueda instalar una LCD 16×2 y un monedero electrónico puedes ayudarme con la modificación.
Hola Arturo, como pueden ver todos mis amigos, llevo varios meses muy atareado y apenas tengo tiempo de actualizar la web. Respecto a esta petición y si aún necesitas mi colaboración, te ruego envíes un mensaje privado con todas tus necesidades y te ayudaré, después publicaré aquí el proyecto para todos los lectores.
Un abrazo.
que buen proyecto felicidades, una duda. que tipo de diodos son los que utilizo en las entradas?
Hola, muchas gracias por tu comentario, me gustaría me ampliaras información sobre los diodos que mencionas. No sé a cuales te refieres y por lo tanto no te puedo ayudar, comenta y te ayudo.
Hola Joan, yo también quería preguntar los mismo. Supongo que se refiere a los zener de las entradas digitales. Un saludo y gracias.
Hola, gracias por las preguntas, los diodos con el símbolo zener de las entradas, en realidad son diodos tipo 1N4007 o similares, hay un error el el dibujo.
Cuando pueda modifico el esquema. Muchas gracias.