Cargando el progreso local…
PLC Gym
Inicio de PLC GymNivel 1, 0 XP · tu progreso
Todas las guías

Lenguajes de programación PLC: la norma IEC 61131-3 explicada

Los lenguajes de programación PLC según IEC 61131-3: qué define, qué pasó con la lista de instrucciones y por qué el código no pasa entre fabricantes.

Dos PLC de formas distintas uno al lado del otro en un mismo riel, con una laptop delante que muestra lenguaje ladder.
Una sola norma, y el software de cada fabricante la sigue aplicando a su manera.
En esta guía
  1. Qué es en realidad IEC 61131-3
  2. Las ediciones hasta ahora
  3. Los lenguajes de programación PLC que define
  4. Qué pasó con la lista de instrucciones
  5. La misma lógica en cada lenguaje
  6. Qué lenguaje usar y cuándo
  7. Por qué el código sigue sin pasar de un fabricante a otro
  8. Dónde practicar
  9. Fuentes

Los lenguajes de programación PLC tienen una norma internacional que dice cómo deben verse y comportarse: IEC 61131-3. Seguramente la acabas de ver en una oferta de trabajo o en la ficha técnica de un software, y quieres saber qué significa para ti.

La versión corta: gracias a ella, ladder, el diagrama de bloques de funciones y el texto estructurado te resultan familiares en el software de cualquier fabricante. Mucha gente sigue hablando de cinco lenguajes de PLC, pero la edición de 2025 cambió esa cuenta. Y la norma no te deja tomar un programa de Siemens y pasarlo tal cual a un controlador Allen-Bradley.

La norma completa es un documento de pago de 518 páginas. Por eso esta guía se basa en la ficha y la vista previa de IEC, los documentos de PLCopen y los manuales de los fabricantes, todos enlazados al final.

Qué es en realidad IEC 61131-3

IEC 61131 es una familia de normas para controladores programables, publicada por la Comisión Electrotécnica Internacional. La parte 3 es la de los lenguajes de programación. Define la sintaxis y el significado de cada lenguaje, y también lo que comparten: tipos de datos como BOOL, INT y REAL, variables, y las piezas que llama unidades de organización de programa, que son programas, bloques de función y funciones.

No dice cómo deben ser los menús y las pantallas del software. Según PLCopen, ahí es donde cada proveedor puede hacerlo a su manera. Y no es una titulación que tú tengas. Si llegaste buscando un certificado, mira la guía sobre cursos de PLC con certificado.

PLCopen también aparece mucho. IEC escribe la norma. PLCopen es una asociación independiente que la promueve, añade bibliotecas comunes, como bloques de función para control de movimiento, y certifica herramientas de programación según la norma.

Las ediciones hasta ahora

EdiciónAñoQué trajo
Primera1993Publicada como IEC 1131-3, renumerada después
Segunda2003Una revisión después de diez años de uso
Tercera2013Nuevos tipos de datos, espacios de nombres y funciones orientadas a objetos. Lista de instrucciones marcada como obsoleta
Cuarta2025Cadenas UTF-8. Lista de instrucciones fuera del alcance

Esto está al día a noviembre de 2026, e IEC indica una fecha de estabilidad de 2027, cuando revisa la edición. No des por hecho que tu software ya se puso al día. La ayuda de Studio 5000 versión 37 de Rockwell dice que sus funciones FBD siguen la edición 3, y un manual de conformidad de Siemens de 2015 compara STEP 7 con la tercera edición.

Los lenguajes de programación PLC que define

Aquí están, incluido el que ya salió.

  • Diagrama de contactos, ladder (LD). Contactos y bobinas entre dos rieles, dibujados como un circuito de relés. La guía de lenguaje ladder empieza desde cero.
  • Diagrama de bloques de funciones (FBD). Cajas unidas por cables. PLCopen dice que es muy común en la industria de procesos. Hay una entrada en el glosario si es nuevo para ti.
  • Texto estructurado (ST). Código con tipos, con IF, CASE y bucles, que tiene raíces en Ada, Pascal y C. La guía de texto estructurado cubre lo básico.
  • Diagrama de funciones secuenciales (SFC). Pasos unidos por transiciones, como un diagrama de flujo. En sentido estricto, la norma lo trata como una forma de estructurar programas más que como un lenguaje propio. La guía de Grafcet y SFC lo explica.
  • Lista de instrucciones (IL). Líneas cortas de texto, una operación por línea, muy parecido al ensamblador.

Cada fabricante usa sus propios nombres, y eso confunde a mucha gente.

En la normaSiemens TIA PortalRockwell Studio 5000Beckhoff TwinCAT 3
Diagrama de contactos (ladder)LADLadder DiagramLD
Diagrama de bloques de funcionesFBDFunction Block DiagramFBD
Texto estructuradoSCLStructured TextST
Diagrama de funciones secuencialesGRAPHSequential Function ChartSFC
Lista de instruccionesSTLNo está entre sus editoresIL

