¬°Hub de contenido!
Acceso a contenido educativo gratis.
Comience a aprender

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.