Ir al contenido

¿Qué es un PLC y cómo funciona?

Un PLC lee entradas, ejecuta un programa de control y escribe salidas en un ciclo repetitivo. Partes, ciclo de scan, un primer programa, lenguajes IEC 61131-3, tipos de PLC y aplicaciones por sector.
10 de febrero de 2022 por
¿Qué es un PLC y cómo funciona?
Boot & Work Corp. S.L, Fernandez Queralt Martinez

Un PLC (controlador lógico programable, o autómata programable) es un controlador industrial que lee sensores por sus entradas, ejecuta un programa de control y activa actuadores por sus salidas. Repite esta secuencia de leer, ejecutar y escribir en un ciclo fijo, llamado ciclo de scan, para que la máquina reaccione a cada cambio de sus señales.

Esta guía explica las partes de un PLC, el ciclo de scan, un primer programa, los lenguajes IEC 61131-3, los tipos de PLC y dónde se usan. También compara un PLC con una placa de microcontrolador y con un PC industrial.

¿Qué es un PLC?

La norma IEC 61131-1 describe el autómata programable como un sistema electrónico digital diseñado para un entorno industrial. Guarda en memoria el programa del usuario y lo usa para funciones lógicas, secuencias, temporizaciones, contajes y cálculos, con el fin de controlar máquinas o procesos mediante entradas y salidas digitales y analógicas.

En la práctica, un PLC sustituye la lógica cableada con relés que controlaba las máquinas antes. Los PLC aparecieron a finales de los años sesenta en las fábricas de automóviles: cambiar una línea de producción obligaba a recablear los cuadros de relés. Con un PLC, se cambia el programa en lugar del cableado.

Un PLC se define por cómo funciona, no por su procesador: un programa de control que se ejecuta en un ciclo repetitivo, con entradas y salidas industriales, preparado para funcionar sin paradas dentro de un armario eléctrico.

Un ejemplo sencillo: un sensor de presión está cableado a una entrada. El programa compara el valor con un límite. Cuando la presión supera el límite, el PLC activa una salida que enciende una baliza de alarma, y la apaga cuando la presión vuelve a la normalidad.

Partes de un PLC: CPU, memoria, entradas, salidas y puertos de comunicación

Todos los PLC tienen los mismos bloques, sea cual sea la marca o el procesador.

ParteQué haceEjemplo típico
CPUEjecuta el programa de control y el ciclo de scan.Un microcontrolador o un microprocesador: un ATmega2560 (Arduino Mega) en un M-Duino, un ESP32 en un ESP32 PLC, una Raspberry Pi en un Raspberry PLC.
MemoriaGuarda el programa, las variables y los valores que deben sobrevivir a un corte de alimentación.Flash para el programa, RAM para las variables, memoria no volátil para contadores y consignas.
EntradasLeen el estado del proceso.Digitales: pulsadores, finales de carrera y sensores de proximidad a 24 V DC. Analógicas: 0-10 V o 4-20 mA de transmisores de presión, nivel o temperatura.
SalidasActúan sobre el proceso.Salidas de relé o de transistor para contactores, electroválvulas y balizas. Salidas analógicas para la consigna de velocidad de un variador de frecuencia.
Alimentación y puertos de comunicaciónAlimentan el PLC y lo conectan con otros equipos.Alimentación a 24 V DC. RS-485 para Modbus RTU, Ethernet para Modbus TCP o MQTT, CAN.

Para leer un transmisor de 4-20 mA, consulta cómo convertir una señal de 4-20 mA a 0-10 V en un Arduino PLC. Para enlaces serie, consulta los fundamentos de RS-485 en un PLC industrial y los protocolos de comunicación de la automatización industrial.

El ciclo de scan del PLC, paso a paso