En TIA Portal en español, LAD aparece como KOP, FBD como FUP y STL como AWL. El manual de conformidad de Siemens hace corresponder SCL con el texto estructurado y GRAPH con SFC. La versión 16 de su guía de programación muestra GRAPH y STL en el S7-1500 pero no en el S7-1200, así que revisa tu propio controlador y versión.

Qué pasó con la lista de instrucciones

Muchas páginas en internet están desactualizadas en esto, así que aquí va lo que se puede comprobar.

  1. Edición de 2013. La ficha de IEC todavía nombra la lista de instrucciones como lenguaje textual, junto al texto estructurado. Pero las guías de codificación de PLCopen de 2016 la ponen entre las funciones que la tercera edición marca como obsoletas, y dicen que ya no se usen.
  2. Edición de 2025. La ficha de IEC nombra el texto estructurado como único lenguaje textual, y el capítulo de lenguajes textuales en el índice de la vista previa solo incluye texto estructurado.
  3. El texto exacto. El anexo B de la edición de 2025 enumera lo que se quitó y lo que quedó obsoleto. Está detrás del muro de pago, así que esta guía no puede mostrarte la frase en sí.

La página principal de resumen de PLCopen todavía la incluía junto a la edición de 2025 en noviembre de 2026, aunque su página de estado no. Esta guía se queda con lo que dice IEC.

Nada de eso la borra de las fábricas. La guía de Siemens incluye STL en el S7-1500. CODESYS llama a IL "ahora obsoleta" y la oculta por defecto, pero puedes activarla. Beckhoff dijo en 2022 que se usa poco. Así que puedes encontrarla en equipos antiguos. Aprende a leerla si tu trabajo lo pide, y no empieces nada nuevo con ella.

La misma lógica en cada lenguaje

Aquí tienes una lógica pequeña escrita en cada uno. Pulsas Start y la bomba arranca, y sigue en marcha cuando sueltas. Pulsas Stop y se detiene. Stop siempre gana. Eso es una autorretención. Son bocetos en texto simple. El editor de cada fabricante los dibuja a su manera. Aquí Stop vale TRUE mientras está pulsado. Un botón de paro real muchas veces se cablea normalmente cerrado, y eso invierte la condición.

Ladder. La rama de abajo es el propio contacto de la bomba, que mantiene el renglón activo después de soltar Start.

    Start         Stop                 PumpOn
----| |----+------|/|-----------------( )----
           |
    PumpOn |
----| |----+

Texto estructurado. Una sola línea. En SCL de Siemens es igual, con un # en cada variable de la interfaz del propio bloque.

PumpOn := (Start OR PumpOn) AND NOT Stop;
#PumpOn := (#Start OR #PumpOn) AND NOT #Stop;

Diagrama de bloques de funciones. El OR alimenta al AND. La pequeña o significa que esa entrada está invertida.

           +------+
Start -----| OR   |-----+
PumpOn ----|      |     |     +------+
           +------+     +-----| AND  |----- PumpOn
                              |      |
Stop -------------------------o      |
                              +------+

Lista de instrucciones. Carga Start, haz OR con el estado de la propia bomba, AND con lo contrario de Stop, y guarda el resultado.

LD   Start
OR   PumpOn
ANDN Stop
ST   PumpOn

Diagrama de funciones secuenciales. Aquí no hay una sola regla, solo dos pasos y las condiciones para pasar de uno a otro. N significa que la salida solo está activa mientras ese paso está activo.

[ Stopped ]  paso inicial
     |
     +  Start AND NOT Stop
     |
[ Running ]  N: PumpOn
     |
     +  Stop
     |
  vuelve a Stopped

Hace el mismo trabajo, aunque un diagrama pasa de un paso a otro con sus propias reglas, así que no des por hecho que el tiempo coincide escaneo a escaneo con un renglón. Además es demasiado para una sola bomba, y justo esa es la idea. SFC vale la pena cuando una máquina pasa por varias fases.

Puedes escribir tú mismo la versión en ladder o en texto en Haz que siga en marcha.

Qué lenguaje usar y cuándo

No hay un ganador. PLCopen dice que la elección depende de cosas como tu formación, el problema que tienes delante y quién más tiene que trabajar con el código.

El trabajoUsaPor qué
Lógica de encendido y apagado, enclavamientosLadderSe lee como un plano eléctrico, práctico junto a la máquina
Señales que pasan por cálculosFBDPuedes seguir la señal de caja en caja
Matemáticas, arreglos, muchas ramasTexto estructuradoIF, CASE y los bucles quedan ordenados donde los renglones se alargan
Fases, como llenar, mezclar, vaciarSFCVes cada paso y su condición
Código antiguo que heredasteLista de instruccionesMantenlo, no empieces trabajo nuevo con ella

