Glosario de Automatización • Selección de lenguaje IEC 61131-3

Lenguajes IEC 61131-3: cuándo usar cada uno

Ingeniería Merobix • • 5 min de lectura

IEC 61131-3 define cinco lenguajes de programación, y todo ingeniero de automatización termina preguntándose no qué son, sino cuál tomar. En la práctica los lenguajes no son intercambiables: cada uno se acomoda a una forma distinta de lógica, y mezclarlos bien es una marca de un programa maduro. Esta página es una guía de selección que empareja cada uno de los cinco lenguajes con los problemas que le quedan, para que usted elija a propósito y no por costumbre. Asume que usted ya sabe que los lenguajes existen.

Volver al glosario

Selección de lenguaje IEC 61131-3 en una línea: IEC 61131-3 ofrece cinco lenguajes, cada uno adecuado a una forma de lógica distinta. Use el diagrama de escalera para lógica discreta de interbloqueos y reemplazo de relevadores que mantenimiento pueda leer, el diagrama de bloques de función para procesamiento continuo de señales y control, el texto estructurado para matemáticas, ciclos y algoritmos complejos, el diagrama de funciones secuenciales para secuencias paso a paso y lotes, y la lista de instrucciones, hoy mayormente heredada, para código de bajo nivel parecido a ensamblador.

Los lenguajes se acomodan a formas de lógica distintas

La razón por la que IEC 61131-3 estandarizó cinco lenguajes en lugar de uno es que la lógica industrial viene en formas distintas, y forzar cada problema a una sola notación produce código incómodo y difícil de mantener. El interbloqueo discreto se lee con naturalidad como escalones de escalera; un lazo de control se lee con naturalidad como bloques de función conectados; un algoritmo numérico se lee con naturalidad como texto. Elegir el lenguaje que coincide con la forma de la lógica es lo que mantiene legible un programa. La página del sitio sobre IEC 61131-3 presenta los cinco; esta página trata de escoger entre ellos.

Un solo proyecto normalmente usa varios. Es normal y buena práctica escribir los interbloqueos de seguridad en escalera porque los técnicos pueden leerlos, el control analógico en bloques de función y la secuencia de lote en diagrama de funciones secuenciales, todo en el mismo controlador. La habilidad está en emparejar cada parte de la aplicación con el lenguaje que la expresa con más claridad, no en comprometer el programa completo a una sola notación.

Emparejar cada lenguaje con su trabajo

La tabla siguiente empareja cada lenguaje con la lógica que le queda y el porqué.

LenguajeMejor paraPor qué
Escalera (LD)Interbloqueos discretos, lógica de relevadoresLegible por mantenimiento, booleano visual
Bloques de función (FBD)Control continuo y analógicoFlujo de señal entre bloques reutilizables
Texto estructurado (ST)Matemáticas, ciclos, algoritmosConciso para cómputo y lógica
Funciones secuenciales (SFC)Secuencias por pasos, lotesPasos y transiciones explícitos
Lista de instrucciones (IL)Código heredado de bajo nivelTipo ensamblador, mayormente en desuso

La escalera se gana su lugar duradero porque un técnico de mantenimiento a las dos de la madrugada puede rastrear un escalón para encontrar por qué un motor no arranca, lo que es una ventaja operativa real que un bloque denso de texto estructurado no ofrece. El texto estructurado se gana su lugar en la situación opuesta: un cálculo de escalamiento, un ciclo sobre un arreglo o una máquina de estados que se desparramaría en docenas de escalones se colapsa en unas pocas líneas legibles.

El diagrama de bloques de función es el hogar natural del control continuo, donde las señales fluyen por bloques PID y de filtrado, y el diagrama de funciones secuenciales es el hogar natural de cualquier cosa que avanza en pasos explícitos, como una secuencia de arranque o una receta de lote, porque hace visibles el paso actual y las condiciones para avanzar. La lista de instrucciones es la que debe evitarse en trabajo nuevo; es de bajo nivel y cada vez tiene menos soporte.

Elegir bien a lo largo de un proyecto

La regla práctica es dejar que la lógica escoja el lenguaje. Si usted se encuentra armando un cálculo complejo en escalera con docenas de instrucciones matemáticas, eso es el texto estructurado pidiendo que lo usen. Si se encuentra siguiendo una secuencia con una maraña de bits de estado e interbloqueos, eso es un diagrama de funciones secuenciales pidiendo que lo usen. Pelear contra el lenguaje es una señal de que eligió el equivocado para esa parte del trabajo.

Las convenciones del equipo y del sitio también cuentan. Un sitio cuyos técnicos solo leen escalera puede estandarizarla para la lógica que ellos deben diagnosticar, aceptando algo de verbosidad con tal de que el código lo mantenga la gente que lo posee a las dos de la madrugada. La elección correcta equilibra el ajuste natural del lenguaje contra quién tiene que leer y mantener el resultado, lo que es un juicio de ingeniería genuino y no un concurso de pureza.

Sea cual sea la mezcla que elija, los valores que estos programas calculan y controlan fluyen al final hacia los operadores, y una plataforma de monitoreo como Merobix grafica esos tags entre sitios sin importar qué lenguaje los produjo. La elección de lenguaje gobierna cómo se escribe y mantiene la lógica; la capa de monitoreo consume los resultados, así que la misma imagen operativa emerge sin importar cómo se programó cada controlador.

Preguntas frecuentes

¿Cuándo debo usar texto estructurado en lugar de escalera?

Use texto estructurado cuando la lógica es computacional o se desparramaría en escalera: escalamiento y matemáticas, ciclos sobre arreglos, máquinas de estado complejas y manejo de cadenas se leen mucho más claro como unas líneas de texto que como docenas de escalones. Use escalera cuando la lógica es interbloqueo discreto que mantenimiento debe diagnosticar, porque un técnico puede rastrear un escalón visualmente para encontrar por qué algo no corre. La regla es emparejar el lenguaje con la forma de la lógica, y es normal usar ambos en un programa.

¿La lista de instrucciones se sigue usando en IEC 61131-3?

La lista de instrucciones es el lenguaje heredado de los cinco y es mejor evitarla en trabajo nuevo. Es una notación de bajo nivel, parecida a ensamblador, que ha sido marcada como obsoleta en la norma y cada vez tiene menos soporte en las herramientas modernas de programación. El código existente aún puede contenerla, pero la lógica nueva se escribe mejor en uno de los otros cuatro lenguajes, eligiendo texto estructurado para las tareas computacionales en las que antes se usaba. Trate encontrarla como mantener código heredado, no como un lenguaje por adoptar.

Fuentes y lecturas

Referencias primarias de los organismos de normas y reguladores que definen este tema:

Más en PLC, RTU, HMI y DCS
Panorama de las partes de IEC 61131  •  IEC 61131-3  •  Selección de fuente de energía remota  •  PWM vs MPPT  •  APDU, APCI y ASDU  •  Todo en PLC, RTU, HMI y DCS →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →