Un PLC es un controlador industrial que ejecuta la lógica de una máquina o proceso en un ciclo cerrado y acotado: lee las entradas, evalúa el programa y escribe las salidas, bajo la vigilancia de un watchdog. Consta de CPU, módulos de entradas y salidas y fuente de alimentación, y se programa con los lenguajes de la IEC 61131-3.
De qué se compone
Las siglas corresponden a Programmable Logic Controller, y en castellano el término normalizado es autómata programable. El equipo nació a finales de los años sesenta para sustituir los armarios de relés cableados de la industria del automóvil por algo que pudiera cambiarse sin rehacer el cableado, y esa genealogía se nota todavía en su forma de programarse.
Físicamente hay tres piezas obligatorias y varias opcionales. La fuente de alimentación convierte la tensión del armario en las tensiones internas y suele alimentar también el bus de la periferia. La CPU contiene el procesador, la memoria de programa, la memoria de datos y el sistema operativo de tiempo real del fabricante; en ella residen además las zonas de memoria que el programa manipula: la imagen de proceso de entradas y de salidas, las marcas o banderas, los temporizadores y contadores, y los bloques de datos, con una parte declarada como remanente para que sobreviva a un corte de tensión. Los módulos de entradas y salidas son la frontera con el mundo físico: entradas digitales para finales de carrera, detectores y pulsadores; salidas digitales para electroválvulas, contactores y pilotos; entradas analógicas para sondas de temperatura, células de carga y transmisores de presión en señales normalizadas de 4-20 mA o 0-10 V; salidas analógicas para consignas a variadores y válvulas proporcionales. A eso se añaden, según la máquina, módulos de contaje rápido, de posicionamiento, de pesaje, de comunicaciones y módulos certificados para funciones de seguridad.
El formato puede ser compacto, con CPU, fuente y unas pocas entradas y salidas en un único bloque para máquinas pequeñas, o modular, con un rack y un bus de fondo donde se insertan tarjetas intercambiables. La periferia, además, no tiene por qué estar en el mismo armario: es muy habitual distribuirla por la máquina y conectarla a la CPU con un bus de campo como PROFIBUS, PROFINET o EtherNet/IP, con sensores y actuadores colgados a su vez por IO-Link.
El ciclo de scan y por qué importa el determinismo
Un PLC no ejecuta su programa de forma continua ni orientado a eventos, sino en un ciclo cerrado que se repite indefinidamente y que tiene cuatro fases. Primero lee todas las entradas y copia su valor en la imagen de proceso. Después ejecuta el programa de principio a fin, operando exclusivamente contra esa copia. Luego escribe la imagen de salidas en los módulos físicos. Y por último dedica el resto del tiempo a tareas de fondo: diagnóstico, autotest, atención a las comunicaciones y actualización de la consola de programación.
La imagen de proceso no es un detalle de implementación, es la garantía de coherencia. Como el programa trabaja sobre una fotografía congelada de las entradas, una señal que cambie a mitad de la ejecución no puede provocar que la primera parte de la lógica vea un estado y la segunda vea otro. El precio es que las entradas se muestrean una sola vez por ciclo: un impulso más corto que el tiempo de ciclo puede pasar completamente desapercibido, y por eso existen las entradas con captura de impulso, los contadores rápidos y las interrupciones por hardware, que son las vías para atender lo que no cabe en el ciclo normal.
El tiempo de ciclo es la suma de todo lo anterior, y depende del tamaño del programa, de la potencia de la CPU y de la cantidad de periferia. En máquinas de fabricación va típicamente de fracciones de milisegundo a algunas decenas de milisegundos. Lo relevante no es que sea corto sino que sea acotado y repetible: la CPU tiene configurado un tiempo máximo de ciclo y un watchdog que la lleva a parada si se supera, de modo que un fallo se manifiesta como una parada segura y no como una lógica que responde tarde de forma impredecible. Sobre esa base, los controladores modernos permiten además organizar el programa en tareas: una tarea cíclica de fondo para la secuencia general y tareas de interrupción de periodo constante para lo que necesita ritmo fijo, como un lazo PID o un control de eje. Ese determinismo, saber que la lógica se evalúa siempre dentro de una ventana conocida, es lo que permite firmar que una parada de emergencia actúa en un tiempo demostrable, y es la razón por la que la lógica de una máquina vive en un PLC y no en un ordenador convencional.
Los lenguajes de la IEC 61131-3
La norma IEC 61131-3 normaliza los lenguajes de programación de autómatas y el modelo de software que los sostiene: programas, bloques de función, funciones, tipos de datos y tareas. Define cinco notaciones.
El diagrama de contactos (LD, ladder) representa la lógica como escalones con contactos y bobinas, calcado del esquema eléctrico de relés al que sustituyó; es el más extendido en mantenimiento precisamente porque cualquier electricista de planta lo lee sin formación adicional. El diagrama de bloques funcionales (FBD) encadena bloques con entradas y salidas y resulta natural para lazos de regulación y tratamiento de señal. El texto estructurado (ST) es un lenguaje textual de alto nivel, emparentado con Pascal, que gana terreno en cálculos, tratamiento de recetas y algoritmos que en ladder resultarían ilegibles. El gráfico secuencial de funciones (SFC) describe la secuencia de la máquina como etapas y transiciones y funciona como elemento de estructuración: dentro de cada etapa la acción se escribe en cualquiera de los otros lenguajes. La lista de instrucciones (IL) es una notación textual de bajo nivel, próxima al ensamblador, que la norma declaró obsoleta en su tercera edición y que ya no se recomienda para desarrollos nuevos, aunque sigue apareciendo en programas heredados.
Que la norma exista no significa que un programa se traslade de una marca a otra sin trabajo. Cada fabricante tiene su entorno de desarrollo, sus bibliotecas de bloques y sus extensiones, y la portabilidad real se limita a la estructura y a los conceptos. Para un proyecto de datos esto tiene una consecuencia directa: el mapa de señales de una máquina hay que obtenerlo del programa concreto que gobierna esa máquina, no de un catálogo genérico.
El parque industrial español: capas superpuestas
En una planta española media no hay una generación de autómatas, hay varias conviviendo. Es normal encontrar en la misma nave una CPU instalada hace veinte años, de una gama retirada del catálogo pero perfectamente operativa, gobernando una línea que sigue produciendo; junto a ella una máquina de importación reciente con controlador de otro fabricante y su propia consola; y al lado equipos auxiliares (compresores, grupos de frío, básculas, analizadores de red) que no llevan PLC alguno y solo exponen Modbus serie. Cada uno con su marca, su software de programación, su red y su protocolo: PROFINET o PROFIBUS en el entorno Siemens, EtherNet/IP en el de Rockwell, FINS en autómatas Omron, EtherCAT en control de movimiento, y protocolos propietarios sobre serie en lo más veterano.
Esa heterogeneidad no es un defecto de gestión: es la consecuencia lógica de comprar máquinas cuando hacen falta, a quien mejor las hace, durante treinta años. Y es el punto de partida real de cualquier proyecto de datos. La pregunta operativa nunca es «qué PLC tenemos» en singular, sino qué habla cada equipo, quién conserva el programa fuente y qué se puede leer sin renegociar el mantenimiento de la máquina con su fabricante.
PLC, PC industrial, microcontrolador y PAC
Los cuatro son ordenadores y ahí termina el parecido.
Un microcontrolador es un circuito integrado genérico: hay que rodearlo de electrónica a medida, alimentarlo, protegerlo de las interferencias del armario, programarlo en un lenguaje de propósito general y documentarlo. Sirve para ir dentro de un producto fabricado en serie, donde el coste unitario manda y el diseño se hace una vez. No sirve para gobernar una instalación que otra persona tendrá que diagnosticar y reparar dentro de diez años con la máquina parada y la producción esperando.
Un PC industrial es un ordenador endurecido para planta (sin ventiladores, tolerante a vibración, polvo y temperatura) que ejecuta un sistema operativo de propósito general. Es la herramienta adecuada para visión artificial, para una interfaz de operación exigente, para almacenar datos o para ejecutar cargas de edge computing. Lo que no ofrece de serie es la garantía temporal: su planificador no promete cuándo se ejecutará una tarea, salvo que se le añada un núcleo de tiempo real o un autómata por software que reproduzca el modelo de ciclo del PLC sobre el mismo hardware.
Un PAC (Programmable Automation Controller) es un término acuñado por el análisis de mercado a principios de los dos mil, no una categoría normativa: ninguna norma define qué es un PAC y qué no. Describe controladores que combinan la robustez y el ciclo determinista del PLC con capacidades que tradicionalmente se asociaban al PC: memoria y potencia holgadas, direccionamiento simbólico por etiquetas en lugar de por dirección física, control de movimiento, regulación de proceso y visión integrados en el mismo equipo, programación mixta en IEC 61131-3 y lenguajes de alto nivel, y conectividad de red rica. En la práctica, las gamas altas actuales de los principales fabricantes cumplen esa descripción y se llaman PLC o PAC según la estrategia comercial de cada uno; la frontera es difusa y no debería condicionar una decisión técnica.
El PLC es, frente a los tres, un producto construido alrededor de una promesa concreta: ciclo acotado y vigilado, módulos sustituibles con la instalación en marcha, diagnóstico integrado, disponibilidad de repuestos y soporte durante décadas, lenguajes normalizados que se pueden mantener sin depender de quien los escribió, y variantes certificadas para funciones de seguridad conforme a las normas de seguridad funcional. Cuando hay una parada de emergencia en el lazo, esa combinación no la iguala ninguna de las otras opciones.
Cómo se le sacan datos sin interferir en el control
El PLC de una máquina ya contiene casi todo lo que la gestión necesita: estados de marcha, paro y avería con su motivo, contadores de piezas buenas y rechazadas, tiempos, alarmas y variables de proceso. Sacarlo hacia una capa de datos es, en la inmensa mayoría de los casos, un problema de lectura, no de reprogramación. Conviene entender qué ocurre exactamente cuando alguien pregunta.
Dónde se sirve la petición. Las comunicaciones se atienden en la parte de fondo del ciclo, después de escribir las salidas. Una lectura externa no interrumpe la evaluación del programa y no puede alterar los enclavamientos: leer es intrínsecamente pasivo. Lo que sí hace un sondeo excesivo es alargar el tiempo de ciclo y aumentar su variabilidad, hasta el punto de que algunos controladores permiten limitar explícitamente el porcentaje de ciclo dedicado a comunicaciones, precisamente para que la carga de datos no degrade el control. La regla de ingeniería es dimensionar la frecuencia por la dinámica de cada variable (un contador de piezas no necesita leerse cada cien milisegundos) y agrupar señales contiguas en pocas peticiones grandes en lugar de muchas pequeñas.
Qué es legible y qué no. No todo lo que existe en el programa es accesible desde fuera. Las variables temporales de un bloque y los datos internos de una instancia pueden no tener existencia estable entre ciclos; para que una señal sea consultable tiene que residir en una zona global de datos. Algunos fabricantes ofrecen además bloques de datos optimizados que no son direccionables por desplazamiento absoluto, de modo que los drivers clásicos basados en dirección no los ven y hay que leerlos de forma simbólica, típicamente por OPC-UA.
La coherencia del conjunto. Una lectura de varias palabras no es necesariamente atómica respecto al ciclo: si el programa actualiza esos valores mientras se está sirviendo la petición, el resultado puede mezclar datos de antes y de después. Cuando hace falta un conjunto coherente, un lote de valores que describen el mismo instante, la solución limpia es un bloque de interfaz: un área de datos que el programa rellena de una vez por ciclo, pensada exclusivamente para ser leída desde fuera. Ese bloque cumple dos funciones a la vez: garantiza la coherencia y aísla la capa de datos de los detalles internos del programa, de forma que una modificación futura de la lógica no rompa la integración. Acordarlo con quien mantiene la máquina es también lo que evita la discusión sobre responsabilidades.
Las tres vías de acceso. La primera es la lectura directa por protocolo desde la propia CPU: Modbus TCP o serie en lo más abierto, o el protocolo nativo del fabricante sobre su red. La segunda es el servidor OPC-UA embebido que incorporan las gamas modernas, que resuelve el tipado y el direccionamiento simbólico y permite suscripción por cambio de valor en lugar de sondeo; el coste es que consume memoria, sesiones y elementos monitorizados del propio autómata, con límites que conviene mirar en la ficha técnica antes de diseñar la integración. La tercera es un gateway industrial externo que lea el PLC por lo que hable y republique hacia arriba con tipo, unidades y marca de tiempo, típicamente por MQTT. Esta última tiene una ventaja estructural: el autómata se lee una sola vez, por muchos consumidores que existan después, en lugar de recibir un sondeo por cada sistema interesado como ocurre con los clientes OPC DA clásicos. En equipos veteranos sin Ethernet la vía suele ser serie, y cuando no hay absolutamente nada que leer queda la opción de instrumentar la señal física antes de que entre en la tarjeta de entradas.
El tiempo y los eventos rápidos. El autómata no fecha sus datos salvo que se programe para ello, así que la marca de tiempo la pone quien lee y debe sellarse lo más cerca posible de la máquina. Para eventos más rápidos que el ciclo de lectura la respuesta no es sondear más deprisa, porque eso degrada el control sin resolver nada, sino retenerlos en el PLC: un contador acumulado, un bit enclavado o un pequeño búfer de eventos con su instante conservan lo ocurrido entre lecturas, y se vacían cuando el lector llega. Un contador de piezas nunca pierde información entre dos lecturas; un bit de marcha instantáneo, sí.
Y la línea que no se cruza. La capa de datos lee, no escribe. Extraer datos no exige parar la línea ni recompilar nada si el área a leer ya existe, y cuando hay que crear un bloque de interfaz la modificación es aditiva y se aplica en una parada programada. Escribir consignas desde fuera es otra cosa: es una función de control, y merece el mismo diseño, validación y responsabilidad que cualquier cambio en el programa de la máquina.
Relación con otros términos
El PLC es la frontera inferior del puente OT/IT y la fuente primaria del dato de máquina. Por encima, el SCADA supervisa y el MES gestiona órdenes; en la jerarquía funcional de ISA-95 el PLC ocupa el nivel de control automático, justo por encima de los sensores y actuadores que tocan el proceso físico. Aguas arriba, sus datos alimentan el historian y el cálculo de indicadores como el OEE sin partes manuales. Conectar autómatas de cualquier fabricante a una capa de datos común es el objeto de la conectividad PLC, y el desarrollo o la modificación de la propia lógica corresponde a la programación de PLC, SCADA y HMI.