No tienes que elegir solo uno. Siemens dice que cada bloque puede escribirse en cualquiera de sus lenguajes, y Beckhoff explica cómo combinar lenguajes en TwinCAT. Y si tu empresa o tu cliente tiene una norma de programación, esa manda sobre cualquier cosa de esta guía.

Por qué el código sigue sin pasar de un fabricante a otro

La propia introducción de PLCopen dice que los lenguajes están definidos con tanto detalle que no dejan lugar a dialectos. El mismo documento dice que la norma permite implementaciones parciales. Ese segundo punto pesa más de lo que parece.

Los fabricantes pueden implementar solo una parte. El manual de conformidad de Siemens explica la regla: un fabricante puede dar soporte a un subconjunto coherente de funciones, siempre que diga cuál. PLCopen añade que esto incluye cuántos lenguajes ofrece. Así que "compatible con IEC 61131-3" en una ficha técnica dice menos de lo que parece. Pregunta qué funciones, y en qué lenguajes.

La misma idea se escribe distinto. Aquí tienes un temporizador de retardo a la conexión de dos segundos en el lenguaje de texto de cada fabricante.

// Siemens TIA Portal, SCL
#Delay(IN := #Start, PT := T#2s);
#PumpOn := #Delay.Q;
// Rockwell Studio 5000, texto estructurado
Delay.PRE := 2000;
Delay.TimerEnable := Start;
TONR(Delay);
PumpOn := Delay.DN;
// Beckhoff TwinCAT 3, texto estructurado
Delay(IN := Start, PT := T#2S);
PumpOn := Delay.Q;

TIA Portal y TwinCAT se ven casi iguales. Pero Studio 5000 usa otra instrucción, toma el preset en milisegundos y llama al bit de terminado DN en lugar de Q.

Los fabricantes añaden sus propias instrucciones. Rockwell describe instrucciones especiales para procesos, variadores y movimiento. La página de certificación de PLCopen advierte que los bloques propios de un proveedor pueden no tener equivalente en el otro sistema, y entonces no funcionarán allí.

El hardware no viaja. Los controladores, las direcciones de E/S, las redes y la HMI pertenecen al equipo que tienes delante. Las guías de codificación de PLCopen recomiendan evitar direcciones físicas fijas en el código, en parte porque cambiar de fabricante obliga a editarlas.

Hay soluciones parciales. La certificación Reusability Level de PLCopen permite que las herramientas intercambien funciones y bloques de función como texto estructurado simple, pero solo con los tipos de datos que ambas admiten y las funciones que define la norma. IEC 61131-10, publicada en 2019, es un formato XML común para exportar e importar proyectos, y Beckhoff documenta una exportación PLCopen XML para TwinCAT. Pero un sobre común no significa que el otro lado pueda leer la carta.

Así que trata el paso de un fabricante a otro como un trabajo de traducción, y deja tiempo para probar. Lo que de verdad se lleva de un lado a otro eres tú. Aprende una vez el escaneo, las autorretenciones, los temporizadores y las secuencias, y seguirán teniendo sentido en la siguiente herramienta.

El conversor de código PLC de PLC Gym puede ayudarte con la traducción. Reescribe ladder y texto estructurado entre Siemens, Rockwell y TwinCAT, incluidos temporizadores, flancos de un solo ciclo y estilos de variables. Solo convierte lógica, así que nada de configuración de hardware, redes, HMI ni bloques de biblioteca del fabricante como PID y movimiento, y no acepta STL, IL, FBD, SFC ni GRAPH. Que pase significa que los dos programas coincidieron en las pruebas del simulador, lo cual no es una garantía. Los archivos .scl y .L5X están hechos para TIA Portal y Studio 5000, pero nadie ha comprobado todavía que se importen allí, así que igual tendrías que probarlos en el software real.

Dónde practicar

El curso de programación de PLC de PLC Gym funciona en el navegador sin instalar nada. Escribes en los lenguajes de los fabricantes en el simulador propio de PLC Gym: SCL, LAD, FBD y GRAPH para Siemens, texto estructurado, ladder, FBD y SFC para Rockwell, y texto estructurado para TwinCAT. Una máquina 3D reacciona a tu código. Dale significado a la señal es buena para FBD, y Una tanda, cuatro fases para SFC y GRAPH. Las primeras misiones son gratis con una cuenta gratuita, y el resto está en Pro, con los detalles en la página de precios.

No es un controlador real. No se conecta a E/S reales, no está hecho por Siemens, Rockwell ni Beckhoff ni tiene relación con ellos, y no tiene editor de lista de instrucciones ni de STL. Para trabajar en una máquina real necesitas el software del fabricante y hardware real.

Fuentes

¿Tienes preguntas sobre esto?Pregunta en el Vestuario

Pruébalo en una máquina

Gratis · Funciona en tu navegador

Pruébalo en una máquina que funciona

Escribe gratis código real de Siemens o Rockwell en el simulador de PLC online y mira cómo una bomba, un tanque o una línea de llenado en 3D hacen exactamente lo que les dijiste. No hay nada que instalar.