Un PLC no reacciona a una entrada en el instante exacto en que cambia. Trabaja en un bucle de cuatro pasos:

  1. Paso 1Leer entradasCopia el estado de todas las entradas en memoria: la imagen de entradas.
  2. Paso 2Ejecutar el programaEjecuta el programa de principio a fin con esa copia de las entradas.
  3. Paso 3Escribir salidasCopia los resultados a las salidas físicas.
  4. Paso 4Tareas internasComunicaciones, diagnóstico y watchdog. Después el ciclo vuelve a empezar.

El tiempo de una vuelta es el tiempo de scan. Depende de la CPU y del tamaño del programa, y suele estar en el orden de los milisegundos. Una señal más corta que un scan se puede perder. Por eso los pulsos rápidos, por ejemplo de encoders o caudalímetros, van a entradas de contaje rápido o a interrupciones, no al programa normal. Mira un contador de pulsos de producción con interrupciones en un ESP32 PLC.

El watchdog es un temporizador que la CPU debe reiniciar en cada scan. Si el programa se bloquea, por ejemplo en una espera larga, el watchdog vence y el PLC se detiene o se reinicia en un estado conocido. Por eso los programas de PLC nunca esperan dentro de la lógica: usan temporizadores que se comprueban en cada scan. La misma regla vale para el código Arduino, como se explica en millis() frente a delay() en un Arduino industrial y en el ejemplo de watchdog hardware para máquinas desatendidas.

Un primer programa de PLC: control de nivel de un depósito en Structured Text

Un depósito de agua tiene un transmisor de nivel, una bomba de llenado y una baliza de nivel alto. La bomba arranca por debajo de 400 mm y para por encima de 1800 mm. La baliza se enciende por encima de 1950 mm. La diferencia entre el nivel de arranque y el de paro (histéresis) evita que la bomba arranque y pare continuamente.

VAR
    Level_mm  : INT;   (* from a 4-20 mA level transmitter *)
    Pump      : BOOL;  (* digital output to the pump contactor *)
    HighAlarm : BOOL;  (* digital output to a beacon *)
END_VAR

IF Level_mm <= 400 THEN
    Pump := TRUE;      (* low level: start filling *)
ELSIF Level_mm >= 1800 THEN
    Pump := FALSE;     (* high level: stop filling *)
END_IF;

HighAlarm := Level_mm >= 1950;

Entre 400 y 1800 mm, el programa no escribe Pump, así que la salida mantiene su último estado. El PLC ejecuta estas líneas en cada scan. En Ladder Diagram, la misma lógica son tres segmentos: una comparación que activa (set) la bobina de la bomba, otra que la desactiva (reset) y otra que enciende la baliza.

En la PLC Solution Library hay una versión completa con interruptores de flotador en un ESP32 PLC: control de una bomba de agua con flotadores.

Lenguajes de programación de PLC de la IEC 61131-3

La IEC 61131-3 es la norma internacional de los lenguajes de programación de PLC. La edición actual, IEC 61131-3:2025, define tres lenguajes (LD, FBD y ST) y el Sequential Function Chart (SFC), que estructura el programa en etapas y transiciones:

LenguajeTipoUso típico
Ladder Diagram (LD), diagrama de contactosGráfico: contactos y bobinasLógica discreta y enclavamientos. Fácil de leer para electricistas y equipos de mantenimiento.
Function Block Diagram (FBD), diagrama de bloquesGráfico: bloques y conexionesTratamiento de señales analógicas y lazos PID.
Structured Text (ST), texto estructuradoTextual, parecido a PascalCálculos, tratamiento de datos y máquinas de estados.
Sequential Function Chart (SFC), derivado del GrafcetGráfico: etapas y transicionesSecuencias de máquina: dosificación, llenado, arranque y paro.

La edición de 2013 incluía también Instruction List (IL), un lenguaje de texto de bajo nivel que todavía aparece en programas antiguos.

