No te pierdas el evento líder en la industria. ¡REGÍSTRATE AQUÍ!
Registro abierto, no te pierdas el evento líder en la industria. ¡REGÍSTRATE AQUÍ!

Decisiones acerca del lenguaje de programación PLC

Cuando se trata de evaluar lenguajes de programación de PLC, es importante darse cuenta de que probablemente usará más de uno. Por eso es clave elegir las herramientas de programación adecuadas para el trabajo.

Doug Yerger, ingeniero principal de Grantek
Doug Yerger, ingeniero principal de Grantek

Aunque los lenguajes de programación de PLC (controlador lógico programable) pueden no recibir la atención que reciben los lenguajes de programación de computación general, como JavaScript, C# o Python, siguen siendo fundamentales para las industrias de fabricación y procesamiento. Y aunque los lenguajes de programación de PLC no han sufrido tantos cambios o actualizaciones como la programación informática general, estos lenguajes tampoco han sido estáticos.

Para verificar el estado de los lenguajes de programación de PLC, hablamos con Doug Yerger, ingeniero principal de Grantek, un integrador de sistemas de automatización industrial, para un episodio reciente de la serie de podcasts Automation World Gets Your Questions Answered.

¿La desaparición de la lista de instrucciones?

Una cosa que no ha cambiado recientemente con los lenguajes de programación de PLC es que todavía hay dos tipos básicos: programación textual usando comandos escritos y programación gráfica donde las secuencias lógicas se organizan moviendo objetos en el entorno de programación. Comenzando nuestra discusión con un enfoque en los lenguajes textuales, Yerger señaló que el lenguaje de programación de PLC textual de la lista de instrucciones es "un lenguaje de muy bajo nivel, basado en mnemónicos" cuyos días parecen estar contados.

La lista de instrucciones ha quedado "en desuso en IEC 61131-3 y probablemente no estará en la próxima versión del estándar, según el estándar en sí", dijo. “Creo que verá que los controladores y el software de programación que admiten la Lista de instrucciones ahora continuarán admitiéndolo durante bastantes años, pero no creo que nadie lo incluya en sus [nuevas] líneas de productos si es un estándar en desuso”.

Ejemplo de texto estructurado. Fuente: drivesandsystems.comEjemplo de texto estructurado. Fuente: drivesandsystems.com

Esta desaprobación de la lista de instrucciones en el estándar IEC se debe a que el lenguaje se considera un "lenguaje obsoleto similar a un ensamblador", dijo Yerger. “Y hablando con mis compañeros en nuestra empresa, nadie ha visto la Lista de instrucciones utilizada en ninguno de nuestros proyectos. Nos ceñimos al texto estructurado y a los demás idiomas”.

A pesar de la perspectiva sombría de la Lista de instrucciones, el texto estructurado se mantendrá, ya que es un lenguaje de programación de alto nivel. “Si proviene de una formación en informática, el texto estructurado será un campo muy nativo para usted. También es muy bueno para bucles y manipulación de cuerdas”, dijo Yerger. “Y si tiene que analizar códigos de barras, eliminar los caracteres ASCII y cosas por el estilo, eso es mucho más fácil de hacer en un lenguaje textual de alto nivel que en [un lenguaje de programación gráfico como] Diagrama de escalera, donde va tratar con cada byte individualmente.”

El reino de la programación gráfica

Al explicar las principales diferencias entre los lenguajes de programación de PLC gráficos, Yerger comenzó con el diagrama de escalera, observando su desarrollo a partir de la lógica de relés. “(Diagrama de escalera) se parece a los diagramas lógicos de relés de hardware de la vieja escuela. Es básicamente todo matemática y decisiones booleanas, en su mayor parte”, dijo. Mientras tanto, el lenguaje de bloques de funciones permite a los programadores organizar diferentes bloques en una pantalla gráfica que representan las entradas y salidas entre el controlador y los dispositivos conectados a él.

