Automatización y Control de sistemas en CODESYS 3.5
Abstract
En este documento se va a explicar todo el trabajo que se ha tenido que realizar para la simulación en tiempo real de dos cadenas de producción en CODESYS, con la implementación, en ambas, de sistemas en los que se aplica control predictivo sobre sus señales de entrada. Se mostrarán los cálculos y simulaciones previas que se han debido realizar en Matlab así como todo el proceso de programación en CODESYS para terminar mostrando los resultados de la simulación de ambas instalaciones. Finalmente, se expondrán las conclusiones del trabajo, aplicaciones en la industria y líneas de trabajo futuras.
Full text
Trabajo Fin de Máster Máster Universitario en Ingeniería Industrial Automatización y Control de sistemas en CODESYS 3.5 Autor: Javier Delgado Muñoz Tutor: Antonio Javier Gallego Len Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024
i
ii Trabajo Fin de Máster Máster Universitario en Ingeniería Industrial Automatización y Control de sistemas en CODESYS 3.5 Autor: Javier Delgado Muñoz Tutor: Antonio Javier Gallego Len Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024
iii Trabajo Fin de Máster: Automatización y Control de sistemas en CODESYS 3.5 Autor: Javier Delgado Muñoz Tutor: Antonio Javier Gallego Len El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2024 El secretario del Tribunal
iv Agradecimientos Este TFM ha sido posible gracias a mi familia y amigos, por su ánimo y apoyo. También agradezco a mi tutor, Antonio Javier Gallego Len, por su labor y ayuda.
v Resumen En este documento se va a explicar todo el trabajo que se ha tenido que realizar para la simulación en tiempo real de dos cadenas de producción en CODESYS, con la implementación, en ambas, de sistemas en los que se aplica control predictivo sobre sus señales de entrada. Se mostrarán los cálculos y simulaciones previas que se han debido realizar en Matlab así como todo el proceso de programación en CODESYS para terminar mostrando los resultados de la simulación de ambas instalaciones. Finalmente, se expondrán las conclusiones del trabajo, aplicaciones en la industria y líneas de trabajo futuras.
vi Abstract In this document all the tasks needed to make a real time simulation of two production chains will be explained. In addition, in this production chains will be included systems controlled by predictive control. The operations and previus simulations made in Matlab and all the process of programming in CODESYS will be shown. At the end, the results of the simulations will be presented. Finally, the conclusions of the work will be commented and also the applications and posible future lines of work.
vii 1 ÍNDICE Agradecimientos ..................................................................................................................................... iv Resumen ................................................................................................................................................... v Abstract ................................................................................................................................................... vi Índice de figuras ...................................................................................................................................... ix Índice de Tablas ....................................................................................................................................... xi 2 Introducción, marco histórico y objetivo ........................................................................................ 1 3 Introducción a la automatización industrial .................................................................................... 3 3.1 Sensores ................................................................................................................................. 3 3.2 Sistema de control ................................................................................................................. 3 3.3 Actuadores ............................................................................................................................. 4 4 Diseño de las instalaciones .............................................................................................................. 5 4.1 Instalación simple. Producción de barriles de agua............................................................... 5 4.1.1 Diseño, actuadores y sensores, sistemas y funcionamiento ............................................. 5 4.1.2 Modos de funcionamiento ................................................................................................ 6 4.2 Instalación compleja. Producción de diferentes tipos de productos embotellados en paralelo. ............................................................................................................................................... 7 4.2.1 Diseño, actuadores y sensores, sistemas y funcionamiento ............................................. 7 4.2.2 Modos de funcionamiento .............................................................................................. 13 5 Obtención de los parámetros para el control predictivo mediante Matlab ................................. 14 5.1 Control predictivo del nivel del depósito. Producción de barriles de agua. ........................ 15 5.1.1 Modelo del sistema ......................................................................................................... 15 5.1.2 Obtención de la función de transferencia discreta del sistema ...................................... 16 5.1.3 Cálculo de los parámetros para el GPC y simulación en Matlab ..................................... 18 5.2 Control predictivo de la temperatura de la caldera. Fabricación de productos embotellados. 21 5.2.1 Modelo del sistema ......................................................................................................... 21 5.2.2 Obtención de la función de transferencia discreta del sistema ...................................... 22 5.2.3 Cálculo de los parámetros para el GPC y simulación en Matlab ..................................... 24 6 Programación de la visualización y sistema de control para la automatización de las instalaciones en CODESYS 3.5 ..................................................................................................................................... 27 6.1 Programación de la instalación de producción de barriles en CODESYS ............................. 27
viii 6.1.1 Visualización de la instalación ......................................................................................... 28 6.1.2 Implementación del control predictivo ........................................................................... 32 6.1.3 Modo manual .................................................................................................................. 33 6.1.4 Modo automático, marcha y paro ................................................................................... 34 6.1.5 Modo reinicio .................................................................................................................. 36 6.1.6 Diagrama de modos ......................................................................................................... 37 6.2 Programación de la instalación de fabricación de productos embotellados en CODESYS .. 38 6.2.1 Visualización de la instalación ......................................................................................... 39 6.2.2 Implementación del control predictivo ........................................................................... 40 6.2.3 Modo manual .................................................................................................................. 41 6.2.4 Modo automático, marcha y paro ................................................................................... 41 6.2.5 Modo reinicio, rearme y emergencia .............................................................................. 42 6.2.6 Diagrama de modos ......................................................................................................... 43 7 Resultado de la simulación ............................................................................................................ 44 7.1 Simulación en tiempo real de la instalación de producción de barriles .............................. 44 7.2 Simulación en tiempo real de la instalación de productos embotellados ........................... 45 8 Conclusiones, aplicaciones y líneas de trabajo futuras ................................................................. 48 9 Referencias .................................................................................................................................... 49
3 3 INTRODUCCIÓN A LA AUTOMATIZACIÓN INDUSTRIAL En este apartado se va a dar una explicación del concepto de automatización industrial, comentando los distintos elementos que componen un sistema automatizado y como interactúan entre ellos. La automatización industrial es la tecnología que basa en el conocimiento de los dispositivos (temporizadores, contadores, autómatas programables…) que se utilizan en la implementación de automatismos [2]. Un automatismo no es más que un sistema automatizado (máquina o proceso), es decir, que puede reaccionar automáticamente ante los cambios producidos en el mismo, sin necesidad de que actúe un operario. Se trata de un sistema en bucle cerrado. En la estructura de un sistema automatizado se distinguen tres tipos de elementos principales, utilizados para controlar y automatizar el proceso en cuestión. Estos son los sensores, los actuadores y el sistema de control [4]. Figura 1: Estructura de un sistema automatizado. Imagen extraída de [4]. 3.1 SENSORES Son los dispositivos encargados de captar la información relativa a los cambios que se producen en el sistema, que posteriormente será procesada por el sistema de control. Estos permiten identificar, medir y analizar una gran cantidad de variaciones que ocurren en los sistemas como la posición, altura, longitud, nivel de llenado, movimiento, temperatura y humedad entre otros. En general los sensores reaccionan a los cambios físicos en el entorno alterando sus propiedades eléctricas, dependiendo de sistemas eléctricos para identificar y medir las magnitudes correspondientes [11]. 3.2 SISTEMA DE CONTROL El sistema de control recibe y procesa la información captada por los sensores. Este comunica al operario información sobre el estado del sistema y recibe consignas del mismo, tales como el modo de funcionamiento, cambios en las características… entre otras. A partir de la información procesada, el sistema de control determina las acciones necesarias que se deben implementar físicamente en el sistema. Aunque el concepto de automatismo se refiere a la estructura al completo, comúnmente suele referirse en concreto al sistema de control [2]. El PLC (Programmable Logic Controller) es un dispositivo que actúa como sistema de control en un automatismo. En esencia funciona como un ordenador. Controla y monitorea un proceso o tarea. El software CODESYS permite programar el PLC para automatizar los procesos en una instalación. Esta es una de las principales tareas que se va a llevar a cabo en este trabajo, tal como se ha explicado anteriormente [12].
4 3.3 ACTUADORES Los actuadores son los encargados de aplicar físicamente al proceso las acciones necesarias determinadas por el sistema de control. Son la conexión entre el proceso industrial y las señales de control. Pueden realizar funciones como abrir y cerrar válvulas, coger, desplazar o soltar elementos, activar o desactivar motores y ajustar el flujo de líquidos o gases entre otras. En general se suele trabajar con tres tipos de actuadores, eléctricos, hidráulicos y neumáticos. Los eléctricos son aquellos que permiten accionar los dispositivos que aplican una fuerza. Los hidráulicos son aquellos que actúan a partir de la compresión de un fluido, por lo que se usan para potencias elevadas. Finalmente, los neumáticos tienen como fuente de energía el aire comprimido, fáciles de usar y baratos de instalar [13].
5 4 DISEÑO DE LAS INSTALACIONES En este capítulo, se va a explicar el diseño que van a tener las instalaciones que posteriormente se van a automatizar mediante CODESYS. Se explicarán los procesos que se llevan a cabo en ellas, sus productos finales, los sensores y actuadores de los que disponen, los modos de funcionamiento en los que van a operar y los distintos sistemas presentes y a cuáles se les va a aplicar el control predictivo. Primero se explicará la instalación más simple de un único producto y posteriormente se procederá con la instalación más compleja en la que se elaboran varios productos. Para apoyar la presentación del diseño de las instalaciones se utilizarán imágenes de la visualización que se ha creado para representar ambas en CODESYS. Mas adelante en el trabajo se entrará en detalle de cómo se han creado estas visualizaciones y que funciones tienen. 4.1 INSTALACIÓN SIMPLE. PRODUCCIÓN DE BARRILES DE AGUA. 4.1.1 DISEÑO, ACTUADORES Y SENSORES, SISTEMAS Y FUNCIONAMIENTO En esta instalación se fabrica un único producto, barriles de agua, que se denominará producto P. La instalación cuenta únicamente con dos cintas y un gancho, cuya función es mover los barriles de una cinta a otra. En la cinta 2 se dispone de un depósito con agua para llenar los barriles y una máquina taponadora. En la figura 2 se puede observar la visualización de la instalación. Figura 2: Visualización de la instalación simple. Producción de barriles de agua. El funcionamiento de la instalación es básico. Por la cinta 1, activada con el actuador C1, entran barriles, todos del mismo tamaño. Al llegar a la posición S1, estos esperan a que el gancho los recoja. El gancho se puede mover a la izquierda, con el actuador MI, hasta llegar a la posición SI (posición para recoger barril). Este se extiende al mantener pulsado el actuador MZ, activándose el sensor SZ cuando llega a su extensión máxima. Si se desactiva MZ, el gancho vuelve a su posición original. El gancho cierra la garra al activar el actuador G, y se mueve a la derecha, al activar el actuador MD, hasta llegar a la posición SD (posición para soltar barril).
6 Cuando el barril entra en la cinta 2 se activa S2. La cinta 2 se activa con el actuador C2 y en su paso por ella los barriles deben llenarse de agua y ser taponados. A al llegar a la posición SV el barril espera debajo de la válvula del depósito de agua. El nivel de este depósito está controlado mediante MPC, de modo que se controla el caudal de entrada del depósito para que este siempre esté en un nivel de llenado deseado. Este sistema sobre el que se aplica control predictivo se explica en detalle más adelante en el documento. El barril, posicionado debajo de la válvula, se llena al activar el actuador V, siempre que el nivel de llenado del depósito sea el deseado. Una vez lleno, el barril se sigue moviendo por la cinta 2 hasta llegar a la posición ST, donde está la máquina taponadora, que cierra el barril mediante el actuador T. Una vez cerrado, se tiene el producto P completo, y este llega al almacén mediante la cinta 2, activándose S3 al salir de la misma. Por otra parte, se cuenta con un mando para introducir el nivel de llenado que se desea que tenga el depósito. En todo momento el depósito tratará de mantenerse con ese nivel, a partir de un caudal de entrada, un caudal de salida y el líquido que se extrae para los barriles, todo controlado mediante un control predictivo. A continuación, se muestra la tabla 1 con el resumen de actuadores y sensores utilizados para esta instalación. Tabla 1: Actuadores y sensores de la instalación simple. Producción de barriles de agua. Actuadores Sensores Barril Entrada de nuevo barril en modo manual S1 Posición de espera a gancho C1 Activación cinta 1 SI Límite izquierdo gancho C2 Activación cinta 2 SZ Límite extensión gancho MZ Desplazamiento vertical gancho SD Límite derecho gancho MI Desplazamiento izquierda gancho S2 Entrada cinta 2 MD Desplazamiento derecha gancho SV Posición depósito G Cierre de garra de gancho ST Posición taponadora V Abertura de válvula del depósito S3 Salida cinta 2 T Colocación de tapón a barril 4.1.2 MODOS DE FUNCIONAMIENTO Para esta primera instalación, donde se busca llevar a cabo una simulación más simple para poner a prueba el control predictivo en CODESYS, se van a implementar menos modos de funcionamiento que para la instalación compleja. Se va a añadir un modo manual, donde los actuadores pueden ser activados libremente por el operario. Además, se implementará un modo automático donde entrarán barriles en la cinta 1 cada 6 segundos y, de forma automática, se llevará a cabo el proceso cuyo funcionamiento se ha explicado en el apartado anterior, generando de forma continua barriles de agua (producto P). Adicionalmente, durante el modo automático estará la opción de activar los modos paro (deteniendo todos los actuadores y como consecuencia parando el proceso) y marcha (continuando el proceso por donde se había dejado al pulsar paro). En caso de activar paro, sobre el gancho se aplicará un paro a fin de ciclo para no soltar el barril en caso de estar llevando uno en el momento de paro. Por último, se implementará el modo reinicio, para pasar de modo manual a automático, cuya función será dejar todos los sistemas en un estado adecuado para comenzar el modo automático. Las tareas que se realizan durante el modo reinicio para tal fin serán descritas más adelante en el documento. En la figura 3 se muestra el selector de modos que se creó en CODESYS para esta instalación.
7 Figura 3: Modos de funcionamiento de la instalación simple. Producción de barriles de agua. 4.2 INSTALACIÓN COMPLEJA. PRODUCCIÓN DE DIFERENTES TIPOS DE PRODUCTOS EMBOTELLADOS EN PARALELO. 4.2.1 DISEÑO, ACTUADORES Y SENSORES, SISTEMAS Y FUNCIONAMIENTO En esta instalación se preparan distintos tipos de sustancias. En total la instalación cuenta con 7 cintas y un gancho para desplazar las botellas. Cada sustancia se produce, embotella y etiqueta en una cadena de trabajo que se da lugar en una cinta correspondiente, trabajando cada una de las cadenas de trabajo en paralelo. Además, cada sustancia se almacena en botellas de tamaño diferentes, por lo que las botellas se clasificarán en función de su tamaño para ser enviada a la cinta que le corresponda, a partir de una cinta bifurcadora. En total esta instalación tiene cuatro cadenas de trabajo en paralelo, dando lugar a 4 productos distintos, X, Y, Z y S, que se almacenan al final de las líneas de trabajo con la ayuda de un pistón. La instalación trabaja con 3 tamaños de botella: grande, mediano y pequeño. El producto X se elabora en la cinta 4 en botella grande, el producto Y se elabora en la cinta 5 en botella mediana y los productos Z y S se elaboran en las cintas 6 y 7 respectivamente, en botella pequeña ambos. El gancho llevará cuando sea oportuno una botella pequeña a la cinta 7 para la elaboración de S y en caso contrario la botella entrará en la cinta 6. En la figura 4, se muestra la visualización de la instalación al completo.
8 Figura 4: Visualización de la instalación compleja. Producción de botellas de distintos tamaños. La instalación funciona como se explica a continuación. Por la cinta 1, activada mediante el actuador C1, entran botellas de tres tamaños distintos, grande, mediano y pequeño. A mitad de la cinta 1 se encuentran tres sensores, SP, SM y SG, que servirán para determinar el tamaño de la botella que pasa por ellos, de manera que si solo se activa SP la botella es pequeña, si se activan SP y SM es mediana y si se activan los tres es grande. El sensor SC1 detecta cuando una botella sale de la cinta 1. Al final de la cinta 1 se encuentra la cinta bifurcadora. Esta cinta permite llevar las botellas a la zona que les corresponde en función de su tamaño. Para ello, cuenta con el actuador CDG, que cambia la posición de la cinta entre horizontal (conectada a C1 y C5) y vertical (conectada a C2 y C3), con el actuador CD, que activa la cinta en un sentido, y con el actuador CDI, que activa la cinta en sentido contrario. El sensor SE servirá para indicar que una botella ha entrado en la cinta bifurcadora, SCD1 indicará que la botella está en el medio de la cinta en posición horizontal y SCD2 indicará que la botella está en el medio de la cinta con posición vertical. Mientras esta cinta está desplazando una botella, si otra llega a SC1, deberá esperar en esa posición hasta que la cinta esté libre. Como se ha comentado anteriormente, en esta instalación las botellas grandes se enviarán a la cinta 2, activada mediante C2. Esta cinta se deberá activar siempre que haya botellas sobre ella y SC41 esté libre. Para contar las botellas que entran se tiene el sensor SC2. Las botellas que salen de la cinta se detectan mediante el sensor de posición SC41, que a su vez indica la entrada de la botella en la cinta 4. La cinta 4, se activa mediante C4. Esta deberá funcionar siempre que haya sobre ella botellas y no esté ninguna de las máquinas presentes a lo largo de la cinta trabajando. Tal como se observa en la figura 5, las máquinas por las que debe pasar la botella hasta conseguir el producto terminado X son un depósito, cuyo líquido es calentado mediante una caldera, una taponadora, una etiquetadora y finalmente un pistón, que llevará el producto X al almacén.
9 Figura 5: Cadena de fabricación del producto X (Cinta 4). Cuando se activa el sensor SC4V significa que una botella está en posición para ser llenada con el líquido del depósito. El depósito cuenta con dos sensores de nivel, S4H y S4L. S4H se activa cuando está lleno y S4L cuando el nivel es demasiado bajo y se debe llenar. El depósito se llena mediante el actuador V4a y se extrae líquido para llenar una botella mediante V4. La caldera calentará el líquido a una determinada temperatura. De esta manera se tiene un sistema, en el que la temperatura del líquido a la salida de la caldera depende del caudal. Este caudal se controla mediante un control predictivo, para obtener la temperatura de salida requerida en un tiempo óptimo. Dicha temperatura es indicada por el operario y se puede cambiar en tiempo real con la instalación en funcionamiento. Si la temperatura del líquido no es la indicada por el operario, la válvula V4 no se abre y la botella espera hasta que el líquido alcance la temperatura requerida. Si la temperatura coincide con la indicada, la válvula V4 se abre y llena la botella, pasando esta a la siguiente máquina. Cuando la botella llega a la posición SC4T esta es taponada mediante el actuador T4 y cuando llega a la posición SC4E es etiquetada mediante el actuador E4. Finalmente, cuando llega a SC42, el pistón se activa mediante P4. La posición de inicio de carrera es indicada mediante SP41 y la de fin de carrera mediante SP42. Cuando se desactiva SC42 significa que el producto X ha salido de la cinta 4 y ha entrado en el almacén. Por otra parte, las botellas medianas son enviadas a la cinta 5. El sensor SC51 detecta las botellas que entran en la cinta. Esta cinta funciona de manera muy similar a la cinta 4. Se activa mediante C5 siempre que haya botellas y no trabajen las máquinas que hay en ella. Tal como se muestra en la figura 6, en la cinta se encuentran en serie un depósito, el sistema carro-tolva, una taponadora, una etiquetadora y finalmente un pistón que desplaza el producto terminado al almacén. Figura 6: Cadena de fabricación producto Y (Cinta 5).
10 Al llegar a la posición SC5V, la botella está en posición para ser llenada mediante la válvula del depósito activada mediante V5. Este depósito cuenta con los sensores de nivel S5L y S5H. El depósito se llena de nuevo mediante V5a. Una vez llenada con el líquido, la botella pasa a la posición SC5S, donde se encuentra el sistema carro-tolva, que se puede observar en la figura 7. Figura 7: Sistema Carro-Tolva. Se trata de un sistema simple que consiste en un carro que se puede desplazar a la izquierda mediante el actuador MIC y a la derecha mediante el actuador MDC. Cuando se encuentra en la posición S51, el carro se puede llenar con 100g de una sustancia en polvo necesaria para el producto Y, mediante el actuador Tolva. En la posición S52, el carro puede verter la sustancia a un depósito, mediante el actuador descarga, siempre que disponga de espacio. El depósito, si tiene al menos 100g, podrá introducir 100g de la sustancia en la botella al activar el actuador S5, que se disolverán en el líquido de la misma. El depósito de este sistema tiene capacidad para 500g. Una vez con la sustancia disuelta en el líquido, el contenido de la botella está listo y esta pasa a la posición SC5T para ser taponada mediante T5 y a la posición SC5E para ser etiquetada mediante E5. Finalmente, al llegar a la posición SC52, el producto Y es enviado al almacén mediante el pistón activado por P5, con los sensores de inicio y final de carrera SP51 y SP52. Por último, las botellas pequeñas se envían a la cinta 3, activada por C3. Esta se mueve siempre que tiene botellas en ella y SC61 está libre. SC3 detecta las botellas que entran y SC61 las que salen. Una vez llegan a SC61 las botellas pueden ser llevadas a la cinta 7 mediante un gancho o continuar por la cinta 6. En esta instalación las botellas pequeñas deberán ir alternando entre un camino y otro. De esta manera, la primera que llegue continuará por la cinta 6, la siguiente será llevada a la cinta 7, la siguiente irá por la cinta 6 y así sucesivamente. Las botellas pequeñas que van a la cinta 6 deberán pasar por el sistema mezclador, donde serán llenadas del líquido correspondiente, por una taponadora, una etiquetadora y finalmente por el pistón que desplazará el producto terminado Z al almacén. Esta cadena de producción se observa en la figura 8. Figura 8: Cadena de fabricación del producto Z (Cinta 6).
11 De nuevo, la cinta 6, activada por C6, solo se moverá si hay botellas, no están ocupadas las máquinas y el gancho no está desplazando una botella. Al llegar a la posición SC6V, la botella espera a ser llenada de la mezcla elaborada mediante el sistema Mezclador, que se observa en la figura 9. Figura 9: Sistema Mezclador. Este sistema cuenta con tres depósitos. Dos de ellos se llenan a la vez de dos líquidos distintos mediante V6a. Cuentan con los sensores de nivel SHa1 y SLa1 para 1 y SHa2 y SLa2 para el otro. Estos vierten a la vez su contenido a depósito de mezcla mediante V6m. El depósito cuenta con los sensores de nivel S6H y S6L. En este depósito, los líquidos se mezclan mediante la activación de actuador mezclador durante unos segundos. Cuando se activa V6, la botella se llena con la mezcla, siempre que el depósito de mezcla no se esté llenando o mezclando. Una vez llena, la botella pasa a SC6T para ser taponada mediante T6 y a SC6E para ser etiquetada mediante E6. Finalmente, el producto terminado Z llega a SC52, donde el pistón se activa mediante P6 para llevar el producto al almacén. El pistón cuenta al igual que los anteriores con dos sensores, SP61 y SP62. Las botellas pequeñas que van a la cinta 7, son llevadas mediante un gancho, que se observa en la figura 10. Figura 10: Gancho que desplaza las botellas a la cinta 7. Dicho gancho funciona exactamente igual que el explicado para la instalación simple, contando con los mismos actuadores y sensores. Cuando una botella llega a SC61 y debe ser llevada a la cinta 7, el gancho comienza a funcionar y lleva la botella hasta SC71. Cuando una botella llega a SC71, ha entrado en la cinta 7, activada por C7. Dicha cinta se mueve si tiene botellas, no están ocupadas sus máquinas y el gancho no está moviendo botellas.
12 En la cinta se encuentran las máquinas de las cadenas de producción del producto S, que consisten en un depósito, una taponadora, una etiquetadora y un pistón que envía el producto al almacén. Esto se puede ver representado en la figura 11. Figura 11: Cadena de fabricación del producto S (cinta 7). Al llegar a SC7V, la botella es llenada por el líquido del depósito, abriendo la válvula mediante V7. El depósito se vuelve a llenar mediante V7a y cuenta con los sensores de nivel S7H y S7L. Una vez llena, la botella pasa a SC7T para ser taponada mediante T7 y a SC7E para ser etiquetada mediante E7. Finalmente, llega como producto terminado S a SC72, donde el pistón, activado mediante P7, envía el producto al almacén. Este cuenta con los sensores SP72 y SP71. A continuación, en la tabla 2 se muestra como resumen una lista de todos los actuadores y sensores utilizados para la automatización de la instalación. Tabla 2: Sensores y actuadores de la instalación compleja. Producción en cadena de productos embotellados de distintos tamaños. Actuadores Sensores Genbot Entra botella SP Botella pequeña C1 Activa cinta 1 SM Botella mediana C2 Activa cinta 2 SG Botella grande C3 Activa cinta 3 SC1 Salida cinta 1 C4 Activa cinta 4 SE Entrada cinta bifurcadora C5 Activa cinta 5 SCD1 Posición 1 cinta bifurcadora C6 Activa cinta 6 SCD2 Posición 2 cinta bifurcadora C7 Activa cinta 7 SC2 Entrada cinta 2 CD Activa cinta bifurcadora SC3 Entrada cinta 3 CDI Activa cinta bifurcadora sentido inverso SCi1 Entrada de la cinta i CDG Cambia de posición cinta bifurcadora SCi2 Salida de la cinta i Via Abre válvula de llenado de depósito de la cinta i SCiV Posición depósito cinta i Vi Abre válvula de salida de depósito de la cinta i SCiT Posición taponadora cinta i Ti Activa etiquetadora de la cinta i SCiE Posición etiquetadora cinta i
19 𝒚→𝑡+1 =𝑮∙∆𝒖→𝑡 + 𝒇 (7) 𝒇=𝑭∙𝒚←𝑡 (8) Donde 𝑮 y 𝑭 son matrices de parámetros que dependen de la G(z) del sistema y de los horizontes de control y predicción definidos. Además, se ha utilizado notación de flechas para los vectores. Las flechas hacia la derecha indican que los vectores contienen las predicciones desde el instante que se indica y las flechas hacia la izquierda que contienen valores pasados desde el instante en que se indica. 𝒇 es la respuesta libre del sistema. Como función objetivo se toma la expresión que se muestra en la expresión (9). 𝐽=[𝒓→𝑡+1 𝑇−𝒚→𝑡+1 𝑇][𝒓→𝑡+1 −𝒚→𝑡+1]+𝜆∆𝒖→𝑡 𝑇∆𝒖→𝑡 (9) Donde 𝒓 contiene los valores de la trayectoria de referencia y 𝜆 es un factor que penaliza las variaciones en la señal de control. De esta manera se tiene un criterio de optimización cuadrático. Derivando la función objetivo y despejando ∆𝒖→𝒕 se puede obtener la ley de control del GPC, que permitirá determinar el ∆𝑢 que se debe aplicar al proceso en cada instante para acercase lo máximo posible a la trayectoria de referencia. La ley de control que se obtiene se muestra en la expresión (10). ∆𝒖→𝑡 =(𝑮𝑇𝑮+ 𝜆𝑰)−1 ∙𝑮𝑇∙(𝒓−𝒇) (10) El término que multiplica (𝒓−𝒇) es constante y solo depende de los parámetros del sistema y 𝜆. Se trata de una matriz de la que únicamente interesa la primera fila, pues es la que se utiliza para calcular ∆𝑢𝑡. Esto es debido a que tal como se ha comentado anteriormente, el único valor de incremento de señal que se aplica al proceso es el del instante en que se calculan, ya que los siguientes se recalculan en las siguientes iteraciones. A dicha fila de la matriz se le denominará 𝑲, y será un parámetro más del sistema para calcular. Estas expresiones son generales, por lo que sirven para ambas instalaciones. Los valores de los parámetros únicamente dependerán del valor de 𝜆 escogido y de los polinomios b(z) y a(z), que son el numerador y el denominador de la función G(z) del sistema. Para calcular los valores de los parámetros se ha desarrollado una función denominada paramGPC(), que dados los términos de los polinomios a(z) y b(z), el horizonte de predicción, el horizonte de control y 𝜆, devuelve las matrices de parámetros 𝑮, 𝑭 y 𝑲. Esta función servirá para calcular los parámetros de los sistemas de ambas instalaciones. Para el sistema que se considera en este apartado, se introducen en la función paramGPC() el denominador y numerador de la G(z) calculada, expresión (6). Se introducen también los horizontes de control y predicción que se consideran de 10 y 15 respectivamente. Además, dado el orden de la señal de control de ~100, se ha considerado un λ de 5∙10−11. De esta manera la función devuelve los parámetros 𝑮, 𝑭 y 𝑲, que ya se pueden trasladar a CODESYS para llevar a cabo el control predictivo. Sin embargo, primero se va a realizar una simulación de control predictivo en Matlab. Se va a llevar a cabo una simulación de 500 s. El GPC se aplicará de la siguiente manera. Primero se definirán unos valores iniciales de las variables del sistema, que será el punto de trabajado definido anteriormente. Además, se definirá una trayectoria de referencia que debe seguir el nivel del depósito. A continuación, se llevará a cabo un bucle de simulación. En cada instante se actualiza el valor del nivel del depósito, calculado mediante el modelo no lineal, ecuación (2). Cada 5s, tiempo de muestreo de la función de transferencia discreta, se actualizará el valor de la señal de control, en este caso el caudal de entrada. Para ello, conociendo los parámetros calculados previamente, se calculará 𝒇 mediante la ecuación (8) y posteriormente ∆𝑢𝑡 mediante la ecuación (11). ∆𝑢𝑡=𝑲∙(𝒓−𝒇) (11) El caudal de entrada se actualizará sumándole ∆𝑢𝑡, y se evitará que se salga del rango permitido, de manera que si es menor que 0 se tomará caudal nulo y si supera 260 𝑚3/ℎ, se tomará 260.
20 En la figura 18 se puede observar el resultado de la simulación. a) b) Figura 18: Resultado de la simulación de control predictivo aplicado al sistema del depósito de la instalación de Producción de barriles de agua. a) Evolución de la respuesta (línea azul continua) vs Trayectoria de referencia (línea negra discontinua). b) Caudal de entrada aplicado en cada instante. Como se puede observar el control predictivo funciona muy bien y la respuesta del sistema evoluciona hasta alcanzar la trayectoria de referencia de la forma deseada en función del caudal de entrada calculado mediante la aplicación del GPC y actualizado cada periodo de muestreo.
21 En CODESYS el control predictivo se aplicará exactamente de la misma manera y utilizando los parámetros calculados mediante Matlab, con la ventaja de que CODESYS permite realizar la simulación en tiempo real. Más adelante se detallarán las diferencias a la hora de programar este control predictivo en CODESYS. 5.2 CONTROL PREDICTIVO DE LA TEMPERATURA DE LA CALDERA. FABRICACIÓN DE PRODUCTOS EMBOTELLADOS. La aplicación del control predictivo a este sistema es muy similar a la explicada en el apartado anterior. Por tanto, para este punto se entrará en menos detalles explicativos y se centrará en mostrar el modelo utilizado y los resultados obtenidos. 5.2.1 MODELO DEL SISTEMA El sistema sobre el que se va a aplicar control predictivo en esta instalación consiste en una caldera de gas que calienta un líquido. La variable de control del sistema es el caudal al que entra el líquido, denominado 𝑄 y medida en 𝑚3/ℎ, que tendrá un rango de entre 2 y 10 𝑚3/ℎ. La variable de salida del sistema será la temperatura a la que sale el líquido, denominada 𝑇𝑜𝑢𝑡 y medida en ºC. Para calcular la evolución de la temperatura de salida del líquido en función del caudal en una caldera de gas se puede utilizar la siguiente ecuación diferencial (12). 𝑑𝑇𝑜𝑢𝑡 𝑑𝑡 =(1 𝐶)∙(𝑃−𝑄∙𝜌𝑓∙𝐶𝑓∙(𝑇𝑜𝑢𝑡 −𝑇𝑖𝑛)−𝐻𝑙∙(𝑇𝑜𝑢𝑡 −𝑇𝑎𝑚𝑏)) (12) Donde 𝐶𝑓 es el calor específico del agua, igual a 4180 𝐽/𝐾𝑔∙𝐾. 𝜌𝑓 es la densidad, que se tomará de 1000 𝐾𝑔/𝑚3. 𝑇𝑖𝑛 es la temperatura de entrada del líquido igual a 55ºC en esta instalación. 𝑇𝑎𝑚𝑏 es la temperatura ambiente, que en este caso se considera de 25ºC. 𝐻𝑙 es un coeficiente de pérdidas, que se tomará de valor 0.05. 𝑃 es la energía inyectada por gas en la caldera por unidad de tiempo, medido en W. Para esta caldera se utilizarán 180 kW. Por último 𝐶 es una constante que se ha calculado mediante la expresión (13). 𝐶 = 𝜌𝑓∙𝐶𝑓∙10∙(0.0672∙𝜋 4) (13) Tal como se realizó para el sistema anterior, se ha definido un punto de trabajo en el que el sistema esté en equilibrio, fijando en este caso un caudal y calculando la temperatura de equilibrio mediante la ecuación (12) haciendo la derivada nula. De esta manera se obtiene un punto de trabajo de 𝑇𝑜𝑢𝑡 = 80.84 º𝐶 y 𝑄 =6 𝑚3/ℎ. Para probar el modelo, se han calculado las respuestas del sistema frente a distintos escalones de caudal, partiendo del punto de trabajo. Los resultados se muestran en la figura 19.
22 Figura 19: Respuesta del sistema ante diferentes escalones en la variable de entrada (caudal 𝑄), modelado según la ecuación (12) De nuevo, se puede observar que se trata de un modelo no lineal por los mismos motivos que el sistema de la instalación anterior. 5.2.2 OBTENCIÓN DE LA FUNCIÓN DE TRANSFERENCIA DISCRETA DEL SISTEMA Una vez definido el modelo no lineal, los pasos para linealizar el sistema y obtener la función de transferencia discreta son los mismos que los detallados en el apartado 5.1.2 para el sistema de la instalación simple. La función de transferencia continua se calculará a partir de la respuesta del sistema ante un escalón de -0.5 𝑚3/ℎ, que se observa en la figura 20. Figura 20: Respuesta del sistema ante un escalón de caudal de -0.5 𝑚3/ℎ calculada mediante la ecuación (12)
23 De la misma manera que en el caso anterior se obtienen a partir de esta respuesta los valores de los parámetros 𝐾𝐺 y 𝜏 de la función G(s). En este caso se obtiene un valor de 𝐾𝐺 de -4.6914 y un valor de 𝜏 de 22.9 s. Con estos parámetros se pueden obtener la respuesta analística del sistema modelado mediante la función de transferencia con la función (14). 𝑇𝑜𝑢𝑡(𝑡)=𝐾𝐺∙∆𝑄∙(1−𝑒−𝑡 𝜏) (14) Tal y como se hizo para el sistema de la instalación anterior se ha comprobado el modelo de la función de transferencia, ecuación (14), comparándolo con el modelo no lineal, ecuación (12). Para ello se han calculado las respuestas frente a distintos escalones de ambos modelos, cuyos resultados se muestran en la figura 21. a) b) c) d) Figura 21: Comparación del comportamiento del modelo no lineal (línea azul continua) respecto al del modelo linealizado mediante la función de transferencia (línea roja discontinua). a) Escalón de caudal de entrada de -0.5 𝑚3/ℎ. b) Escalón de caudal de entrada de 0.5 𝑚3/ℎ. c) Escalón de caudal de entrada de -2.5 𝑚3/ℎ. d) Escalón de caudal de entrada de 2.5 𝑚3/ℎ.
24 La función de transferencia G(s) se calculó a partir del escalón que se utiliza en la figura 21a y, como se puede observar, en dicho caso las respuestas coinciden. En la figura 21b, donde la respuesta no se aleja del punto de trabajo definido, las respuestas del modelo no lineal y del linealizado son muy similares. Como es de esperar, para escalones más grandes, donde la respuesta se aleja del punto de trabajo, las respuestas de los modelos difieren más. En base a estos resultados, se concluye que el modelo linealizado mediante la función de transferencia se comporta de manera adecuada y sirve perfectamente para aplicarlo en el GPC. La función G(s) queda tal como se muestra en la expresión (15). 𝐺(𝑠)=−4.6941 22.9𝑠+1 (15) Tal como se ha explicado anteriormente, lo que se necesita para obtener los parámetros del GPC es la función de transferencia discreta del sistema. De la misma manera que en el caso anterior se discretiza la función para obtener G(z). En este caso se utiliza un periodo de muestreo de 4 s, puesto que es un valor cercano a 𝜏/5. La función de transferencia obtenida se muestra en la expresión (16). 𝐺(𝑧)=−0.7519 𝑧−0.8397 (16) 5.2.3 CÁLCULO DE LOS PARÁMETROS PARA EL GPC Y SIMULACIÓN EN MATLAB Las matrices de parámetros necesarios para llevar a cabo el control predictivo se obtienen de la misma manera que la descrita en el apartado 5.1.3. Se usará la función previamente creada paramGPC(). En este caso se introducen como argumentos el numerador y denominador, b(z) y a(z), de la G(z) calculada para este sistema. Se utilizarán los mismos horizontes de control y predicción, de 10 y 15 respectivamente. En este caso la señal de control es de orden ~5, bastante inferior al orden de la señal de control del sistema anterior. Al ser menor, pequeñas alteraciones en la señal de control afectarán más al sistema. Es por ello por lo que se tomará un 𝜆 superior en este caso, para penalizar más las variaciones en la señal de control. Se ha decidido utilizar un 𝜆 de 5, pues da buenos resultados. Introduciendo estos argumentos la función devuelve las matrices de parámetros 𝑮, 𝑭 y 𝑲 de este sistema. Con estos parámetros ya se tiene todo lo necesario para aplicar el control predictivo. De nuevo, antes de pasar los parámetros a CODESYS, se ha llevado a cabo una simulación en Matlab para comprobar que el sistema responde adecuadamente ante el control predictivo. El bucle de simulación se ha llevado a cabo de la misma manera que la descrita en el apartado 5.1.3. En este caso el caudal de líquido se satura al salirse de los límites impuestos de 2 y 10 𝑚3/ℎ. Se ha definido una trayectoria de referencia que se quiere para la evolución de la temperatura de salida del líquido, partiendo de un valor de 80.84 ºC. En la figura 22 se pueden observar los resultados obtenidos tras llevar a cabo la simulación.
25 a) b) Figura 22: Resultado de la simulación de control predictivo aplicado al sistema de la caldera de la instalación de Fabricación de productos embotellados. a) Evolución de la respuesta (línea azul continua) vs Trayectoria de referencia (línea negra discontinua). b) Caudal de entrada aplicado en cada instante. Tal como se muestra en la figura 22b, con los parámetros calculado el control predictivo funciona de forma adecuada, y la temperatura de salida del líquido en la caldera evoluciona de la forma deseada hasta la de referencia. La evolución del caudal durante la simulación también se comporta como se espera, actualizándose cada 5 s y tomando el valor óptimo en cada actualización para acercar el máximo posible la temperatura de salida a la de referencia. Como se comentó en el apartado anterior, el control predictivo se aplicará de la misma manera en CODESYS, pero la simulación será en tiempo real. Más adelante se detallarán los cambios.
26 Tras el trabajo realizado que se ha explicado en este apartado, se ha terminado todos los cálculos previos que se debían realizar mediante Matlab, y se han obtenido todos los parámetros necesarios para aplicar el control predictivo en CODESYS sobre los dos sistemas definidos.
27 6 PROGRAMACIÓN DE LA VISUALIZACIÓN Y SISTEMA DE CONTROL PARA LA AUTOMATIZACIÓN DE LAS INSTALACIONES EN CODESYS 3.5 Tras explicar el diseño y componentes de las dos instalaciones que se van a automatizar y controlar en este trabajo y haber desarrollado todo el trabajo, cálculos y simulaciones previas en Matlab, se puede empezar ya a programar las visualizaciones y los PLC de las instalaciones en CODESYS, para llevar a cabo la simulación en tiempo real de las mismas en funcionamiento. A pesar de que la instalación de fabricación de productos embotellados tiene muchos más elementos que la de producción de barriles, la estructura que se ha llevado para programar la visualización y el PLC de estas en CODESYS es parecida. Por tanto, para simplificar la explicación, en este apartado se describirá en más detalle cómo se ha programado la instalación simple en CODESYS. Posteriormente, para la instalación compleja, se resumirán las partes que se han programado de manera parecida que en la instalación simple evitando entrar en explicaciones redundantes y se explicarán más en detalle aquellos programas, tareas o elementos nuevos que solo se han implementado en la instalación compleja. 6.1 PROGRAMACIÓN DE LA INSTALACIÓN DE PRODUCCIÓN DE BARRILES EN CODESYS En este apartado se explicará la programación del sistema de control y la visualización de la instalación simple en CODESYS. En la figura 23 se pueden observar los distintos objetos que pertenecen al dispositivo PLC que se ha programado para automatizar la instalación. Figura 23: Objetos utilizados para la programación del PLC de la instalación de producción de barriles El objeto denominado ‘GVL’ es un programa en el que se declaran todas las variables globales utilizadas para la simulación. Aquí se incluyen variables de control, variables usadas en la visualización, sensores, actuadores… entre otras que se serán comentadas. Deben ser declaradas como globales ya que pueden ser leídas o utilizadas en distintos programas. Por otra parte, está el objeto denominado ‘Visualization’, que será utilizado para crear la visualización. El programa ‘Visualizacion’ en lenguaje ST es el que controlará lo que sucede en la Visualización. Dentro de la carpeta ‘Control’ se encuentran los
28 programas encargados del control predictivo. Así mismo, dentro de la carpeta ‘Modos’ se encuentran los programas que se han creado para reproducir los distintos modos de funcionamiento y el paso de uno a otro. Al iniciar la simulación, se llama al programa PLC_PRG que es el principal y este se encarga de llamar a los modos de funcionamiento, al programa que controla la visualización y al que se encarga del control predictivo. En los siguientes apartados se explicará en más detalle los distintos programas que se han creado para automatizar la instalación. 6.1.1 VISUALIZACIÓN DE LA INSTALACIÓN Para representar el funcionamiento de la instalación durante la simulación en CODESYS, este programa permite crear una visualización de la misma. La visualización es un esquema de la instalación, con sensores que se activan en tiempo real bajo unas condiciones y actuadores que se activan según el PLC que se ha programado en CODESYS para automatizar la instalación. Para definir bajo qué condiciones se activan los sensores y que hacen los actuadores al activarse, entre otros factores, se ha creado un programa en ST denominado ‘Visualización’. Para esta instalación, el diseño y el funcionamiento que se trata de representar con la visualización es el explicado en el apartado 4.1.1. Para representar los distintos elementos de la visualización CODESYS cuenta con un cuadro de herramientas, que contienen diversos objetos que se pueden usar y modificar en la visualización. En la figura 24 se puede apreciar dicho cuadro de herramientas. Figura 24: Cuadro de herramientas de la visualización En función del tipo de elemento de visualización este dispone una pestaña de propiedades que permite establecer diferentes estados en el objeto, así como definir características como el color y etiquetas entre otras. Los objetos de visualización de tipo base son figuras geométricas que se han utilizado para representar los distintos elementos de la visualización, como barriles, cintas, un gancho… entre otros. Este tipo de elementos tienen la pestaña de propiedades que se observa en la figura 25.
35 Figura 31: Programa en Ladder para el funcionamiento automático de la cinta 1 Por otra parte, para el funcionamiento de la cinta 2, se ha creado un programa en lenguaje SFC. Este lenguaje se basa en definir distintos estados y las condiciones que se deben cumplir para pasar de uno a otro, pudiendo crear diferentes ramas. De esta manera, el estado inicial será de espera, sin activar ningún actuador. Si hay algún barril en la cinta 2, se pasa al siguiente estado en el que se activa C2 para mover los barriles en la cinta. El número de barriles que se encuentran en la cinta 2 se sabe con la ayuda de un contador CTUD programado en Ladder. Dicho contador suma una unidad si se detecta un flanco de subida en S2 (entra un barril en la cinta 2) y decrementa una unidad si se detecta un flanco de bajada en S3 (sale un barril de la cinta 2). Siempre que el contador cuente una unidad o más activa una variable denominada ‘Cont2’. Esa es la variable que sirve como condición para pasar del estado inicial al estado de activación de la cinta. Una vez de en este estado hay dos posibilidades. Si hay un flanco de subida en SV, significa que un barril está debajo de la válvula del depósito. En dicho caso la cinta parará hasta que la botella se llene. Hay que tener en cuenta que en tiempo real se está aplicando el control predictivo para mantener el nivel del depósito en el valor deseado. En caso de que el nivel se esté modificando y no sea igual el deseado, el barril deberá esperar hasta que el depósito esté en el nivel deseado. Si el nivel del depósito es el deseado, se activará el sensor SH y el barril se llenará. Se considera que el barril tarda en llenarse 1.5 s. Por tanto, se pasará a un estado en el que se activa una variable de entrada de un temporizador y el actuador V, de manera que cuando se active la variable de salida del temporizador se pase al siguiente estado y el barril deje de llenarse. Una vez sucede esto se vuelve al estado inicial. La otra posibilidad es que haya un flanco de subida en ST1. Si esto sucede significa que un barril ha llegado a la taponadora. De manera similar a la rama anterior se activará el actuador T durante 0.75 s, teniendo como efecto que el tapón del barril se vuelva visible. En la figura 32 se puede observar el programa que se ha comentado en SFC, para entender mejor la explicación.
36 Figura 32: Programa creado para controlar la cinta 2 en modo automático. Por último, quedaría explicar el programa creado para controlar el gancho de forma automática. En este caso también se utiliza lenguaje SFC. De nuevo se parte de un estado inicial en el que gancho espera. El gancho siempre espera en su posición inicial que es en la posición SI. Cuando una botella llega a S1, se activa el actuador MZ hasta su máxima extensión (SZ). Una vez hecho esto se activa G para agarrar la botella y se pasa a un estado de espera unos segundos sin activar MZ para que el gancho se retraiga. Posteriormente se espera hasta que S2 esté libre, para asegura que el barril se puede dejar en su destino. Cuando esto se cumple, se activa MD para mover el barril hasta SD y se pasa por una serie de etapas en las que el gancho deja el barril en S2 y vuelve a su posición inicial. Una vez en su posición inicial el programa vuelve al estado de inicio para esperar que un nuevo barril llegue a S1. Con esto quedan explicados todos los programas del modo automático. Es importante comentar, que para los programas escritos en lenguaje SFC, es necesario declarar una variable denominada SFCReset que será útil para el modo reinicio. En esta instalación se ha implementado además los modos marcha y paro. El modo paro lo que hace es desactivar todos los actuadores mientras esta activo. Como el gancho no debe desactivarse si tiene un barril al activarse paro, para este elemento en concreto se activará un paro a fin de ciclo. De esta manera, el programa del gancho seguirá funcionando durante el modo paro y parará cuando vuelva a su posición inicial, añadiendo la condición de que para entrar en el siguiente ciclo se debe pulsar marcha. Por tanto, al iniciar el modo automático la instalación funcionará con normalidad. Si se pulsa paro, el proceso parará excepto por el gancho que terminará su ciclo. Si se pulsa marcha el proceso continuará en el punto donde se había parado. 6.1.5 MODO REINICIO Como es lógico, para que el modo automático funcione adecuadamente se deben cumplir ciertas condiciones en la instalación. Es por ello que no se puede pasar del modo manual al automático directamente. Para ello se implementa el modo reinicio, que se trata de un modo de transición al pasar del modo manual al automático y que se asegura de que la instalación está preparada para pasar a modo automático. El modo reinicio tiene tres funciones principales: Llevar el sistema al estado inicial, reiniciar contadores y reiniciar los diagramas de estados de los programas escritos en SFC. Además, antes de salir de reinicio se deberán de comprobar ciertas condiciones que dependerán del proceso.
37 Al principio del modo reinicio se llamará a los programas del modo automático que se deban reiniciar, como los contadores o los escritos en SFC. Los contadores se reiniciarán activando la variable RESET, que todos tendrán como condición de reinicio. Los programas en SFC se reiniciarán activando la variable SFCReset al llamarlos, de la que se había hablado en el apartado anterior. Además, se activarán las cintas durante tiempo suficiente para sacar las botellas y el gancho volverá a su posición inicial. Si todas las condiciones del modo reinicio se cumplen, se desactivará la variable RESET y se activará la variable Fin_reinicio que indica que el modo reinicio ha terminado y se puede pasar al modo automático. 6.1.6 DIAGRAMA DE MODOS El último programa necesario para la programación del PLC de la instalación es aquel que implemente el diagrama de modos. Anteriormente, se ha comentado que el PLC_PRG se llama a los programas correspondientes de los distintos modos. Sin embargo, no los llama directamente. En el PLC_PRG se llama al programa ‘DiagramaModos’, escrito en SFC. Este programa se encarga de organizar como pasar de un modo a otro y bajo qué condiciones. Básicamente se trata de un diagrama de estados, en el que en cada estado se llama a los programas de un determinado modo de funcionamiento. En el estado inicial, al comenzar la simulación, se llama al modo manual. Si se pulsa en cualquier momento el botón para iniciar el modo automático, el programa pasa a un estado intermedio en el que se inicia el modo reinicio y, cuando se activa la variable Fin_reinicio, pasa al modo automático. Desde el modo automático hay dos ramas. Si se pulsa el botón paro, se pasa a un estado en el que se llama al modo paro. Si desde este estado se pulsa marcha se volverá al modo automático. La otra opción es desde el modo automático pulsar el botón manual, en cuyo caso se volverá al estado de inicio, pasando la instalación a modo manual directamente. En la figura 33 se puede observar el programa ‘DiagramaModos’. Figura 33: Programa ‘DiagramaModos’ escrito en SFC para gestionar la transición entre modos durante la simulación Con esto queda explicado al completo la forma en la que se ha programado el PLC de la instalación de producción de barriles.
38 6.2 PROGRAMACIÓN DE LA INSTALACIÓN DE FABRICACIÓN DE PRODUCTOS EMBOTELLADOS EN CODESYS La programación del PLC de esta instalación es bastante más laboriosa debido al gran número de elementos con los que cuenta respecto a la anterior, pero el método y la forma de organizar los programas es muy similar. En la figura 34 se puede observar un desglose de todos los programas que han sido necesario elaborar para automatizar y controlar esta instalación. Figura 34: Desglose de los programas elaborados para automatizar la instalación de productos embotellados. Como hay muchos programas similares, para no caer en explicaciones redundantes, en este punto únicamente se explicarán en detalle aquellos aspectos y programas nuevos que no se hayan explicado para la instalación de barriles.
39 6.2.1 VISUALIZACIÓN DE LA INSTALACIÓN De igual manera que para la instalación anterior, con los elementos que ofrece CODESYS se ha creado la visualización de esta instalación. Para simular la entrada y salida continua de botellas se ha llevado a cabo el mismo método que para los barriles. Se ha creado una matriz B en la que cada fila se guarda información de una copia de conjunto botella-tapón-etiqueta. Debido hay que hay nuevos estados posibles para las botellas, a las columnas del apartado anterior se añaden dos columnas adicionales de información. Una de ellas guardará para cada botella una variable que indica la visibilidad de la etiqueta (0 etiqueta invisible, 1 etiqueta visible, 2 etiqueta alternativa visible (botellas pequeñas)), que servirá para simular la etiquetación de las botellas. La otra columna indicará el tamaño de la botella (1 si es pequeña, 2 si es mediana y 3 si es grande). En este caso habrá 15 copias de botellas, de diferentes tamaños, que irán entrando y saliendo de la instalación creando un efecto de pseudo aleatoriedad. Además, para las botellas pequeñas y medianas, que pueden tener contenidos de dos colores distintos, se añadirá al conjunto una capa adicional que se hará visible si la variable LLenoi es igual a 2. Esto servirá para simular que las botellas medianas reciben el contenido del sistema Carro-Tolva o que las botellas pequeñas se llenan en la cinta 7 en vez de en la 6. De igual manera se ha creado un cuadro de mandos para controlar la activación de los actuadores en modo manual y un selector de modos. La visualización completa se muestra en la figura 35. Figura 35: Visualización completa de la instalación de productos embotellados. Se puede observar que los sistemas Mezclador y Carro-Tolva presentan su visualización propia y su salida los puntos S5 y V6 de las cintas correspondientes. La programación del código que gestiona la activación de sensores y acciones de los actuadores es análoga a la explicada para la instalación anterior, aunque hay algunos aspectos nuevos a comentar. Los principales añadidos son la programación de las acciones de los actuadores y sensores de los depósitos, los pistones, la cinta bifurcadora y el sistema carro-tolva, que se detallará a continuación.
40 En los depósitos, para representar los niveles de llenado, se ha colocado un cuadrado de distintos colores en cada depósito para representar el líquido. Se han creado distintas variables de tipo enteros que representan el nivel de cada depósito. El movimiento relativo vertical de los cuadrados dependerá del valor de dichas variables. De esta manera, si se activa el actuador de la válvula de un determinado depósito, la variable de nivel del depósito se aumentará y por tanto el cuadrado que representa el nivel del depósito crecerá en altura hasta un determinado límite. Y los mismo al revés, si un depósito se vacía, se decrementa su variable de nivel y el cuadrado se reduce en altura hasta un determinado límite. La activación de los sensores de nivel del depósito dependerá por tanto de las variables de nivel asociada a los mismos. Para los pistones, se crea una variable de tipo entero que representa el alargamiento del pistón. En el código se pone la condición de que, si se pulsa el actuador de un pistón, la variable de alargamiento asociada aumente, haciendo que el pistón se alargue. En caso de no pulsarse la variable se decrementa hasta su valor inicial. En caso de encontrarse con una botella, si se pulsa el actuador del pistón, además de incrementar el alargamiento del pistón se incrementa la coordenada Y de la botella hasta que llega al almacén. La activación de los sensores de principio y fin de carrera dependerá del valor de la variable de alargamiento del pistón. Por otra parte, como se ha comentado previamente, la cinta bifurcadora tiene dos posiciones vertical y horizontal. Para representarlo en la visualización, tal como se ve en la figura 34, se han superpuesto dos copias de la cinta, una dispuesta en horizontal y la otra en vertical. Si CDG está desactivado, la cinta visible y que interactúe será la horizontal. Si se activa, se volverá invisible la horizontal y aparecerá la vertical, creando el efecto de que ha cambiado de posición. De esta manera, al programar el movimiento de las botellas de la cinta bifurcadora, se impondrá que, si se pulsa CD o CDI cuando una botella está en la zona de la cinta, en posición horizontal, esta se desplace a derecha o izquierda respectivamente y si está en posición vertical se desplace arriba o abajo. Otra adición nueva son los sensores de tamaño. Simplemente, cuando el código lea que una botella ha entrado en la zona de activación de los sensores, se leerá el tamaño de la botella y en función de este se activarán los sensores correspondientes para indicar su tamaño. El último detalle nuevo para comentar es la programación del sistema carro tolva. Para este se ha creado una variable asociada al desplazamiento horizontal del carro y otra para indicar cuanto peso tiene el depósito. Si se pulsa MIC o MDC se decrementa o incrementa la variable de desplazamiento del carro respectivamente, hasta unos límites. La activación de S51 y S52 depende de la variable de desplazamiento del carro. Si estando el carro en S51 se pulsa el actuador tolva, se activará la variable de alarma del carro y este cambiará de color para indicar que está lleno. Si se pulsa el actuador descarga cuando está en S52, este cambiará de nuevo a su color normal y el depósito se llenará un quinto de su total, pues se llena de 100g en 100g hasta 500g. Una variable denominada peso recogerá el peso del depósito. Si es <100, se activará el sensor vacío. Si está entre 100 y 500 se activará el sensor disponible. En caso de que sea 500 además se activará el sensor lleno. 6.2.2 IMPLEMENTACIÓN DEL CONTROL PREDICTIVO El desarrollo del código para implementar el control predictivo en tiempo real es idéntico al explicado en el apartado 5.2.3. En este caso, el caudal de control es el agua que controla la caldera y la variable de salida es la temperatura del líquido. Se activará un sensor para indicar cuando la temperatura del líquido es igual a la de referencia. De nuevo se han creado dos temporizadores, uno para recalcular la temperatura mediante el modelo no lineal cada 0.1s, y otro para actualizar la señal de control a partir de los parámetros del GPC previamente calculados en Matlab cada período de muestreo, en este caso 4s.
41 En la visualización mostrada en la figura 35, se puede observar en el apartado CONTROL TEMPERATURA una gráfica que muestra en tiempo real la evolución del caudal de entrada, la temperatura de salida y la de referencia. El valor de la temperatura de referencia se puede modificar en todo momento durante la simulación girando el potenciómetro colocado al lado de la gráfica. 6.2.3 MODO MANUAL La programación de este modo no tiene ningún cambio respecto a lo explicado para la instalación anterior. Para cada actuador se ha creado un botón que se ha asociado a una variable intermedia. En Ladder se ha creado un programa que se llama al activar el modo manual y que hace que al activar dichas variables intermedias por medio de un botón se active el actuador correspondiente. 6.2.4 MODO AUTOMÁTICO, MARCHA Y PARO Para implementar este modo, muchos de los programas elaborados son muy similares a los creados para la instalación anterior. Como se ve en la figura 34, para el modo automático de esta instalación ha habido que crear muchos más programas al disponer la instalación de muchos más elementos trabajando en paralelo. Para la cinta 1, por la que entran las botellas, se ha usado el mismo tipo de programa que para la cinta 1 de la instalación anterior. En este caso, la condición de parada de la cinta es que una botella llegue a la posición SC1 y la cinta bifurcadora esté ocupada. Como se ha comentado anteriormente en esta cinta se encuentran los sensores para medir el tamaño de las botellas que pasan por ellas. La información de cada botella que pasa debe se guardada para posteriormente ser leída por la cinta bifurcadora, con el objetivo de que el programa que controla dicha cinta sepa el tamaño de la botella y por tanto donde enviarla. Esta información se guarda mediante un vector de encolamiento denominado vcol[], que se declarará variable global y de base todas sus componentes serán nulas. Se creará un programa en ST que al pasar una botella por los sensores guardará en la primera componente no nula del vector el tamaño de la botella en función de los sensores de tamaño que se hayan activado. Posteriormente, en la cinta bifurcadora al llegar una botella se comprobará el tamaño guardado en la primera componente del vector de encolamiento y en función de este enviará a la botella donde corresponda. Una vez leído el tamaño de la botella en dicha cinta, se activará una señal denominada ACCOMMPLISHED. Cuando haya un flanco de subida en dicha señal, el programa del vector de encolamiento actualizará las componentes del vector, adelantando el valor de todas las componentes una posición y sobrescribiendo la primera que ya ha sido leída. El programa que gestiona la cinta bifurcadora está en lenguaje SFC y tal como se ha comentado, al llegar una botella a SE comprueba el tamaño de la botella en el vector de encolamiento y en función de este continua por una rama u otra. En cada rama se realizan las acciones para enviar la botella a la cinta que le corresponde en función de su tamaño y cuando la cinta regresa a su posición inicial se vuelve a la etapa de inicio para esperar a la siguiente botella. Tal como se ha comentado las botellas grandes son enviadas a la cinta 2, las medianas a la 5 y las pequeñas a la 3. Las cintas 2 y 3 tienen un funcionamiento muy básico. Su único objetivo es llevar a las botellas que entran a la siguiente cinta. Por tanto, sus programas únicamente consisten en contadores CTUD que cuentan las botellas presentes en las cintas y si hay una o más botellas en ellas y la entrada de la siguiente cinta está libre activan las cintas.
42 El funcionamiento de las cintas 4, 5, 6 y 7 es análogo al explicado para la cinta 2 de la instalación anterior. Para cada cinta se ha creado un programa en SFC que mueve la cinta cuando hay botellas en ella y no hay ninguna máquina ocupada. En cada una de estas cintas, si una botella llega a la posición de un depósito, la cinta esperará a que se llene la botella antes de continuar, por ejemplo. Lo mismo con el resto de las máquinas. En el caso de los pistones, la cinta esperará hasta que el pistón haya vuelto a su posición inicial tras enviar la botella al almacén. En el caso de la caldera, antes de llenar la botella, la maquina comprobará a que la temperatura de salida sea la deseada y en caso contrario esperará hasta que se lleve la temperatura hasta el valor deseado mediante el control predictivo. Al llegar a los sistemas Carro-Tolva y Mezclador, las botellas también esperaran a que los sistemas estén disponibles para llenar las botellas. Las cintas 6 y 7, esperarán si el gancho está desplazando una botella. El programa del gancho es muy similar al de la instalación anterior. La principal diferencia es que solo debe llevar la mitad de las botellas a la cinta 7. Por tanto, al llegar una botella a SC61 entrará por la cinta 6 y el gancho no la desplazará. La siguientes si será movida por el gancho desde SC61 a SC71, mediante un programa similar al explicado para la instalación anterior. La siguiente que llegue entrará en la cinta 6 y así sucesivamente. Esto se hará mediante una variable auxiliar denominada UsarGancho que comenzará desactivada. Al principio, del gancho habrá dos posibles ramas. Al llegar una botella a SC61, si dicha variable el gancho no hará nada y se activará la variable. De esta manera, para la siguiente botella, como gancho esta activo el programa entrará en la otra rama para desplazar la botella, activará una variable para indicar que está trabajando y reiniciará la variable UsarGancho para que la siguiente no sea desplazada y entre en la cinta 6. Los únicos programas que quedarían por explicar son los que controlan el llenado de los depósitos. Estos son programas en SFC simples que cuando detectan que el sensor de nivel bajo se desactiva llenan el depósito de nuevo. El programa del depósito carro-tolva es un poco más compleja, pues para llenar el depósito debe desplazar el carro hasta la tolva para llenarse y luego llevarlo al depósito para descargar. Con esto queda explicada la forma en la que se ha programado el modo automático de esta instalación. En este caso también se han implementado modos marcha y paro de la misma manera que la explicada en el caso anterior. En el caso del gancho, de nuevo, se ha debido implementar un paro a fin de ciclo. 6.2.5 MODO REINICIO, REARME Y EMERGENCIA El modo reinicio tiene la misma función que para la instalación anterior, servir de puente entre el modo manual y el automático. Por tanto, deberá realizar las mismas acciones, restear contadores, volver los diagramas de estados a sus estados iniciales y llevar todos los sistemas a su estado inicial si es posible o que sea compatible con el modo automático. Para esta instalación se ha añadido el modo emergencia. Este modo consiste en un paro forzado de la instalación. Si se pulsa el botón emergencia se llevará a cabo un paro de la instalación y se encenderá una luz roja. En el estado emergencia, se deberá pulsar el botón rearme que provocará un reinicio de la instalación y esta pasará al modo de funcionamiento manual.
43 6.2.6 DIAGRAMA DE MODOS De la misma manera que para la instalación anterior, para gestionar la transición entre modos se ha elaborado el programa ‘DiagramaModos’ en SFC. Es este caso el diagrama dispone de una rama adicional que se corresponde con el modo emergencia. Se puede observar el diagrama en la figura 36. Figura 36: Diagrama de modos instalación de productos embotellados
44 7 RESULTADO DE LA SIMULACIÓN Tras haber explicado el diseño de las instalaciones, todos sus elementos y modos de funcionamiento, el trabajo previo de Matlab y la automatización de estas e implementación del control predictivo a los sistemas correspondientes en CODESYS, es momento mostrar las instalaciones en funcionamiento mediante una simulación en tiempo real. 7.1 SIMULACIÓN EN TIEMPO REAL DE LA INSTALACIÓN DE PRODUCCIÓN DE BARRILES Antes de nada, se debe poner el programa en modo simulación en la pestaña en línea. Una vez hecho esto para comenzar la simulación se debe iniciar la sesión y seleccionar ‘Run’. Una vez iniciada, la instalación comenzará en modo manual y se podrá controlar todos los actuadores mediante los botones del mando de la instalación. En el selector de modos habrá una lámpara indicando que se está en modo manual. A partir de este momento el control predictivo del nivel del depósito funcionará en cualquier modo, y se podrá modificar el nivel deseado. En la figura 37 se puede observar la instalación funcionando en modo manual. Figura 37: Instalación de producción de barriles funcionando en modo manual En la figura se puede ver que la luz que indica modo manual está encendida. Un barril ha sido llenado y taponado manualmente mientras otro se desplaza con el gancho. Además, se ha establecido un nivel deseado de 4.9 m para el depósito y se puede observar los incrementos en el caudal de entrada para llegar al nivel deseado de forma óptima en tiempo real.