CODESYS y OpenPLC son dos entornos IEC 61131-3: mira cómo configurar CODESYS en un Raspberry PLC, programar en Ladder con CODESYS y los primeros pasos con OpenPLC. Los PLC basados en hardware abierto también se programan en C++ con el Arduino IDE (cómo instalar las placas de Industrial Shields) o en Python y Node-RED sobre Linux (ejemplos de Modbus para Raspberry PLC).

PLC, placa de microcontrolador y PC industrial: comparativa

Una pregunta habitual es si una placa Arduino o ESP32 puede hacer el trabajo de un PLC. El procesador puede ser el mismo. Lo que cambia es todo lo que lo rodea.

CriterioPLCPlaca de microcontroladorPC industrial
Función principalControl determinista de las entradas y salidas de la máquinaPrototipos y productos embebidosDatos, HMI, bases de datos y visión
Niveles de señalDigitales a 24 V DC, analógicas 0-10 V y 4-20 mA, salidas de relé o transistorPines lógicos de 3,3 V o 5 V. Hacen falta placas de interfaz para señales de 24 V.Módulos de E/S aparte o un bus de campo
Entorno eléctricoDiseñado para el ruido y el cableado de un armario eléctrico (IEC 61131-2)Sin protección en la placa solaExisten versiones industriales
Montaje y alimentaciónCarril DIN, 24 V DCPCB, USB o 5 VCarril DIN o panel
Modelo de programaCiclo de scan con watchdogBucle libre escrito por el programadorSistema operativo con tareas. Un runtime de soft PLC añade el ciclo de scan.
ProgramaciónHerramientas IEC 61131-3. C++ o Python en PLC de hardware abierto.C o C++ (Arduino IDE), MicroPythonCualquier lenguaje

Un Arduino PLC o un ESP32 PLC es un microcontrolador dentro de un PLC: el mismo chip que la placa, con entradas y salidas industriales, caja para carril DIN y alimentación a 24 V DC. Se mantienen el Arduino IDE y sus librerías, y se cablea como cualquier otro PLC. Un Raspberry PLC está entre el PLC y el PC industrial: Linux con entradas y salidas de PLC, de modo que CODESYS, Node-RED o Python pueden funcionar junto a la lógica de control.

Más sobre esta pregunta en ¿Es Arduino adecuado para la industria?.

Tipos de PLC: compacto, modular, de seguridad, soft PLC y hardware abierto

  • PLC compacto: CPU, entradas, salidas y alimentación en una sola caja, con un número fijo de E/S. Habitual en máquinas pequeñas.
  • PLC modular: CPU y tarjetas de E/S en un rack o en un bus. Se añaden tarjetas cuando la máquina crece.
  • PLC de seguridad: certificado para funciones de seguridad como paros de emergencia, barreras fotoeléctricas y puertas de seguridad, con canales redundantes y diagnóstico. Un PLC estándar no lo sustituye.
  • Soft PLC: un runtime de PLC sobre un PC o un equipo Linux embebido, por ejemplo CODESYS.
  • PLC de hardware abierto: un PLC industrial construido sobre Arduino, ESP32 o Raspberry Pi y programado con herramientas abiertas.

Industrial Shields fabrica PLC de hardware abierto en tres familias:

PLC basado en Arduino - Qué es un PLC y cómo funciona

Arduino PLC

M-Duino (Arduino Mega) y Ardbox (Arduino Leonardo). Se programan con el Arduino IDE u OpenPLC.

PLC basado en ESP32 - Qué es un PLC y cómo funciona

ESP32 PLC

ESP32 de doble núcleo. Se programa con el Arduino IDE u OpenPLC.

PLC basado en Raspberry Pi - Qué es un PLC y cómo funciona

Raspberry PLC

Raspberry Pi con Linux. CODESYS, Node-RED y Python en el mismo equipo.

Para elegir entre ellas, lee Arduino PLC frente a ESP32 PLC frente a Raspberry Pi PLC. Para usar OpenPLC en cualquiera de ellas, mira ESP32 PLC, M-Duino y Ardbox con OpenPLC.