Yerger describe el lenguaje de gráficos de funciones secuenciales como “el bicho raro de los cinco lenguajes [de programación de PLC]. No lo vemos como un lenguaje, es una estructura del flujo de la lógica, porque permite bifurcarse en procesos paralelos que son puntos de decisión basados ​​en condiciones. Básicamente, con el gráfico de funciones secuenciales, hay un elemento de acción en cada bloque y cada acción puede tener una serie de eventos. Estos eventos van a ser lo que suceda en cada uno de esos bloques de acción. Pero los eventos probablemente se programarán en diagrama de escalera desde los bloques de funciones de texto estructurado. El gráfico de funciones secuenciales controla el flujo [de las operaciones] al decir: "haga esto y espere hasta que se cumpla esta condición". Analiza el flujo del programa de esta manera dando instrucciones basadas en las condiciones que se cumplen. Así que ahí es donde es un poco diferente a los otros idiomas”.

Ejemplo de tabla de función secuencial. realpars.comEjemplo de tabla de función secuencial. realpars.com

Esta naturaleza de flujo de programa del gráfico de funciones secuenciales es la razón por la que se usa con tanta frecuencia. “Es genial para la secuenciación escalonada o discreta. Un ejemplo clásico sería un motor de procesamiento por lotes donde podría tener, digamos, tres ingredientes agregados para una receta y esos ingredientes serán tres ramas paralelas en el lenguaje de programación. Pero no vas a encender el agitador de la batidora hasta que los tres estén agregados. Entonces tendrá esta serie de pasos que deben suceder, algunos paralelos, algunos secuenciales, donde el controlador esperará a que se cumplan las condiciones entre ellos antes de seguir adelante. Cuando llegue al paso de agitación, el control de los motores se puede realizar en el diagrama de escalera, lo que activará los gráficos de funciones secuenciales que se ejecutan en un proceso separado. Cuando el programa del gráfico de función secuencial ve que se completó el desencadenante de las agitaciones, pasará a la siguiente acción en la secuencia”.

Ejemplo de diagrama de escalera. Source: automationprimer.comEjemplo de diagrama de escalera. Source: automationprimer.com

En América del Norte, más del 90% de la programación de control se realiza en diagrama de escalera, dijo Yerger. “Es excelente para sistemas lógicos discretos que usan mucho el álgebra booleana y tienen muchos interruptores de límite y encendidos/apagados”, dijo. “También es muy fácil de entender para los electricistas experimentados porque provienen de la lectura del hardware (en la que se basa el diagrama de escalera). Los técnicos más nuevos que han aprendido C u otros lenguajes de programación de alto nivel probablemente se inclinarán por el texto estructurado porque les resultará más familiar”.

Se prefiere la programación de bloques de funciones para procesos continuos en los que toma una entrada analógica y la escala, dijo Yerger. Es por eso que a menudo se usa para bucles PID. También hay varios sistemas de seguridad que utilizan bloques de funciones como método de programación, agregó.

La conclusión principal al observar los diferentes lenguajes de programación de PLC es que es raro que solo se use uno. “Especialmente si se trata de un programa grande, vamos a tener rutinas y programas que usan una variedad de lenguajes”, dijo Yerger. “La mayoría podría estar en diagrama de escalera, pero si tenemos que hacer un gran procesamiento de arreglos, usaremos texto estructurado para manejar esos arreglos. No nos apegaremos a un solo [idioma] a menos que, por supuesto, nuestro cliente tenga ese requisito. Y hay varios clientes que sí dicen: Use Ladder only. Pero, por lo general, tratamos de disuadirlos y llevarlos a una filosofía más moderna de usar la herramienta adecuada para el trabajo”.

Más allá de IEC 61131-3

La introducción de controladores de automatización programables (PAC) para tareas de automatización más complejas amplió el ámbito de los lenguajes de controlador más allá de los lenguajes IEC 61131-3, lo que permitió el uso de lenguajes más conectados con el mundo de TI, como C y C+.

Doug Yerger, ingeniero principal de GrantekDoug Yerger, ingeniero principal de Grantek

Yerger dijo que hubo un gran impulso hace varios años para llevar los lenguajes de programación "C" a la planta. Pero dijo que ese impulso se desvaneció lentamente a favor de los lenguajes IEC. Sin embargo, señaló que los lenguajes de programación de TI aún prevalecen en los sistemas SCADA. “Si necesitamos hacer procesamiento C, Python o incluso Java de alto nivel, lo llevaremos al nivel SCADA y lo haremos en hardware de computadora que tenga el poder diseñado específicamente para esos lenguajes”, dijo.