Implementación de Grafcet enriquecido en lenguaje de programación gráfica para simulación y ejecución de automatismos "El emplear LabVIEW como plataforma de programación para la implementación de Grafcet, ofrece grandes ventajas, ya que LabVIEW se caracteriza por ser una herramienta útil para construir sistemas de adquisición y control de forma más sencilla y el diseño de un sistema de control sólo requiere de una pequeña parte de código para realizar la interfaz entre Software y Hardware. " - John F. Castañeda Londoño, Universidad Tecnológica de Pereira El Reto: Diseñar un conjunto de herramientas que funcionen como plataforma de desarrollo y construcción de aplicaciones en lenguaje de diagramas de funciones secuenciales (Secuencial Funtion Chart, Grafcet), orientadas al control de procesos industriales, aprovechando sus numerosas características ventajas en el desarrollo de sistemas de automatización y control. Lea el Caso de Estudio Completo La Solución: Implementar por medio de LabVIEW, un algoritmo que permita la construcción de diagramas de funciones secuenciales por medio de un grupo de VIs (Virtual Instruments). Aquellos diagramas secuenciales junto con las características de LabVIEW hacen que el diseño de sistemas de control se simplifique y que éstos admitan la unión con nuevas tecnologías. Autor(es): John F. Castañeda Londoño - Universidad Tecnológica de Pereira Cesar Augusto Castañeda Ramírez - Universidad Tecnológica de Pereira Mauricio Holguín Londoño - Universidad Tecnológica de Pereira I. INTRODUCCIÓN Un automatismo es el sistema de control de cualquier tipo de proceso, cuyo objetivo es su ejecución con la mínima intervención humana [12]. En la actualidad se utilizan varias formas de realizar control sobre procesos, las que pueden estar pasadas en lógica binaria o programación mediante comandos, y cada una de ellas presenta ciertas ventajas y desventajas con respecto una hacia la otra. Las limitaciones de los lenguajes de control para realizar tareas robustas han sido el principal problema en el diseño de automatismos. Lenguajes como lógica cableada, la que depende de sus dispositivos electromecánicos, los cuales se ven incapacitados para realizar tareas simultáneas, presentando diferentes problemas como, incapacidad de realizar cambios a las variables, la dificultad en la adaptabilidad y mantenibilidad de un diseño, entre otros. Un lenguaje se introdujo con el fin de solucionar todos los problemas mencionados, un lenguaje llamado Grafcet presentó una solución óptima y de fácil implementación. Grafcet tiene la capacidad de hacer lo que otros lenguajes pueden realizar, además, cuenta con características enriquecidas que permiten diferentes posibilidades y la implementación de tareas robustas. A pesar de ser una potente herramienta en el diseño de automatismos, no es ampliamente usada, debido a que solo pocos fabricantes de autómatas utilizan esté lenguaje para la programación de sus dispositivos de control. Por tanto, Grafcet ha sido convertido en un tipo de grafico que solo describe el funcionamiento de cualquier proceso. Con la poca compatibilidad que presenta Grafcet en la actualidad, se pretende aprovechar sus características importantes por medio de un lenguaje de programación. Grafcet es un lenguaje de programación gráfico que puede ser descrito mediante lógica combinacional, los cuales se pueden simular por medio de un lenguaje de programación común como los lenguajes textuales. Actualmente existen lenguajes de programación gráfica que simulan dispositivos de lógica combinacional y a su vez tienen control en el procesamiento de datos con la posibilidad de hacer seguimiento a cada proceso de la simulación, características que son importantes para el desarrollo de Grafcet, gracias a esto se opta por hacer la implementación en lenguaje de programación gráfica. LabVIEW servirá de plataforma para el diseño de un código gráfico que simule Grafcet y sus características enriquecidas. La base de este código serán los circuitos lógicos combinacionales y manejo de matrices por medio de clusters. Éste programa en la práctica facilita el control y el monitoreo de las simulaciones de manera efectiva y segura. Al trabajar en LabVIEW, se logra el paso de la simulación a la implementación de forma directa, ya que después de comprobar el buen funcionamiento de algún diseño, sólo será necesario agregar una pequeña parte de código para la comunicación con algún tipo de hardware o dispositivos de acción como los PLCs. II. CONTENIDO A. Módulo Secuenciador de Etapa Es el elemento tecnológico funcional capaz de interaccionar con sus etapas anterior y posterior [3]. Su descripción se muestra en la Figura 1. El módulo secuencial de etapa posee tres entradas y una salida; y el objeto de cada una de ellas para un módulo de etapa de orden n, es el siguiente [3]: • 1ra entrada: Se utiliza para efectuar, junto con la señal de activación de la etapa anterior, la activación de la etapa y proviene del disparo de la transición n-1. • 2da entrada: Se utiliza para efectuar la validación de la etapa n, proveniente de la salida de la etapa n-1. • 3ra entrada: Se utiliza para efectuar la desactivación de la etapa n, y la señal proviene de la salida realimentada de la etapa n+1. • Salida: se utiliza para que realice tres funciones distintas y simultáneas que son: Validar la etapa n+1, Desactivar la etapa n-1 y ejecutar algún tipo de acción prevista. Una etapa puede ser implementada por medio de este dispositivo que contiene elementos de lógica combinacional y un elemento biestable. Las entradas se conforman de un par de compuertas, AND para la condición de activación y OR para la condición de desactivación. El biestable de tipo Latch funciona como una memoria que retiene el estado que se valida en algún instante de funcionamiento. B. Ecuaciones de Activación/Desactivación Básicamente, existen dos tipos de ecuaciones asociadas al concepto de memoria binaria, que se denominan: • Ecuación de memoria binaria de set o enclavamiento prioritario, cuya expresión es : E(t+t) = S+R*E(t) • Ecuación de memoria binaria de reset o disparo prioritario, cuya expresión es: E(t+t)= R*(S+E(t)) Con condiciones de activación sería: En(t+t) =Cd*(Ca En(t)) (1) Para las tres expresiones: 1/13 www.ni.com Para las tres expresiones: E(t+t) = En(t+t) = Estado siguiente de la etapa S = Condición de activación de la etapa. R = Condición de desactivación de la etapa. E(t) = Estado actual de la etapa. Las expresiones concretas de S y R dependerán de las estructuras lógicas específicas resultantes del modelo realizado; o más concretamente, dependerá de la estructura básica y lógica del diagrama Grafcet. En general serán funciones OR y AND donde intervienen las variables representativas de etapas y transiciones implicadas [3]. Para la implementación del módulo secuenciador se hace por medio de un biestable asíncrono o Latch con enclavamiento prioritario reset, debido a que la prioridad de una orden de forzado impide que la red evolucione. En la Figura 2 se describe el módulo secuenciador con reset prioritario. Para obtener la función general de activación/desactivación se debe de tener en cuenta la acción de forzado, para ésta es necesario utilizar cuatro datos o variables: RForzado). RGForzado ). • Etapa que genera el forzado ( EGForzado ). • Etapa a ser forzada (EForzado). • Red que va ser forzada ( • Red que genera el forzado ( Las variables de “Red que genera el forzado” y “Etapa que genera el forzado” son las encargadas de dar valores a las otras dos variables respectivamente, cuando éstas tienen un valor booleano asertivo, las otras dos variables que son de tipo entero pasaran de tener un valor por defecto de cero a ener los números correspondientes de las redes y etapas a las que se les aplica la acción de forzado. Sintetizando estos datos se obtiene: Si: RForzado = Rn EForzado = En F Red =1 FEtapa = 1 Donde: Rn = Número de Red propia. En = Número de etapa propia. Obteniendo así, la función general de estado activación/desactivación: En(t+t) = Cd * (FEtapa + FRed )*(Pinicio + FEtapa * FRed + Ca + En(t)) (2) Donde: F Red = Condición de forzado hacia una red. F Etapa = Condición de forzado hacia una etapa de una red. Pinicio = Condición inicial. Ca = Condición de activación. Cd = Condición de desactivación. C. Algoritmo de Activación/Desactivación El funcionamiento de una etapa se basa en la implementación de las funciones de activación/desactivación. El procesamiento de los datos de entrada, salida y realimentación permite generar las variables de control de estado de las etapas, ahora bien, a partir de la función general de estado de la etapa con reset prioritario se pueden diseñar algoritmos que describan las condiciones de estado de las etapas en un lenguaje de programación gráfica. El algoritmo general se emplea para construir las acciones de activación/desactivación y la de forzado, en el lenguaje de programación gráfico. El algoritmo se muestra en la Figura 3. Donde: En+1: Es la etapa siguiente. En1: Es la etapa anterior. Tn1 : Es la transición anterior. El algoritmo puede ser implementado en cualquier tipo de lenguaje de programación, aunque no necesariamente deba ser el mismo, éste puede cambiarse dependiendo de las variables utilizadas en el tipo de implementación, ya que las condiciones de activación o desactivación pueden construirse de forma análoga. D. Resultados El resultado final es un conjunto de herramientas para LabVIEW, el cual contiene los diferentes elementos de Grafcet para simular completamente el funcionamiento de este diagrama secuencial. La simulación de Grafcet se hace por medio de un paquete de VIs que se instalan dentro del menú de programación en el diagrama de bloques de LabVIEW. E. Paleta de VIs de Grafcet En LabVIEW se encuentra el menú principal, el cual está compuesto por submenús que contienen los elementos de Grafcet. En la Figura 4 se muestra el menú principal con sus submenús. En cada uno de los submenús, se encuentran VIs como Etapas normales e iníciales; divergencias y convergencias; calificadores de acciones básicos y un VI de control especial y necesario que se utiliza para la acumulación y manipulación de información de cada una de las redes que conforman un sistema de control. Las transiciones se encuentran incluidas en el interior de las etapas, con el fin de que la construcción de las redes no requiera de la utilización de demasiados VIs y no tome demasiado tiempo hacerlo. F. Características de Grafcet en LabVIEW Las redes se construyen de forma similar a como se describen de forma teórica, la conexión de cada elemento o VI se hace por medio de un cable de tipo cluster que transporta gran parte de la información necesaria para su funcionamiento, los datos de realimentación o comunicación entre etapas se realiza por medio de variables globales. Cada una de las etapas debe de llevar un nombre o número para su referencia, teóricamente las etapas pueden ser enumeradas de forma aleatoria sin afectar en ninguna instancia el funcionamiento de las redes, pero al ser éste procedimiento algo poco trascendental sin dejar de ser importante, puede realizarse de forma automática y secuencial, ahorrando tiempo en la construcción de los diagramas. Por medio de esta herramienta es posible construir casi cualquier tipo de red de Grafcet, teniendo en cuenta que algunas redes deben ser construidas de forma especial teniendo en cuenta su topología. En el interior del paquete de VIs, también se incluye un manual de usuario donde se muestra de forma un poco más clara la forma de la construcción de las redes. G. Ejemplo de aplicación Se va a construir la secuencia A-BC-D controlada por un pulsador T, que tiene como estado inicial nulo. Su funcionamiento se describe a continuación: • Estando la red iniciada se oprime T y se enciende A. 2/13 www.ni.com • Estando la red iniciada se oprime T y se enciende A. • Cuando T vuelva a su esta inicial (T) se apague A. • Cuando se presione T de nuevo se encienden B y C. • Cuando T vuelva a su esta inicial (T) se apaguen B y C. • Cuando se presione T de nuevo se enciende D. • Por último, cuando T vuelva a su estado inicial se apague D y la secuencia se repita. Procedimiento: • Primero se hace el diseño de la aplicación que en este caso es la secuencia A-BC-D controlada por un pulsador T, ver Figura 5.• Se procede a implementar la construcción en LabVIEW™ ubicando los respectivos VI seguido de cablear, ver Figura 6. • Se crean los controles y los indicadores de cada bloque, ver Figura 7. •Se crea la matriz o VI de información y se conecta por medio de una variable local INFO RED. •Por último, se crea un control booleano para controlar el reset del sistema, dando por terminada la construcción, ver Figura 8. • De lo anterior se obtiene el siguiente resultado en el panel frontal, ver Figura 9. III. CONCLUSIONES Con la implementación del módulo secuenciador de etapa, que es el dispositivo más básico de una red, se puede llegar a la construcción de Grafcet desde cualquier tipo de plataforma, ya sea en Hardware o Software. El emplear LabVIEW como plataforma de programación para la implementación de Grafcet, ofrece grandes ventajas, ya que LabVIEW se caracteriza por ser una herramienta útil para construir sistemas de adquisición y control de forma más sencilla y el diseño de un sistema de control sólo requiere de una pequeña parte de código para realizar la interfaz entre Software y Hardware. Grafcet es si mismo es un potente lenguaje de programación de automatismos, que se construye de forma sencilla e intuitivamente, y no es necesario ser un gran experto en el diseño de autómatas para crear un sistema de control basado en este lenguaje. Grafcet permite describir paso a paso, el funcionamiento de un proceso o autómata, haciendo que éste sea altamente coherente y riguroso, permitiendo además, la modificación de éste en todo momento sin que se vean afectadas otras partes del proceso. Grafcet puede ser considerado como un lenguaje síncrono, que obedece a la filosofía del flujo de datos (Data Flow) que también es utilizada en LabVIEW para su sistema de programación por código gráfico, haciendo que la unión entre el lenguaje Grafcet y la plataforma de programación LabVIEW sea exitosa e imponente. La implementación del Grafcet teórico fue completa y satisfactoria, aunque sea necesario en ciertas ocasiones, la utilización de algunas técnicas sencillas para la construcción de redes especiales como las asimétricas en LabVIEW. Para el módulo de acciones sólo se desarrollaron los calificadores más básicos, aunque es posible en futuras actualizaciones o versiones, la creación de un subprograma que simule y represente el funcionamiento del módulo de acciones que contenga cada uno de los calificadores que se encuentran en el estándar. La versatilidad de LabVIEW, gracias a que contiene gran cantidad de librerías útiles para la conexión entre los PCs y dispositivos de Hardware, entregan la posibilidad de crear un sistema de control programable o PLC (Programmable Logic Controller) propio, ya que sólo es necesario el diseño de un dispositivo de adquisición que interactué con las entradas y salidas de un proceso o sistema de control, debido a que gran parte de las funciones que realiza un PLC común, son efectuadas por medio del Software, las funciones restantes hacen parte de la adquisición y envió de datos desde y hacia el proceso de control respectivamente. El paquete completo de VIs y controles, tienen como fin entregar la posibilidad de crear sistemas de control a través del lenguaje de programación de automatismos Grafcet, implementado en la plataforma de programación gráfica LabVIEW. Cada uno de los VIs permiten la creación de redes secuenciales de control, que proveen las señales de ejecución de los elementos de componen el proceso a automatizar, y se adicionan una variedad de controles que permiten construir sistemas de monitoreo para la verificación del estado del sistema o proceso. El paquete puede considerarse como una herramienta o Toolkit para LabVIEW, diseñado con el objetivo de implementar y ejecutar automatismos utilizando conceptos básicos de control y modos de marcha por medio del lenguaje gráfico de programación de autómatas Grafcet. Información del Autor: John F. Castañeda Londoño Universidad Tecnológica de Pereira Colombia jfcastaneda@utp.edu.com (mailto:jfcastaneda@utp.edu.com ) Módulo Secuenciador de Etapa 3/13 www.ni.com Módulo Secuenciador con Reset Prioritario 4/13 www.ni.com Algoritmo General de Activación/Desactivación 5/13 www.ni.com Menú principal en LabVIEW 6/13 www.ni.com 7/13 www.ni.com Diseño Secuencia A-BC-D 8/13 www.ni.com 9/13 www.ni.com Secuencia A-BC-D Cableada 10/13 www.ni.com Secuencia A-BC-D con Indicadores 11/13 www.ni.com Secuencia A-BC-D 12/13 www.ni.com Secuencia A-BC-D Panel Frontal Legal Este caso de estudio (este "caso de estudio") fue desarrollado por un cliente de National Instruments ("NI"). ESTE CASO DE ESTUDIO ES PROPORCIONADO "COMO ES" SIN GARANTÍA DE NINGUN TIPO Y SUJETO A CIERTAS RESTRICCIONES QUE SE EXPONEN EN LOS TÉRMINOS DE USO EN NI.COM. 13/13 www.ni.com