Micro PLC Arduino NANO

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.

Plc-Arduino-NANO-editor-ladder

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.

8 comentarios en “Micro PLC Arduino NANO”

  1. 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.

    1. 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.

  2. 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.

    1. 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.

    1. 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.

  3. 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.

    1. 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
Responsable Joan Mengual +info...
Finalidad Gestionar y moderar tus comentarios. +info...
Legitimación Consentimiento del interesado. +info...
Destinatarios Automattic Inc., EEUU para filtrar el spam. +info...
Derechos Acceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicional Puedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Salir de la versión móvil