Aplicaciones de los PLC por sector

Un PLC puede controlar cualquier proceso que se pueda describir con señales y reglas. Estas son las aplicaciones más habituales, con proyectos reales donde los hay.

SectorQué hace el PLCProyecto de ejemplo
Llenado, envasado y etiquetado (alimentación y bebidas, papel, vidrio)Llena por nivel o por peso, mueve las cintas, cuenta productos y para la línea ante un fallo.Cinta de etiquetado de botellas, trazabilidad en una línea de envasado
Motores y cintas transportadorasMarcha y paro, enclavamientos, consigna de velocidad a un variador por Modbus o 0-10 V.Control de velocidad de una cinta con variador
Agua y bombeoNivel de depósitos, alternancia de bombas, control de presión en grupos de varias bombas, drenaje de pozos y alarmas.Tratamiento de agua con ESP32 PLC
Plantas de procesoSecuencias de dosificación y lazos de control de calderas. La seguridad de llama del quemador queda en un control de quemador certificado.Planta de hormigón, automatización de una caldera de vapor
Energía y subestacionesMando remoto de interruptores, conmutación de baterías de condensadores, registro de fallos y eventos, supervisión de inversores solares. El disparo por protección queda en los relés de protección.Supervisión de un inversor Fronius por Modbus TCP (SunSpec)
Instalaciones remotas y mineríaControl remoto y supervisión de líneas y equipos, con telemetría por 4G o LoRaWAN.Simulador de telemetría de instalaciones remotas
Edificios y serviciosClimatización, túneles de lavado, aparcamientos, puertas automáticas, semáforos y depósitos de agua.Túnel de lavado automático, refrigeración por inmersión

Más sectores y ejemplos en las 50 principales aplicaciones industriales.

Siguientes pasos para programar un PLC

¿Tienes una máquina o un proceso que automatizar? Cuéntanos las señales y los protocolos, y un ingeniero te propondrá un modelo de PLC.

Hablar con un ingeniero

Preguntas frecuentes sobre los PLC

¿Qué significa PLC?

PLC son las siglas en inglés de programmable logic controller, controlador lógico programable. En español también se le llama autómata programable o, simplemente, autómata.

¿Un PLC es un ordenador?

Sí, un ordenador especializado. Tiene CPU, memoria y un programa, pero está hecho para una tarea de control: entradas y salidas industriales, un programa cíclico y funcionamiento sin paradas.

¿Qué diferencia hay entre un PLC y un SCADA?

El PLC controla la máquina en tiempo real. El SCADA es un software que supervisa uno o varios PLC: pantallas, alarmas, históricos y consignas. El SCADA lee y escribe datos del PLC con protocolos como Modbus TCP, OPC UA o MQTT. Si el SCADA se detiene, el PLC sigue controlando la máquina.

¿Qué lenguaje de PLC conviene aprender primero?

Ladder Diagram, si trabajas con lógica discreta y con equipos de mantenimiento. Structured Text, si vienes del software o necesitas cálculos. Muchos proyectos usan los dos.

¿Se puede usar un Arduino como PLC?

Una placa Arduino sola puede ejecutar lógica de control, pero tiene pines de 3,3 V o 5 V, ninguna protección frente al ruido de un armario y no se monta en carril DIN. Un Arduino PLC añade entradas y salidas industriales, alimentación a 24 V DC y una caja, y mantiene el Arduino IDE.

¿Qué velocidad tiene un PLC?

Depende del tiempo de scan, que depende de la CPU y del tamaño del programa. Las señales más rápidas que un scan van a entradas de contaje rápido o a interrupciones.

Últimas publicaciones

Your Dynamic Snippet will be displayed here... This message is displayed because you did not provided both a filter and a template to use.

Buscar en nuestro blog

¿Qué es un PLC y cómo funciona?
Boot & Work Corp. S.L, Fernandez Queralt Martinez 10 de febrero de 2022
Compartir esta publicación

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs