5. Lenguajes de programación: Ladder o Escalera


                                                  Fuente: Imagen generada por ChatGPT

Índice

  1. Introducción.
  2. Un poco de historia.
  3. ¿Qué es el lenguaje Ladder (LD)?
  4. Componentes básicos.
  5. Elementos del lenguaje.
  6. Tabla de equivalencias.
  7. Ejemplo práctico.

Introducción

Uno de los lenguajes de programación más usados y conocidos es el Ladder Diagram (LD), también conocido como Lenguaje Escalera o KOP. Este lenguaje no solo forma parte del estándar IEC 61131-3, sino que además es uno de los pilares sobre los que se construyó la transición de los antiguos sistemas de control basados en relés hacia los PLCs.


Un poco de historia

El Lenguaje Ladder (LD) nació entre las décadas de 1960 y 1970. Su diseño se inspiró en los esquemas eléctricos de relés, ampliamente comprendidos por los técnicos y electricistas de la época. Esta decisión fue estratégica: permitir que los profesionales del mantenimiento eléctrico pudieran adoptar el nuevo paradigma de control sin necesidad de aprender complejos lenguajes de programación informática. 


Desde entonces, LD se ha mantenido como uno de los lenguajes más populares y utilizados en el sector industrial, especialmente en aplicaciones donde la lógica de control discreta y secuencial es la protagonista.


📌Opinión personal: Aunque hoy en día es el lenguaje más usado (cerca de un 40% de entre todos los lenguajes de programación en PLCs) a medida que vayan pasando los años será sustituido por el lenguaje de Texto Estructurado (ST) que actualmente tiene un 25% de uso y ofrece muchas más posibilidades que el lenguaje Ladder. 



¿Qué es el Lenguaje Ladder (LD)?

El Lenguaje Ladder (LD) es un lenguaje gráfico que representa la lógica del programa mediante una estructura que se asemeja a una escalera, donde:

  • Las líneas verticales representan las líneas de alimentación eléctrica (L y N o + y -).
  • Las líneas horizontales (peldaños) representan la lógica de control, construida con contactos, bobinas, temporizadores, contadores, y otras funciones.

Cada peldaño se interpreta como una instrucción lógica, evaluada de izquierda a derecha, donde los contactos actúan como condiciones (entradas) y las bobinas o salidas como acciones.



Organización de un programa Ladder:


Fuente: Curso Superior de Autómatas Programables. Universidad Católica de Murcia

  • Cada línea horizontal es una rama de control o escalón (en inglés: rung).
  • En cada línea:
    • A la Izquierda se colocan las entradas (botones, sensores, etc.).
    • A la derecha se colocan las salidas (motor, luz, relé, etc.).

Reglas clave del lenguaje LD

  1. Los contactos se leen de izquierda a derecha.
  2. Las líneas de programa se ejecutan de arriba hacia abajo.
  3. Cada rama solo debe tener una bobina de salida.

Ventajas del LD

  1. Ideal para electricistas y técnicos que ya conocen los esquemas eléctricos de control.
  2. Fácil de leer, mantener y modificar.
  3. Estándar industrial adaptado para todos los fabricantes de PLC.
  4. Compatible con normas NEMA (EE.UU.) y IEC (Europa).

Componentes básicos

Elemento

Descripción

Símbolo

Estado lógico

Contacto Normal Abierto (NO) o (NA)

Conduce si la entrada está activada (1)

[ ]

Representa A

Contacto Normal Cerrado (NC)

Conduce si la entrada está desactivada (0)

[/]

Representa Ā

Bobina o Salida / Negada

Representa una acción (motor, luz, etc.)

( ) (/)

Q, por ejemplo



Correspondencia entre lógica de contactos y Álgebra de Boole

Anteriormente hemos visto Álgebra de Boole, aprendimos, que es la base de la comunicación de los ordenadores y PLCs, después de ver el diagrama de ejemplo de un circuito Ladder te podrías preguntar “¿Y que tiene que ver esto con las puertas lógicas?” Esa es una excelente pregunta, y es justo lo que vamos a responder a continuación. 


Diagrama Ladder

Álgebra de Boole

Descripción

[ ]

A

Contacto abierto

[/]

Ā

Contacto cerrado (NOT)

[ ]--[ ]

A · B

Contactos en serie (AND)

[ ]--]

     ]---   

[ ]--]

A + B

Contactos en paralelo (OR)



[ ]--]

     ]--- [/]  

[ ]--]

Ā + B̅

Contactos en paralelo (OR + NOT) NOR

[ ]--[ ]--[/]


Ā · B̅

Contactos en serie (AND + NOT) NAND



Como puedes ver el LD distribuye en serie o en paralelo los contactos NO [  ] y NC [ / ] recreando las puertas lógicas.

Elementos del lenguaje

Elementos de entrada (Contactos)

Tipo de Contacto

Descripción

🟢 Normalmente abierto

Pasa señal cuando la variable = 1

🔴 Normalmente cerrado

Pasa señal cuando la variable = 0

📈 Flanco positivo           

Activa al detectar cambio de 0 → 1

📉 Flanco negativo         

Activa al detectar cambio de 1 → 0



Elementos de salida (Acciones)

Tipo

Descripción

🔵 Bobina simple         

Refleja directamente la lógica de entrada

Bobina negada         

Inversa de la lógica de entrada

⬆️ SET (Puesta a 1)       

Mantiene el estado activado hasta RESET

⬇️ RESET (Puesta a 0) 

Mantiene el estado desactivado hasta SET

🔼 Flanco de subida      

Activa al detectar cambio 0 → 1

🔽 Flanco de bajada      

Activa al detectar cambio 1 → 0


Otros elementos

En LD disponemos de más elementos de programación para emular lo que pueden ser: contadores, temporizadores, comparadores, funciones matemáticas, etc. 

NOTA: Explicarlos todos no es la finalidad de esta entrada, sino tener una primera toma de contacto con LD lo más completa y didáctica posible, más adelante se explicaran cada uno de ellos de forma práctica en la sección de ejercicios básicos.

La tabla de equivalencias

La tabla de equivalencias es una herramienta fundamental en la programación de PLCs. En ella se define qué representa cada símbolo y su dirección física o lógica. Es decir, es un listado donde se asignan alias simbólicos a las entradas, salidas, marcas internas, temporizadores, contadores y otras variables del programa, lo cual facilita la lectura, documentación y mantenimiento del código.
De forma análoga a los esquemas eléctricos, donde cada componente tiene una nomenclatura normalizada (por ejemplo, H1 para una bombilla, S1 para un pulsador, KM1 para un contactor), en la programación de PLC usamos la tabla de equivalencias para identificar con claridad cada elemento que se va a utilizar en el programa.

Nombre simbólico

Dirección

Tipo

Descripción funcional

P_Stop_1

%I0.0

Bool

Pulsador de parada S0 (NC)

P_Start_1

%I0.1

Bool

Pulsador de marcha S1 (NO)

Motor_1

%Q0.0

Bool

KM1, Motor 1

Rele_Interno_1

%M0.0

Bool

Relé interno PLC


  • Nombre simbólico: es el nombre que veremos en el lenguaje de programación.
  • Dirección: Es la nomenclatura que usa el PLC para tenerlo identificado, es como la IP de un ordenador, en este ejemplo y siguiendo las nomenclaturas de siemens, se usa la letra I para las entradas, las Q para las salidas y las M para las marcas (lo veremos más a fondo en el temario de TIA Portal).
  • Tipo: es el tipo de dato que va a utilizar, en este caso como es un booleano es 1 o 0.
  • Descripción funcional: Proporciona una breve explicación del componente físico al que hace referencia.

Ejemplo práctico

No hay nada como un ejemplo para entender los conceptos nuevos visto, por eso mismo vamos a poner uno a continuación:


Vamos a imaginar que una empresa que tiene todo su sistema por relés quiere que le pasemos a PLC su motor principal que está configurado de tal manera para que cuando arranque lo haga en estrella y a los 10 segundos en triángulo, tiene 3 luminarias que indican apagado, encendido y fallo.



Primero de todo necesitamos los dos esquemas: potencia y mando



                                                          Esquema de potencia: Elaboración propia.


Esquema de mando: Elaboración propia.


Una vez que tenemos identificados los dos esquemas, con el que vamos a trabajar es con el esquema

de mando, ya que el de potencia no lo vamos a tocar.

Identificamos las entradas y las salidas para hacer nuestra tabla de equivalencia.


Entradas: F1, S0 y S1

Salidas: KM1, KA1, KM3, KM2, H1, H2 y H3


Una vez identificados entradas y salidas, pasamos hacer la Tabla de Equivalencias.



Tabla de Equivalencias


Nombre simbólico

Dirección

Tipo

Descripción funcional

Rele_termico_1

%I0.0

Bool

Protección (NC) F1

Stop

%I0.1

Bool

Pulsador parada (NC) S0

Start

%I0.2

Bool

Pulsador marcha (NO) S1

Motor_1

%Q0.0

Bool

Arranque motor (KM1)

Arranque_Estrella

%Q0.1

Bool

Arranque en estrella (KM2)

Arranque_Triangulo

%Q0.2

Bool

Arranque en triángulo

(KM3)

Temporizador

T0

Timer

temporizador 10 seg.

H1_apagado

%Q0.3

Bool

Luz de motor apagado

H2_funcionando

%Q0.4

Bool

Luz de motor encendido

H3_fallo

%Q0.5

Bool

Luz de motor en fallo


Como puedes observar, no es necesario representar todos los contactos de los relés físicos en el esquema Ladder, ya que es el PLC quien se encarga de gestionar internamente esas funciones lógicas mediante marcas, memorias y condiciones de control.

Antes de comenzar a programar, es altamente recomendable describir paso a paso el funcionamiento del circuito. Esta fase de análisis previo facilita enormemente la programación posterior y, en muchos casos, representa ya el 50 % del trabajo. Tener claro qué debe hacer el sistema en cada etapa es clave para evitar errores y lograr un control eficiente y seguro.


