Detrás de cada línea de producción automatizada hay un programa de PLC que decide qué se mueve, cuándo y en qué condiciones es seguro hacerlo. La programación de PLC industrial es, por tanto, una de las piezas que más influyen en que una instalación arranque a tiempo y funcione de forma fiable durante años. En esta guía repasamos los lenguajes que define el estándar, las fases de un proyecto real y los errores que vemos con más frecuencia en planta, y cómo evitarlos.
Qué es un PLC y qué hace su programa
Un PLC (controlador lógico programable) es un ordenador industrial diseñado para controlar máquinas y procesos en condiciones exigentes: vibraciones, temperatura, ruido eléctrico y funcionamiento ininterrumpido. Su programa trabaja en un ciclo continuo, llamado ciclo de scan: lee el estado de las entradas (sensores, pulsadores, señales de robots), ejecuta la lógica y actualiza las salidas (motores, válvulas, señales a otros equipos). Este ciclo se repite cada pocos milisegundos.
Programar un PLC no es solo escribir esa lógica. Incluye las secuencias de la máquina, los enclavamientos, los modos manual y automático, la gestión de alarmas, la comunicación con robots y variadores, la interfaz con el operario y la integración con los sistemas de planta. Si quieres profundizar en los fundamentos, en nuestro artículo sobre optimización de PLCs en proyectos industriales explicamos sus beneficios en detalle.
Lenguajes de programación de PLC: el estándar IEC 61131-3
La norma IEC 61131-3 define los lenguajes de programación para PLC que soportan, con distintos nombres, todos los grandes fabricantes: Siemens TIA Portal, Rockwell Studio 5000, Beckhoff TwinCAT o Mitsubishi GX Works.
- Diagrama de contactos (Ladder, LD): el lenguaje gráfico heredado de los esquemas eléctricos de relés. Muy legible para técnicos de mantenimiento, ideal para lógica discreta y enclavamientos.
- Diagrama de bloques de funciones (FBD): lógica representada como bloques conectados. Útil para control de procesos, lazos y lógica combinacional.
- Texto estructurado (ST): un lenguaje de alto nivel similar a Pascal. Es el más potente para cálculos, manejo de datos, bucles y librerías reutilizables. En Siemens se conoce como SCL.
- Diagrama funcional secuencial (SFC): organiza el programa en etapas y transiciones. Perfecto para describir secuencias de máquina de forma clara. En Siemens se corresponde con GRAPH.
- Lista de instrucciones (IL): un lenguaje textual de bajo nivel, similar a ensamblador, declarado obsoleto en la tercera edición de la norma (2013). Sigue apareciendo en instalaciones antiguas, pero no se recomienda para proyectos nuevos.
En la práctica, un buen proyecto combina varios lenguajes: SFC o GRAPH para las secuencias, ST para cálculos y bloques de librería, y Ladder o FBD allí donde el personal de mantenimiento necesita diagnosticar rápido.
| Lenguaje | Tipo | Uso ideal | Limitación |
|---|---|---|---|
| Diagrama de contactos (LD) | Gráfico | Lógica discreta, enclavamientos y diagnóstico rápido en mantenimiento | Difícil de leer con cálculos o manejo de datos |
| Bloques de funciones (FBD) | Gráfico | Control de procesos, lazos y lógica combinacional | Los programas grandes se vuelven densos y difíciles de seguir |
| Texto estructurado (ST) | Textual | Cálculos, datos, bucles y librerías reutilizables | Menos intuitivo para diagnosticar en planta sin formación |
| Diagrama funcional secuencial (SFC) | Gráfico | Secuencias de máquina por etapas y transiciones | La lógica de cada etapa se escribe en otro lenguaje |
| Lista de instrucciones (IL) | Textual | Solo mantenimiento de instalaciones antiguas | Obsoleto desde 2013 y difícil de mantener |
Los lenguajes de la norma IEC 61131-3, de un vistazo.
Fases de un proyecto de programación de PLC
1. Especificación funcional y análisis de requisitos
Todo empieza por entender qué debe hacer la instalación: descripción funcional, lista de entradas y salidas, tiempos de ciclo objetivo, modos de operación y el estándar del cliente. En automoción, cada OEM tiene el suyo (VASS en el grupo Volkswagen, Integra en Daimler, los estándares de BMW o Stellantis), y respetarlo no es opcional.
2. Arquitectura del software
Antes de escribir una línea, se define la estructura: cómo se organizan los bloques, qué librerías se reutilizan, la nomenclatura de variables y la estrategia de alarmas. Una buena arquitectura es la diferencia entre un programa que se mantiene durante quince años y uno que nadie quiere tocar.
3. Desarrollo de la lógica
Secuencias, enclavamientos, modos manual y automático, gestión de fallos y rearme. Aquí se aplican los lenguajes adecuados a cada parte del programa y se construyen bloques reutilizables para equipos que se repiten (cilindros, motores, pinzas, estaciones).
4. HMI, SCADA e integración
El programa del PLC no vive aislado. Hay que diseñar las pantallas del operario, configurar el SCADA y conectar con robots, variadores, sistemas de visión y el MES de planta, normalmente mediante protocolos como PROFINET, EtherNet/IP, OPC UA o MQTT.
5. Seguridad funcional
La lógica de seguridad (paradas de emergencia, barreras, puertas, zonas de robot) se programa en el PLC de seguridad y se valida según ISO 13849 o IEC 62061, con el nivel de prestaciones (PL) o integridad (SIL) que exija el análisis de riesgos.
6. Pruebas y validación virtual
Antes de llegar a planta, el programa se prueba contra un modelo simulado de la célula o de la línea. Con herramientas como PLCSIM Advanced y un gemelo digital en Process Simulate, se pueden validar secuencias, enclavamientos y tiempos de ciclo sin hardware. Es lo que llamamos puesta en marcha virtual.
7. Puesta en marcha en planta
Con el programa ya depurado, la puesta en marcha física se centra en verificar señales, ajustar tolerancias y completar las pruebas de aceptación (SAT). Te lo contamos con más detalle en comisionado en planta vs. virtual.
8. Documentación y soporte
Programa comentado, lista de I/O actualizada, manual de alarmas y copia de seguridad versionada. Es lo que permite al equipo de mantenimiento trabajar con autonomía después del arranque.
Cada error que se detecta en simulación es un error que no para la línea.
Errores frecuentes en la programación de PLC
- Programar sin una especificación cerrada. Cada cambio de requisitos a mitad de desarrollo genera parches que acaban convirtiendo el programa en un laberinto.
- Ignorar el estándar del cliente o de la planta. Un programa que no sigue el estándar OEM suele rechazarse en la aceptación, y rehacerlo cuesta semanas.
- Copiar y pegar en lugar de reutilizar. Duplicar código para cada estación multiplica los errores. Los bloques de librería parametrizables se prueban una vez y funcionan en todas partes.
- Nombres de variables crípticos y código sin comentar. Si el técnico de turno no entiende el programa a las tres de la madrugada, la línea pasa más tiempo parada.
- Alarmas que no explican la causa. Un mensaje como “Fallo estación 3” no ayuda a nadie. Una buena alarma dice qué ha fallado, dónde y qué hacer.
- No contemplar fallos y recuperación. Pérdida de comunicación, corte de aire, pieza mal colocada: el programa debe saber cómo llegar a un estado seguro y cómo rearmar sin intervención manual innecesaria.
- Dejar la seguridad para el final. La lógica de seguridad condiciona la arquitectura. Diseñarla tarde obliga a rehacer secuencias y retrasa la certificación.
- Probar por primera vez en planta. Es el error más caro: cada fallo se descubre con la línea parada, el equipo desplazado y el cliente esperando. Es justo lo que evita la validación virtual previa, y lo que explicamos en por qué el debugging es clave en automatización.
Cómo lo hacemos en RBX Programming
En RBX Programming desarrollamos programación de PLC industrial en Siemens, Rockwell, Beckhoff, Mitsubishi y Schneider, siguiendo los estándares de los principales OEM de automoción. Hemos validado y puesto en marcha más de 400 arquitecturas PLC, y nuestra lógica se prueba contra un gemelo digital antes de llegar a planta. Así, la puesta en marcha física se convierte en una verificación de días en lugar de semanas de prueba y error.
Puntos clave
- La norma IEC 61131-3 define los lenguajes de programación de PLC: Ladder, FBD, texto estructurado y SFC (IL está obsoleto).
- Un buen proyecto combina lenguajes según la tarea: secuencias en SFC, cálculos en ST y lógica discreta en Ladder o FBD.
- Las fases van desde la especificación funcional hasta la documentación, pasando por arquitectura, desarrollo, integración, seguridad y validación.
- Los errores más caros son los que se descubren en planta, con la línea parada.
- Validar el programa en un entorno virtual reduce de forma drástica el tiempo de puesta en marcha.
Preguntas frecuentes
¿Qué lenguaje de programación de PLC es el mejor?
¿Qué es la norma IEC 61131-3?
¿Cuánto dura un proyecto de programación de PLC?
¿Se puede probar un programa de PLC sin el hardware?
¿Qué diferencia hay entre un PLC estándar y un PLC de seguridad?
Conclusión
La programación de PLC industrial va mucho más allá de escribir lógica: es elegir bien los lenguajes, seguir un proceso ordenado y anticipar los errores antes de que lleguen a planta. Cuanto antes se detecta un fallo, más barato es corregirlo. Si tu próximo proyecto todavía deja la primera prueba real para el día del arranque, merece la pena replantear cómo se valida el programa.