En la Industria 5.0 en la que estamos inmersos los requisitos a los que nos enfrentamos y a los que tenemos que ser capaces de dar respuesta para ser competitivos en un mercado globalizado son: velocidad, flexibilidad, calidad y eficiencia.
La herramienta de ingeniería TIA Portal cumple un papel clave en este aspecto contribuyendo en cada uno de los 4 requisitos mencionados:
- Velocidad: para acelerar nuestros procesos de ingeniería, lo que contribuye especialmente a minimizar nuestros tiempos de respuesta o time to market, es esencial contar con una herramienta de ingeniería potente, versátil, que nos permita utilizar diferentes lenguajes de programación según los requisitos de la aplicación.
- Flexibilidad: gracias al concepto global de librería podemos estandarizar nuestras aplicaciones de manera que a la hora de programar podamos arrastrar y soltar aquellos módulos que necesitemos, ya estemos hablando de bloques de código, arquitecturas de hardware, faceplates de visualización o tablas de variables. Sirva como ejemplo también que podemos sustituir la CPU S7-1500 por la variante que mejor se adapte en función de velocidad de procesamiento, tamaño de memoria o recursos de comunicación con un click de ratón.
- Calidad: gracias a potentes herramientas de simulación como PLCSim Advanced, o visores 3D para objetos tecnológicos Kinematics en aplicaciones Motion Control, podemos evaluar la programación en una fase temprana del proyecto lo que nos permite garantizar el correcto funcionamiento de la aplicación. Además contamos con paquetes adicionales de Software como Test Suite Advanced que permiten testear nuestro código ante diferentes escenarios de trabajo de manera automática.
- Eficiencia: es clave contar con una herramienta de ingeniería que nos permita optimizar los tiempos de desarrollo, el concepto Intellisense permite acceder a las variables previamente definidas y compatibles con la instrucción utilizada en cada caso simplemente empezando a escribir el simbólico de la variable. Destacar también la base de datos común que nos permite arrastrar y soltar las variables desde el entorno de PLC al de visualización, sin tener que invertir tiempo en generar conexiones o definir por duplicado las variables con las posibles fuentes de error que se generan.
Lenguajes de programación IEC61131
Dentro de los lenguajes de programación de PLCs IEC 61131-3 nos encontramos con 5 tipos de lenguajes: KOP, FUP, AWL, SCL, GRAFCET.
Dependiendo del perfil del programador, código a programar, facilidad de seguimiento a posteriori a nivel de mantenimiento, rendimiento en la ejecución, ocupación en memoria optaremos por un tipo de lenguaje u otro; siendo muy habitual la mezcla de los mismos en un único proyecto de automatización.
- KOP (LAD): diagrama de contactos, se trata de un tipo de lenguaje intuitivo basado en diagramas eléctricos. Se compone de ramas que se ejecutan secuencialmente de arriba a abajo y permite tener una visión clara de la ejecución del programa en función del resultado lógico de operación (RLO) de cada instrucción (por ej: contactos abiertos, contactos cerrados, etc) lo que facilita las labores de mantenimiento.
Ilustración 2. Lenguaje de programación KOP
- FUP (FBD): diagrama de bloques o funciones, permite hacer la programación enlazando los bloques de manera sencilla, la salida de una puerta lógica se enlaza con la entrada del siguiente bloque permitiendo hacer un seguimiento del programa intuitivo. Al ser similar al lenguaje de programación KOP se permite la conversión de este lenguaje a KOP y viceversa.
Ilustración 3. Lenguaje de programación FUP
- AWL (IL): lista de instrucciones, se trata de un lenguaje de programación de bajo nivel que permite programar con máximo nivel de detalle las operaciones a realizar por el procesador de la CPU. Como ventaja principal, destacar que permite optimizar la programación al máximo ya que tenemos control total sobre la operación a realizar por el procesador, por otro lado requiere mayor know-how lo que puede dificultar su programación y posterior seguimiento de programa para tareas de mantenimiento. Es recomendable siempre el uso de comentarios del código para facilitar dicha tarea a futuro.
Ilustración 4. Lenguaje de programación AWL
- SCL (ST): texto estructurado, se trata de un lenguaje de programación de alto nivel que facilita la interpretación del código al estar más alejado del código máquina y más cercano al lenguaje que entendemos las personas. Se puede decir que las últimas tendencias de programación van en esta línea habiéndose potenciado mucho este lenguaje en las últimas versiones de TIA Portal, cabe destacar la existencia de un compilador directo de SCL a código máquina frente a lo que nos pasaba en soluciones clásicas que hacían una conversión previa del lenguaje a AWL previamente comentado.
Las instrucciones que potencian este lenguaje son principalmente las que controlan la ejecución del programa como son las sentencias condicionales tipo If, Case o las sentencias que permiten la ejecución de bucles para operaciones repetitivas de control como For, While o Repeat lo que se traduce en un incremento de la eficiencia en el proceso de ingeniería.
Para facilitar la depuración del programa se dispone de breakpoints que permiten evaluar la correcta ejecución del mismo comprobando que se obtienen los resultados esperados.
Ilustración 5. Lenguaje de programación SCL
- GRAFCET (SFC): diagrama de funciones secuenciales, este lenguaje permite generar un diagrama de estados y configurar las transiciones para saltar de una etapa a otra. Esto hace que sea especialmente intuitivo y visual a la hora de hacer el seguimiento del programa y poder llevar a cabo tareas de mantenimiento. Destacar que en conjunto con el paquete de Software Prodiag nos brinda la posibilidad de ver dicho diagrama de estados incluso a nivel del sistema HMI, permitiendo ver el estado de ejecución del programa sin necesidad de contar con la herramienta de ingeniería en campo.
Ilustración 6. Lenguaje de programación Graph
Dentro de la familia de controladores Simatic de Siemens podemos usar los diferentes lenguajes de programación dependiendo de la familia con la que estemos trabajando:
- Controladores básicos S7-1200: soportan KOP, FUP y SCL.
- Controladores avanzados S7-1500: soportan KOP, FUP, AWL, SCL y Graph.
Por lo que disponemos de la flexibilidad necesaria para poder elegir el lenguaje de programación que más se adapte a las necesidades de cada aplicación.
Alberto Penalba
Responsable de soluciones Motion Control
en Siemens España
Este artículo aparece publicado en el nº 541 de Automática e Instrumentación págs. 56 a 58.
Comentarios