Funcionamiento del circuito

  1. Estado inicial: Todo está apagado excepto H1_apagado (%Q0.3), que indica que el motor está apagado.
  2. Pulsamos Start (%I0.2):
    • Activa:
      • Motor_1 (%Q0.0).
      • Arranque_Estrella (%Q0.1).
      • H2_funcionando (%Q0.4).
      • Temporizador (T0).
    • Desactiva:
      • H1_apagado (%Q0.3).
3. El Temporizador (T0) cuenta 10 segundos.
4. Al llegar a los 10 segundos:
    • Activa:
      • Arranque_Triangulo (%Q0.2).
    • Desactiva:
      • Arranque_Estrella (%Q0.1).
      • Temporizador (T0).
5. Al pulsar Stop (%I0.1) volvemos al paso 1
6. Si el Rele_termico_1 (%I0.0) se activa:
    • Activa:

      • H3_fallo (%Q0.5).
      • H1_apagado (%Q0.3.
    • Desactiva:
      • El resto del circuito hasta que se rearme.


Una vez hecho esto vamos a programar!



¿Qué podemos observar en este programa?

1. El funcionamiento del circuito se divide en líneas independientes, donde cada línea contiene una única salida, lo cual facilita su lectura, comprensión y mantenimiento.

2. Cada entrada y salida está identificada con su dirección (ej. I0.0, Q0.1) y un nombre descriptivo asignado previamente en la tabla de equivalencias o simbología, lo cual permite una programación clara.

3. Cada línea está comentada con una breve explicación de su función, ayudando a interpretar el propósito de cada sección del programa sin necesidad de memorizar las direcciones físicas.

4. Los elementos de seguridad se representan mediante contactos normalmente cerrados (NC), siguiendo el principio de "fail-safe" o fallo seguro. Esto asegura que ante una desconexión o avería, el sistema se detenga automáticamente.

5. La seguridad no solo se implementa en el hardware (circuito físico), sino también en la programación. Esto garantiza:
  • El buen funcionamiento del sistema.
  • La prevención de averías.
  • La protección de los operarios ante fallos o condiciones anómalas.
6. Se respeta una lógica de funcionamiento estructurada, utilizando condiciones claras, evitando redundancias y asegurando que el programa sea fácil de modificar o ampliar en el futuro.

7. Las condiciones de enclavamiento y auto-retención están correctamente implementadas, permitiendo que ciertas salidas permanezcan activadas hasta que ocurra una condición específica de parada.

8. Se verifica el estado de las entradas y salidas en tiempo real, lo que permite una diagnosis rápida y efectiva mediante el modo online del PLC.


¿Cómo se conectan los cables al PLC?

Ya tenemos el programa hecho, ahora solo nos falta cablear y seguramente ahora mismo no estarás viendo ninguna ventaja, todo lo contrario, ahora hay que saber programar, direccionar, ¡todo un lio! pero aún no hemos terminado! seguro que te hago ver las ventajas del PLC a los relés. ¡Vamos a cablear el PLC!


Entradas

PLC Siemens S7-1200

Ahora si podemos entender de donde vienen los números que le asignamos a cada entrada, son las mismas que nos muestra el PLC, es una manera de identificarlas, igual pasa con las salidas.


Salidas

                                                                   PLC Siemens S7-1200
Si conectásemos las entradas y salidas al azar el programa que hacemos no serviría para nada, por eso es muy importante fijarse donde conectamos cada componente.

¿Qué ventaja nos ofrece esto respecto al circuito cableado?

La principal ventaja radica en la flexibilidad y facilidad de reconfiguración. Con un sistema basado en PLC, podemos cambiar la lógica de control, los tiempos de actuación, las condiciones de arranque/parada y muchas otras funciones simplemente modificando el programa, sin tener que tocar ni un solo cable. Es decir, la misma instalación física puede adaptarse a diferentes necesidades operativas sin intervención eléctrica, lo cual ahorra tiempo, reduce costes de mantenimiento y minimiza errores.

En cambio, en un armario de relés convencional, cualquier modificación en el comportamiento del sistema requiere una intervención física, como mover cables, cambiar conexiones, añadir relés o temporizadores, lo que implica más tiempo, mayor riesgo de fallos y menor adaptabilidad.



Como siempre te dejamos abajo videos donde se muestra de una forma más práctica todo el contenido que hemos ido viendo. Nos vemos en el siguiente post donde veremos el Lenguaje Estructurado.






Te ánimo a profundizar en el temario en la bibliografía que te dejo abajo.


— Juanjo





Bibliografía

Lenguaje ladder. (n.d.). Wikipedia. Retrieved June 17, 2025, from https://es.wikipedia.org/wiki/Lenguaje_ladder

Siemens. (2006, 03). Esquema de contactos (KOP) para S7-300 y S7-400. https://cache.industry.siemens.com/. Retrieved June 17, 2025, from https://cache.industry.siemens.com/dl/files/395/18654395/att_33367/v1/KOP_s.pdf


Publicar un comentario

0 Comentarios