scieee AI-readable full text Open interactive document viewer

Integración de equipos en célula de fabricación flexible

Iglesias Bayo, Ramón

Abstract

En el siguiente proyecto se ha realizado la integración de los equipos existentes en una célula de fabricación flexible ubicada en los laboratorios del Departamento de Sistemas y Automática de la Escuela Técnica Superior de Ingeniería (Universidad de Sevilla). La célula de fabricación flexible consta de un sistema de transporte formado por 5 tramos de cintas transportadoras sobre las que se depositan bandejas. Estas bandejas son servidas o recogidas del sistema de transporte mediante un alimentador de bandejas. También se encuentra un sistema robotizado de almacenaje, que sirve o almacena pallets los cuales pueden contener piezas. El sistema de transporte y el alimentador de bandejas poseen autómatas Modicon M340 de Schneider Electric. Se ha desarrollado el procedimiento para la conexión entre ellos por una red local Ethernet usando protocolo Modbus en Unity Pro XL. El sistema de transporte ejercerá de maestro en la comunicación, mientras que el alimentador de bandejas tomará el papel de esclavo. El sistema robotizado de almacenaje está controlado por un Controlador-B de Eshed Robotec, el cual se encuentra conectado por puerto serie al autómata. Se ha desarrollado el procedimiento de conexión entre equipos en modo de caracteres en Unity Pro, en la cual se ha implementado un algoritmo de detección de errores de tipo CRC (Código de Redundancia Cíclica) en el envío y recepción de los mensajes. La supervisión de la instalación se realiza mediante un sistema SCADA (sistema de supervisión, control y adquisición de datos) desarrollado en Vijeo Citect 7.0. Se exploran dos métodos distintos de comunicación con los autómatas: mediante OPC (OLE for Process Control) o mediante Unity Speedlink, conexión sólo disponible entre equipos de Schneider Electric. También se presenta una tabla comparativa entre estos métodos presentados. Por último, se desarrolla una aplicación de ejemplo, en la que se usan los distintos métodos de conexionado entre los equipos. El objetivo de la aplicación es extraer pallets usando el sistema robótico de almacenaje para que sean procesados en uno de los puestos de trabajo de la célula de fabricación flexible. Tras el procesado, serán almacenado de nuevo en la zona habilitada para ello en el almacén. Las bandejas necesarias para el transporte de los pallets son proporcionadas por el alimentador, que ajusta el número de bandejas en circulación al número de peticiones de procesado. Esta aplicación demostrativa también posee una aplicación SCADA con el que se puede realizar la supervisión del sistema.

Full text

i HEquation Chapter 1 Section 1 Proyecto Fin de Grado Grado en Ingeniería de Tecnologías Industriales Integración de equipos en célula de fabricación flexible Autor: Ramón Iglesias Bayo Tutor: Dr. Luis Fernando Castaño Castaño Dep. de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2016 iii Proyecto Fin de Grado Grado en Ingeniería de Tecnologías Industriales Integración de equipos en célula de fabricación flexible Autor: Ramón Iglesias Bayo Tutor: Luis Fernando Castaño Castaño Profesor titular Departamento de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2016 v Proyecto Fin de Grado: Integración de equipos en célula de fabricación flexible Autor: Ramón Iglesias Bayo Tutor: Luis Fernando Castaño Castaño El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2016 El Secretario del Tribunal vii Agradecimientos Este trabajo implica el final de una de las etapas de mi vida. Por ello, me gustaría agradecer a mis padres todo el apoyo que me han dado durante estos últimos cuatro años, dándome ánimos en aquellos momentos en los que más lo he necesitado. También quiero agradecer a mi tutor Fernando Castaño todo el tiempo que me ha dedicado y todo lo que me ha enseñado. Sin él, la realización de este trabajo hubiese sido menos entretenida sin lugar a dudas. ix Resumen En el siguiente proyecto se ha realizado la integración de los equipos existentes en una célula de fabricación flexible ubicada en los laboratorios del Departamento de Sistemas y Automática de la Escuela Técnica Superior de Ingeniería (Universidad de Sevilla). La célula de fabricación flexible consta de un sistema de transporte formado por 5 tramos de cintas transportadoras sobre las que se depositan bandejas. Estas bandejas son servidas o recogidas del sistema de transporte mediante un alimentador de bandejas. También se encuentra un sistema robotizado de almacenaje, que sirve o almacena pallets los cuales pueden contener piezas. El sistema de transporte y el alimentador de bandejas poseen autómatas Modicon M340 de Schneider Electric. Se ha desarrollado el procedimiento para la conexión entre ellos por una red local Ethernet usando protocolo Modbus en Unity Pro XL. El sistema de transporte ejercerá de maestro en la comunicación, mientras que el alimentador de bandejas tomará el papel de esclavo. El sistema robotizado de almacenaje está controlado por un Controlador-B de Eshed Robotec, el cual se encuentra conectado por puerto serie al autómata. Se ha desarrollado el procedimiento de conexión entre equipos en modo de caracteres en Unity Pro, en la cual se ha implementado un algoritmo de detección de errores de tipo CRC (Código de Redundancia Cíclica) en el envío y recepción de los mensajes. La supervisión de la instalación se realiza mediante un sistema SCADA (sistema de supervisión, control y adquisición de datos) desarrollado en Vijeo Citect 7.0. Se exploran dos métodos distintos de comunicación con los autómatas: mediante OPC (OLE for Process Control) o mediante Unity Speedlink, conexión sólo disponible entre equipos de Schneider Electric. También se presenta una tabla comparativa entre estos métodos presentados. Por último, se desarrolla una aplicación de ejemplo, en la que se usan los distintos métodos de conexionado entre los equipos. El objetivo de la aplicación es extraer pallets usando el sistema robótico de almacenaje para que sean procesados en uno de los puestos de trabajo de la célula de fabricación flexible. Tras el procesado, serán almacenado de nuevo en la zona habilitada para ello en el almacén. Las bandejas necesarias para el transporte de los pallets son proporcionadas por el alimentador, que ajusta el número de bandejas en circulación al número de peticiones de procesado. Esta aplicación demostrativa también posee una aplicación SCADA con el que se puede realizar la supervisión del sistema. Ilustración 31: Elección del servidor OPC. 40 Ilustración 32: Creación del nuevo grupo de variables. 40 Ilustración 33: Ventana de creación de ítems. 41 Ilustración 34: Ventana en el caso de una conexión incorrecta. 41 Ilustración 35: Explorador de proyectos de Vijeo Citect. 42 Ilustración 36: Creación de servidor E/S. 42 Ilustración 37: Selección de tipo de dispositivo. 42 Ilustración 38: Selección del método de conexión. 43 Ilustración 39: Selección de la dirección del servidor OPC. 43 Ilustración 40: Opción de vincular a una base externa de datos de tags. 43 Ilustración 41: Apartado de comunicaciones del proyecto. 44 Ilustración 42: Creación de dispositivo de E/S. 44 Ilustración 43: Importar tags desde el explorador de proyectos. 45 Ilustración 44: Importación de tags usando OPC. 45 Ilustración 45: Exportación de variables en Unity Pro XL. 46 Ilustración 46: Apartado comunicaciones en el explorador de proyectos. 47 Ilustración 47: Creación de nuevo servidor. 47 Ilustración 48: Selección de tipo del dispositivo de E/S. 47 Ilustración 49: Selección de Modbus como método de comunicación. 48 Ilustración 50: Selección de dirección IP y puerto. 48 Ilustración 51: Posibilidad de vincular con una base externa de datos. 48 Ilustración 52: Apartado Comunicaciones en el explorador de proyectos. 49 Ilustración 53 Modificación de la configuración del dispositivo de E/S. 49 Ilustración 54: Importación de tags desde el explorador de proyectos. 50 Ilustración 55: Ventana de exportación de variables. 50 Ilustración 56: Direccionado del vector y su cabecera en Unity Pro XL. 51 Ilustración 57: configuración del vector en Vijeo Citect. 51 Ilustración 58: Esquema general de la instalación con sensores y actuadores del sistema de transporte. 54 Ilustración 59: Sensores inductivos ubicados en el final del tramo. 55 Ilustración 60: Retenedores (actuadores) del sistema de transporte. 56 Ilustración 61: Panel de control de la instalación. 57 Ilustración 62: Guía GEMMA [14]. 58 Ilustración 63: Guía GEMMA implementada en la instalación. 59 Ilustración 64: Configuración de los módulos disponibles en el autómata. 61 Ilustración 65: Acceso a la ventana de conexión al autómata. 61 Ilustración 66: Cuadro para establecer conexión con el autómata usando la red Ethernet. 62 Ilustración 67: Ventana emergente para configurar la dirección. 62 Ilustración 68: Esquema general de la distribución de sensores y actuadores. 69 Ilustración 69: Panel de control del alimentador de piezas. 71 xvii Ilustración 70: Ventana de configuración de Unity Pro XL. 74 Ilustración 71: Pantalla Home con distintos errores en los equipos. 80 Ilustración 72: Cuadro de mandos en espera de puesta en marcha y en espera de reseteo de error grave. 81 Ilustración 73: Pantalla Info Instalación mostrando una parada de emergencia. 81 Ilustración 74: Ventana de transporte mostrando estimaciones de las posiciones de las bandejas. 82 Ilustración 75: Pantalla Almacén Matricial mostrando un error de comunicación. 83 Ilustración 76: Ventana del alimentador de bandeja sin presencia de fallos. 83 Ilustración 77: Alimentador de bandejas en caso de fallo grave. 84 Ilustración 78: Ventana de ayuda de la aplicación SCADA. 84 Ilustración 79: Pantalla de visualización de alarmas. 86 Ilustración 80: Registro de la actividad en un archivo de texto. 87 xix Lista de abreviaturas ASRS Automated Storage and Retrieval System; Sistema de almacenamiento y extracción automatizado. OPC OLE for Process Control; OLE para control de procesos. OLE Object Link and Embedding; Enlace e incrustación de objetos. SCADA Supervisory Control and Data Acquisition; Supervisión, control y adquisición de datos. ACL Advanced Control Language; Lenguaje de control avanzado. SCARA Selective Compliant Articulated Robot Arm; Brazo robótico articulado de respuesta selectiva. PLC Programmable Logic Controller; Contolador lógico programable. DCD Data Carrier Detect RXD Receive Data TXD Transmit Data DTR Data Terminal Ready GND Signal Ground DSR Data Set Ready RTS Request to Send CTS Clear to Send RI Ring Indicator CRC Cyclic Redundancy Check; Códigos de redundancia cíclica. GEMMA Guide d’Etudes des Modes de Marches et d’Arrêts; Guía de estudio de los modos de marcha y paro. ADEPA Agence Nationale pour le Developpement de la Production Appliquée a l’industrie; Agencia nacional francesa para el desarrollo de la producción aplicada a la industria. AFNOR Association Française de Normalisation; Agencia francesa de normalización. 1 1 INTRODUCCIÓN En el siguiente documento se encuentra una descripción de la integración de distintos equipos en una célula de fabricación flexible. En primer lugar, se presentarán los objetivos del proyecto y una descripción de la célula de fabricación flexible situada en los laboratorios de la Escuela Técnica Superior de Ingeniería de la Universidad de Sevilla. Tras la descripción, se presentarán las distintas posibilidades en las conexiones entre los equipos. Se hará distinción entre la conexión entre autómatas, y la conexión entre el autómata y el controlador del sistema robotizado de almacenaje. También se presentarán dos métodos de conexionado de los autómatas al SCADA, desarrollado en Vijeo Citect. Estos métodos de conexión serán comparados entre ellos en una tabla resumen. Por último, se explicará la aplicación práctica desarrollada, presentando la programación de cada una de las máquinas que componen la célula de fabricación flexible, así como la aplicación SCADA realizada para la supervisión de la instalación. Introducción 2 3 2 OBJETIVOS Este trabajo se encuadra dentro de los denominados proyectos de desarrollo, donde se hacen uso de distintas herramientas y equipos comerciales de automatización. Se utiliza como planta de automatización una célula de fabricación flexible instalada en el departamento de Ingeniería de Sistemas y Automática (Escuela Técnica Superior de Ingeniería, Universidad de Sevilla). Esta planta es utilizada como plataforma de formación del alumnado y lleva funcionando varios años, aunque durante la realización de este trabajo se estaban llevando a cabo varias modificaciones y ampliaciones de la misma. El trabajo se centra en abordar el problema que surge en una célula de fabricación donde coexisten equipos de cierta antigüedad con equipos más modernos y de distintos fabricantes, pero que deben funcionar de forma coordinada para llegar a objetivo de producción. Concretando las líneas de trabajo se focalizan en los siguientes puntos: 1- Elección y programación de un equipo principal que funcione como maestro en relación al resto de equipos de la instalación y maneje el sistema de transporte. Este equipo contemplará la posibilidad de comunicación avanzada (modbus usando Ethernet y comunicación puerto serie). 2- Integración de un equipo de almacén robotizado de pallet (Automated Storage and Retrieval System, ASRS), más antiguo y que admite comunicación serie. 3-Integración de un sistema de almacenamiento de bandejas, basado en equipo con posibilidades de comunicación avanzada (modbus/Ethernet). 4-Supervisión mediante SCADA (sistema de supervisión, control y adquisición de datos), explorando distintas opciones de conexionado y comunicación. Se hará especial hincapié en la comunicación entre equipos planteando distintas opciones. En estas comunicaciones serán tratados aspectos de conexión física, configuración de equipos y desarrollo de programas. Concretamente, se desarrollarán las siguientes comunicaciones: a) Conexión entre autómatas. Equipos M340 de Schneider Electric basado en Modbus sobre Ethernet. b) Conexión del autómata (M340) con el controlador del ASRS de Eshed Robotic, basado en envío de mensajes de caracteres por puerto serie. Se tendrá que definir un protocolo de comunicación y proponer un algoritmo CRC (Código de Redundancia Cíclica) con el fin de poder detectar fallos en el envío de los mensajes. c) Comunicación entre el SCADA (Vijeo Citect) y el PLC M340, o la comunicación simultánea entre el Vijeo Citect y los dos autómatas M340. La comunicación del SCADA con los distintos autómatas se llevará a cabo mediante OPC (OLE 1 for Process 1 Object Linking and Embedding. Objetivos 4 Control), comunicación general, o mediante conexión Unity Speedlink, comunicación propietaria entre equipos de Schneider Electric, planteando las ventajas e inconvenientes de cada forma de enlace. Por último y a modo de aplicación se implementará un ejemplo tipo “demo” donde se puede comprobar los programas desarrollados. 5 3 DESCRIPCIÓN DE LA INSTALACIÓN En este capítulo se llevará a cabo la descripción de la instalación, la cual ha sido una célula de fabricación flexible ubicada en la planta baja de los laboratorios del Departamento de Ingeniería de Sistemas y Automática de la Escuela Técnica Superior de Ingeniería. 3.1. Células de fabricación flexible En primer lugar, se hará una breve introducción sobre las células de fabricación flexible. Una célula de fabricación flexible consiste en un conjunto de estaciones de trabajo interconectadas entre ellas por un sistema de transporte automatizado, cuya programación se realiza de forma modular (su programación no se debe ver caracterizada como un ciclo repetitivo y cerrado, sino como un ciclo flexible, adaptable los distintos objetivos de producción). La gestión coordinada de estos módulos de programación permite alcanzar a la instalación los objetivos marcados en ese momento. El campo de aplicación de la fabricación flexible cubre el vacío entre la producción con automatización fija (caracterizada por una secuencia de procesado fija y grandes cantidades de producción) y la producción con automatización programable (caracterizada por tasas de producción bajas y producción en lotes). Ilustración 1: Diferencias entre la variación del producto y de la cantidad para los distintos tipos de automatización [1]. 3.2. Descripción de la instalación utilizada En este apartado se describirán los equipos disponibles en la célula de fabricación flexible ubicada en los Comunicación entre el almacén robotizado de pallets y el PLC principal 12 Tabla 1: Panel trasero del Controlador-B. 1 Interruptor de encendido/apagado. 8 Conector de encoders del robot D37 macho 2 Conector de entrada tensión de red 9 Conectores de los drivers de los ejes D9 hembra 3 Terminal de tierra de seguridad 10 Conector ER Vplus; reservado D50; NO USADO 4 Canales RS232: Consola y COM1 D9 macho 11 Conectores entrada/salida Centronic 36-pin 5 Conector botonera de enseñanza D25 macho 12 Interruptor emergencia remoto 6 Conector puerto paralelo D25 macho 13 Remote servo driver command output conn. D50 macho 7 Conector de potencia del robot 19-pin round hembra 14 Multipuertos RS232 (opcional) D37 hembra El autómata principal utilizado es un Schneider Electric Modicon M340 con un módulo procesador BMX P34 2020, que dispone de conexión USB, Ethernet y puerto serie (admitiendo comunicación en modalidad MODBUS y de caracteres). En la siguiente imagen se ilustra la descripción física del mismo. Ilustración 8: Descripción física del módulo [6]. . Tabla 2: Descripción de los elementos del módulo. 1 Pantalla de indicadores LED 2 Puerto USB 3 Puerto Ethernet 4 Ranura de la tarjeta de memoria SD 5 Puerto serie MODBUS (conector RJ45) La comunicación hardware entre equipos se ha realizado mediante un cable con conector DB9 hembra (que irá conectado en el extremo del controlador del almacén matricial) y conector RJ45 en el extremo que va conectado al PLC. Esta conexión permite el intercambio de datos mediante el modo de caracteres. 13 13 Integración de equipos en célula de fabricación flexible Ilustración 9: Correspondencia entre pines de los conectores [3]. Ilustración 10: Detalle del puerto RJ45 de los procesadores BMX P34 1000/2010/2020 [4]. En la Tabla 3 se especifica el uso de cada pin en el conector RJ45, mientras que en la Tabla 4Tabla 4: detalles de los pines del conector DB9 se especifica el uso de los pines del conector DB9. 4.1.2 Configuración del hardware Con el fin de establecer la conexión entre el PLC y el autómata, será necesario configurar los parámetros de velocidad y la existencia de bits de paridad o los bits de parada. En el caso del Controlador-B de Eshed Robotic, en el manual de usuario [5] se especifica que la comunicación se hace en canales RS232 a 9.600 bauds, con 8 bits de datos, sin paridad y con protocolo XON/XOFF (sin posibilidad de cambio de la configuración), mientras que la comunicación en el módulo procesador del autómata en su modo de caracteres permite la configuración de diversos parámetros como los bits de paridad, la velocidad de transmisión o el tipo de línea física. Por ello, el equipo que deberá ser configurado en este caso es el autómata. Para ajustar los parámetros del autómata, en el explorador de proyectos se pulsará en el desplegable de la tarjeta BMX P34 2020; en la imagen del módulo procesador se pulsará en el puerto SerialPort, dando acceso a la pantalla mostrada en la Ilustración 11. En ella se pueden modificar la velocidad de transmisión, parámetros de detección de final de mensaje, y parámetros de la línea física y señales. Comunicación entre el almacén robotizado de pallets y el PLC principal 14 Tabla 3: Detalle de los pines del conector RJ45. 1 RXD 2 TXD 3 RTS 4 D1 5 D0 6 CTS 7 Fuente de alimentación 8 Común Tabla 4: detalles de los pines del conector DB9. 1 DCD: Data Carrier Detect 2 RXD: Receive Data 3 TXD: Transmit Data 4 DTR: Data Terminal Ready 5 GND: Signal Ground 6 DSR: Data Set Ready 7 RTS: Request to Send 8 CTS: Clear to Send 9 RI: Ring Indicator Los parámetros correctos para la conexión en modalidad de caracteres son los mostrados en la Tabla 5. Además de estos parámetros, también se debe indicar el carácter usado para la detección del final del mensaje. En este caso, se detectará el final de mensaje mediante el uso del carácter especial ‘/’, equivalente al código ASCII 47. Tabla 5: Parámetros para la configuración del modo de caracteres. Parámetros Valor Línea física RS 232 Velocidad de transmisión 9600 bits/s Paridad Ninguna Bits de datos 8 bits Bits de parada 1 bit Señales RX/TX Ilustración 11: Pantalla de configuración de la conexión en modo de caracteres. 15 15 Integración de equipos en célula de fabricación flexible 4.2. Comunicación maestro-esclavo La comunicación entre los dos dispositivos se ha planteado como una comunicación asíncrona maestroesclavo, donde el PLC principal será el que dirige la comunicación. El maestro es el que inicia la comunicación, mientras que el esclavo se encarga de responder a las peticiones recibidas desde el PLC. El intercambio de información se hace mediante una cadena de diez bits en los que los seis primeros constituyen el mensaje, mientras que los cuatro últimos son el resultado de un algoritmo de redundancia. La comunicación se realiza en la modalidad de caracteres, por lo que es necesaria la conversión de estos mensajes binarios a cadenas, dando lugar a mensajes de 10 bytes (en vez de 10 bits como sería de esperar). En el diagrama de la Ilustración 12 se han representado las distintas posibilidades que se pueden dar para esta comunicación desde el punto de vista del autómata, que ejercerá el papel de maestro. Ilustración 12: Posibilidades en la comunicación. Es de destacar el caso en el que se dé un error de la realización de la operación, que será considerado como almacén ocupado en la condición de entrada, pasando al error de realización de tarea. También hay que tener en cuenta que, en el caso de error grave, se deberá resetear la comunicación por completo tras haber solucionado el fallo de conexión. Comunicación entre el almacén robotizado de pallets y el PLC principal 16 4.2.1 Estructura del mensaje Los mensajes se componen de 10 caracteres que podrán ser 0 (correspondientes a ASCII 48) o 1 (ASCII 49). En la Tabla 6 se encuentra la estructura del mensaje usada para las comunicaciones. Como se comentó anteriormente, los 6 primeros bytes (del 0 al 6) corresponden a los caracteres que componen el mensaje, mientras que los siguientes cuatro bytes (del 6 al 9) contendrán los cuatro caracteres que forman el CRC. Tabla 6: Estructura del mensaje de petición y de respuesta a la petición. 0 1 2 3 4 5 6 7 8 9 4.2.1.1 Envío de peticiones En la Tabla 7 se presentan los mensajes que el autómata envía para solicitar peticiones al controlador del almacén. Tabla 7: Mensajes de peticiones. Mensaje intercambiado Operación solicitada Operación detallada 0 0 0 0 0 0 Sacar pallet Saca pallet procesado 0 0 0 0 0 1 Sacar pallet Saca pallet sin procesar 0 0 0 0 1 0 Sacar pallet Saca pallet defectuoso 0 0 1 0 0 0 Meter pallet Mete pallet procesado 0 0 1 0 0 1 Meter pallet Mete pallet sin procesar 0 0 1 0 1 0 Meter pallet Mete pallet defectuoso 0 1 0 0 0 0 Obtener información Obtener estado actual 0 1 0 0 0 1 Obtener información Forzar un chequeo del almacén 0 1 0 0 1 0 Obtener información Enviar matriz de ocupación completa 4.2.1.2 Respuesta de peticiones En primer lugar, el PLC solicitará el estado actual del almacén, es decir: si el almacén se encuentra llevando a cabo una petición, si la manipulación de pallets en el recurso compartido ha terminado o si se encuentra a la espera de una nueva petición.  En el caso de que el almacén esté en espera de una nueva petición, responderá ‘1 0 0 0 0 0’.  En el caso de que se esté llevando a cabo una operación de servir o extraer pallet en el almacén y ya se haya terminado de trabajar con el recurso compartido (el puesto de trabajo en la cinta donde el almacén recoge o deposita el pallet), se realizará un envío con mensaje ‘0 0 1 1 1 1’ indicando que la bandeja puede continuar moviéndose en la cinta.  Si el almacén se encuentra ocupado actualmente, entonces se responderá con el mismo mensaje con el que se solicitó la tarea que se está llevando a cabo. Por ejemplo, si el almacén se encuentra realizando un chequeo del almacén, cada vez que se le solicite el estado responderá como ‘0 1 0 0 0 1’, siendo el primer carácter el que indica que se encuentra ocupado, y el resto de caracteres de la petición que está realizando (chequeando el almacén).  En el caso de que el almacén haya tenido un error durante la ejecución de alguna petición, responderá 17 17 Integración de equipos en célula de fabricación flexible con el mensaje correspondiente a la petición que estaba llevando a cabo cuando se produjo el error, aunque con los caracteres 2 y 4 con un ‘1’. A continuación en la Tabla 8 se muestran todos los posibles mensajes recibidos por el autómata. Tabla 8: Mensajes posibles de respuesta del almacén. Mensaje Tipo de mensaje Explicación 1 0 0 0 0 0 Información Espera nueva petición 0 0 1 1 1 1 Información Recurso compartido liberado 0 0 0 0 0 0 Información Sirviendo pallet procesado 0 0 0 0 0 1 Información Sirviendo pallet sin procesar 0 0 0 0 1 0 Información Sirviendo pallet defectuoso 0 0 1 0 0 0 Información Almacenando pallet procesado 0 0 1 0 0 1 Información Almacenando pallet sin procesar 0 0 1 0 1 0 Información Almacenando pallet defectuoso 0 1 0 0 0 1 Información Haciendo un chequeo físico de la ocupación del almacén 0 1 0 1 0 0 Error Error al servir pieza procesada: no hay pieza de ese tipo en el almacén. 0 1 0 1 0 1 Error Error al servir pieza sin procesar: no hay pieza de ese tipo en el almacén. 0 1 0 1 1 0 Error Error al servir pieza defectuosa: no hay pieza de ese tipo en el almacén. 0 1 1 1 0 0 Error Error al almacenar pieza procesada: no hay sitio para ese tipo de pieza en el almacén. 0 1 1 1 0 1 Error Error al meter almacenar pieza sin procesar: no hay sitio para ese tipo de pieza en el almacén. 0 1 1 1 1 0 Error Error al almacenar pieza defectuosa: no hay sitio para ese tipo de pieza en el almacén. 4.3. Algoritmos de redundancia Se presenta una breve introducción teórica sobre los CRC extraída del artículo [7]. Los algoritmos de redundancia permiten proteger los datos de errores añadiendo una redundancia de información. En un caso general, los datos a ser protegidos se dividen en bloques de k-bits. A partir de cada bloque anterior se genera un bloque de n bits, obteniendo n-k bits de información redundante. Estos n-k bits se conocen como bits de chequeo o de paridad. La selección del número de bits de información redundante para una aplicación específica depende de factores en los que se incluyen la protección necesaria, el coste de la implementación, la estrategia del control del error o la naturaleza de los errores. En general, a mayor número de bits de chequeo, mayor poder de detección de Comunicación entre el almacén robotizado de pallets y el PLC principal 18 errores. Antes de tratar los códigos de redundancia cíclicos, se presentará el concepto de campo binario (y las operaciones en él) y de polinomios binarios, necesarios para una mejor comprensión. Un campo es un sistema algebraico en el que se pueden realizar las operaciones de suma, resta, multiplicación y división. El conjunto de números reales, por ejemplo, constituye un campo. Éstos pueden ser finitos o infinitos. El campo matemático finito más reducido posible es el binario, constituido por sólo dos elementos denotados como 0 y 1. A continuación, se muestran en la tabla las operaciones de suma y de multiplicación en este campo. Tabla 9: Operación de suma en el campo algebraico binario. + 0 1 0 0 1 1 1 0 Tabla 10: Operación de multiplicación en el campo algebraico binario. · 0 1 0 0 0 1 0 1 Se aprecia como la suma es lo mismo que la resta en este campo, así como que la multiplicación puede ser implementada con una puerta AND. Además, en el caso de la división sólo se definirá en este campo entre el elemento 1, dejando el valor 1 o 0 inalterado. Un polinomio binario es un polinomio cuyos coeficientes han sido tomados del campo binario. Dada una secuencia de bits, es posible asociarle un polinomio binario viendo los distintos bits como una representación de los coeficientes del polinomio. Por ejemplo, la secuencia 101011 se puede asociar al polinomio de quinto grado 1 · 𝑥0+ 0 · 𝑥1+ 1 · 𝑥2+ 0 · 𝑥3+ 1 · 𝑥4+ 1 · 𝑥5= 1 + 𝑥2+ 𝑥4+ 𝑥5. Los códigos de redundancia cíclicos (también conocidos como códigos polinomiales o CRC) (Cyclic Redundancy codes) preservan la integridad de los datos en aplicaciones de transmisión de datos (son especialmente adecuados para la detección de errores de ráfaga 2 ). En ellos, se eligen los bits de chequeo de forma que los polinomios asociados son múltiplos de un determinado polinomio denominado polinomio generador. A continuación, se expone un procedimiento de cálculo de CRC dado su polinomio generador g(x) de grado nk: 𝑢(𝑥) y 𝑣(𝑥) representan los polinomios asociados a un mensaje de k bits (mensaje polinomial) y su correspondiente bloque generado de n bits respectivamente. La relación entre 𝑢(𝑥) y 𝑣(𝑥) puede entonces expresarse como 𝑣(𝑥) = 𝑢(𝑥) 𝑔(𝑥) Nótese que el número de bits con información redundante es igual al grado del polinomio generador 𝑔(𝑥) (en este caso, n-k). Además, este procedimiento sólo implica la división de dos números binarios, por lo que puede ser fácilmente implementado con registros de desplazamientos y puertas XOR. 4.3.1 Cálculo de CRC El cálculo del CRC realizada en los equipos consiste en hacer una división del mensaje binario que se quiere enviar entre el polinomio del CRC escogido, de forma que el resto de esta división entre polinomios dará lugar al valor del CRC del mensaje (nuestro objetivo). Los pasos seguidos para el cálculo del CRC son: 1. Elección de un polinomio por el cual será divido el mensaje. En este caso se ha elegido el polinomio 2 Errores ocasionales en la transmisión de datos que afectan a varios bits seguidos. 19 19 Integración de equipos en célula de fabricación flexible 10011. 2. Creación del mensaje ampliado: Antes de calcular el CRC, se añaden al mensaje tantos 0 como la posición del bit más significativo en el polinomio elegido. En este caso, la posición del bit más significativo es la cuarta, por lo que se han añadido 4 bits con valor 0. 3. División del mensaje ampliado por el polinomio elegido, siendo el resto el valor del CRC buscado. 4.3.2 Implementación de la división de polinomios Para la implementación de la división se ha optado por la más sencilla posible, debido a las propias limitaciones del controlador del almacén (ausencia de puertas OR exclusivas, ausencia de registros de desplazamientos, etc.). Además de esto, en la comunicación que se lleva a cabo el tiempo de ejecución no es un factor limitante, por lo que no se considera de provecho la implementación de un algoritmo mediante consulta de tablas como los que se proponen en [7] o [8]. La implementación se puede llevar a cabo con registros de desplazamientos cuya longitud será igual a la posición del bit más significativo en el polinomio generador elegido; en este caso sólo se necesita un registro de 4 bits. En el siguiente pseudocódigo extraído de [8] se describen las acciones seguidas para llevar a cabo la división: Cargar el registro con bits a 0. Crear el mensaje ampliado añadiendo ceros al final del mensaje. Mientras quede algo en el registro: Desplazar el registro hacia la izquierda 1 bit, siendo el bit de entrada perteneciente al mensaje ampliado Si el bit de salida del registro es igual a 1: Registro=Registro XOR Polinomio CRC Final del si Fin mientras CRC=Registro En el caso del controlador del sistema robótico de almacenaje, no existen tipos de variables específicos para la operación con binarios: sólo existen variables enteras de 32 bits y variables tipo STRING, así como vectores de variables enteras. No obstante, sí existen los operadores binarios AND y OR para su uso con enteros. Por ello, todas las operaciones binarias implementadas en el Controlador-B se han llevado a cabo usando vectores como registros de desplazamientos. En el caso de la implementación en el autómata, en Unity Pro XL se disponen de diversos tipos de datos elementales (BOOL, EBOOL, INT, DINT, WORD...) así como tipos de datos derivados (ARRAY, STRUCT, …) disponibles, por lo que los registros de desplazamientos se implementan con el uso de un WORD junto con los bloques de librería SHIFT. Programación de la comunicación con modalidad de caracteres en UNITY PRO XL 4.3.3 Creación de variable asociada al Puerto serie Con el fin de realizar la programación de la comunicación, se creará una variable asociada al canal del puerto serie. Para ello, en el explorador de proyectos situado en la zona izquierda superior se pinchará en SerialPort, y Comunicación entre el almacén robotizado de pallets y el PLC principal 20 luego en la pestaña Objetos de E/S. En la pantalla mostrada, se busca la dirección asociada al canal (se puede facilitar la búsqueda de la dirección activando la casilla de canal %CH, y pulsando en Actualizar cuadrícula). Tras esto, se creará una variable con nombre PuertoS de tipo T_COM_CHAR_BMX y con la dirección correspondiente del canal. Ilustración 13: Pasos para la creación de la variable asociada al canal. 4.3.4 Librería de bajo nivel usada Existen tres funciones específicas para enviar y recibir datos mediante la comunicación en modo de caracteres: ADDM, INPUT_CHAR y PRINT_CHAR. Ilustración 14: Librería de bajo nivel usada en Unity Pro XL. 4.3.4.1 ADDM Su objetivo es convertir una dirección en cadena de caracteres tipo STRING en una tabla de tipo ARRAY[0…7] OF INT que pueda ser utilizada por las funciones de comunicación. La entrada siempre será ‘0.0.0’ en este caso. 4.3.4.2 PRINT_CHAR Permite enviar una cadena de caracteres hasta una longitud máxima de 1.024 bytes. Las entradas y salidas las EN ADR RAZ NB GEST ENO GEST RECP .4 INPUT_CHAR EN ADR EMIS GEST ENO GEST .5 PRINT_CHAR EN IN ENO OUT .3 ADDM 1 2 3 4 5 21 21 Integración de equipos en célula de fabricación flexible se encuentran descritas en la Tabla 11. Tabla 11: Descripción de los parámetros de PRINT_CHAR. Parámetros Tipo Descripción ADR ARRAY[0…7] OF INT Dirección del destino proporcionada por la función ADDM. EMIS STRING Cadena de caracteres a enviar. GEST ARRAY[0…3]OF INT Tabla de gestión de intercambios. 4.3.4.3 INPUT_CHAR Permite recibir una cadena de caracteres hasta una longitud máxima de 1.024 bytes. Las entradas y salidas se encuentran descritas en la Tabla 12. Tabla 12: Descripción de los parámetros de INPUT_CHAR. Parámetros Tipo Descripción ADR ARRAY[0…7] OF INT Dirección del destino proporcionada por la función ADDM. Reset INT Si el valor es 1 resetea el buffer. NB INT Longitud de la cadena de caracteres a leer. RECP STRING Cadena de caracteres recibida. GEST ARRAY[0…3]OF INT Tabla de gestión de intercambios. 4.3.5 Creación de tipos para las tablas de gestión Con el fin de gestionar la recepción y envío de mensajes, se han creado dos tipos de datos derivados. No obstante, primero será necesario cambiar la configuración del proyecto para que permita matrices dinámicas. Esto puede hacerse accediendo a los Ajustes del proyecto, en la pestaña superior Herramientas. Una vez allí, se marcará la casilla Permitir matrices dinámicas en el apartado Extensiones del lenguaje. Una vez cambiada la configuración, ya será posible la creación de los tipos de datos derivados. Tipo de datos derivados creados Tipo Descripción COMtablaENVIO ARRAY[0…3] OF INT Tipo de dato usado para la tabla de gestión de envíos. COMtablaRECIBE ARRAY[0…3] OF INT Tipo de dato usado para la tabla de gestión de recepción. 4.3.6 Librería creada para la comunicación en Unity Pro XL Con el fin de facilitar la posterior programación, se han desarrollado dos bloques para gestionar el algoritmo de redundancia. Los bloques creados son Envio_word_con_CRC y Lectura_mensaje_recibido_Con_CRC. Comunicación entre el almacén robotizado de pallets y el PLC principal 28 Ilustración 18: Diagrama de flujo del programa CRCEN. 29 29 Integración de equipos en célula de fabricación flexible Ilustración 19: Diagrama de flujo del programa ENVAL. Comunicación entre el almacén robotizado de pallets y el PLC principal 30 31 5 COMUNICACIÓN ENTRE AUTÓMATAS El autómata principal (aquél que se encarga de coordinar todos los puestos de trabajo que constituyen la instalación) deberá comunicarse con el resto de los autómatas de las distintas máquinas de la instalación. En el caso de la célula de fabricación flexible, se disponen de diversos equipos equipados con autómatas: -Alimentador de bandejas. -Robot SCORBOT ER 4-u de Intelitek. -Robot SCARA de Sony. - Pórtico situado en el desvío 3 (en proceso de instalación). Todos los autómatas de la instalación poseen el mismo módulo procesador (módulo encargado de las conexiones), por lo que se especificará cómo realizar la conexión del PLC principal con el autómata del alimentador de bandejas, siendo el procedimiento de conexión extrapolable al resto de los autómatas. Para la comunicación entre autómatas se ha usado el protocolo MODBUS sobre conexión Ethernet. En esta comunicación el autómata principal tendrá acceso a las direcciones físicas de la memoria del autómata secundario, pudiendo leer o escribir datos sobre ella. En el caso de la máquina alimentadora de bandejas, se escribirán de forma remota las peticiones de almacenamiento o extracción. 5.1. Conexión del hardware Los distintos equipos del laboratorio se encuentran interconectados en una red local Ethernet usando un conmutador Ethernet TCP/IP modelo TCSESU083FN0 de la gama de productos ConneXium del fabricante Schneider Electric. Éste se encuentra ubicado en el cuadro de mandos del sistema de transporte (junto al autómata principal). Ilustración 20: Ubicación y detalle del conmutador [11]. Comunicación entre autómatas 32 Tabla 19: Características técnicas del conmutador disponible en la instalación. Gama de producto ConneXium Protocolo de comunicación Ethernet TCP/IP Puertos Ethernet 10BASE-T/100BASE-TX - 8 puertos para cobre Número de conmutadores en cascada Ilimitado En la Ilustración 22 se encuentra el aspecto de la CPU BMX P34 2020, en el cual se encuentra indicado el puerto Ethernet como el número 3. Ilustración 21: Esquema simplificado de la red local. Ilustración 22: Ubicación del puerto Ethernet (3) en la CPU BMX P34 2020. Tabla 20: Descripción de los puertos de la CPU BMX P34 2020. 1 Pantalla de indicadores LED 2 Puerto USB 3 Puerto Ethernet 4 Ranura de la tarjeta de memoria SD 5 Puerto serie MODBUS (conector RJ45) 33 33 Integración de equipos en célula de fabricación flexible 5.2. Configuración de la red Ethernet en autómata usando Unity Pro XL Una vez configurados los módulos de cada autómata concreto en el apartado Configuración del Explorador de proyectos, se deberá configurar la conexión Ethernet. Para ello, en el Explorador de proyectos se hace click en el botón derecho en el directorio Redes (dentro de la carpeta Comunicación) y se selecciona nueva red. Ilustración 23: Ventana de configuración de nueva red Ethernet. Tras elegir un nombre para la red, se pulsa en OK, añadiendo una nueva red Ethernet en la carpeta de Redes. Pulsando en ella se accederá a la ventana que permita la configuración de la dirección IP del equipo:  Dirección IP: Dependerá del equipo a conectar. En el caso de la célula de fabricación flexible, las direcciones son: - Autómata del alimentador de bandejas 192.168.0.15 - Autómata principal 192.168.0.12 - Autómata conectado al robot SCARA y SCORBOT-ER: 192.168.0.16 - - Autómata conectado al pórtico: 192.168.0.14  Máscara de subred: 255.255.255.0  Dirección de pasarela: 0.0.0.0 Ilustración 24: Ventana de configuración de la dirección IP de la red Ethernet. Comunicación entre autómatas 34 Tras la configuración, es importante que se cierre la ventana con el fin de validar la configuración realizada. Una vez validado, será necesario abrir la ventana de configuración a partir del Explorador de proyectos, y en ella, pulsar sobre la entrada Ethernet del módulo procesador. En la ventana de configuración emergida, se deberá comprobar en el margen inferior izquierdo que la función sea ETH TCP IP y que la conexión de red sea la agregada anteriormente. Ilustración 25: Detalles de la configuración de la red Ethernet. 5.3. Librería básica usada Con el fin de llevar a cabo estas lecturas o escrituras de variables en el PLC secundario, se han usado los bloques ADDM, READ_VAR y WRITE_VAR. Ilustración 26: Bloques usados en la comunicación por MODBUS. 5.3.1 ADDM Este bloque ya fue explicado anteriormente en el apartado de la conexión del equipo robotizado de almacenaje de pallets con el autómata principal (apartado 4.3.4.1). 35 35 Integración de equipos en célula de fabricación flexible 5.3.2. READ_VAR Permite la lectura de bit y palabras internas entre autómatas. Los parámetros de entrada y salida se encuentran especificados en la siguiente tabla. Tabla 21: Parámetros de entrada y salida de READ_VAR. Parámetros Entrada/Salida Tipo Descripción ADR Entrada ADDM Dirección del PLC a leer generada por la función ADDM. OBJ Entrada STRING En caso de lectura de tipo EBOOL, se usará ‘%M’, en caso de palabras ‘%MW’. NUM Entrada DINT Número del primer elemento a leer. NB Entrada INT Número de objetos a leer. GEST Entrada/salida ARRAY[0..3 OF INT] Tabla de gestión de la comunicación. RECP Salida ANY_ARRAY_INT Variable donde se almacenan los valores leídos. Es necesario hacer hincapié en el caso de la lectura de bits internos, ya que el bloque almacena la lectura en un tipo INT. Por ello es necesario el cambio de tipo INT a WORD usando el bloque INT_TO_WORD, y luego descomponer el WORD obtenido en bits usando el bloque WORD_TO_BIT. 5.3.3. WRITE_VAR Permite la escritura de bits y palabras internas entre autómatas. La descripción de los parámetros de entrada y salida se encuentran en la Tabla 22. Tabla 22: Parámetros de entrada y salida de WRITE_VAR. Parámetros Entrada/Salida Tipo Descripción ADR Entrada ADDM Dirección del PLC a leer generada por la función ADDM. OBJ Entrada STRING En caso de escritura de tipo EBOOL, se usará ‘%M’, en caso de palabras ‘%MW’. NUM Entrada DINT Número del primer elemento a leer. NB Entrada INT Número de objetos a escribir. EMIS Entrada ANY_ARRAY_INT Valores a tomar por la palabra/bit a escribir. GEST Entrada/salida ARRAY[0..3 OF INT] Tabla de gestión de la comunicación. Comunicación entre autómatas 36 37 6 COMUNICACIÓN DE AUTÓMATAS CON EL SCADA En la siguiente sección se explorarán distintas opciones de conexionado y comunicación del autómata con el sistema de supervisión SCADA, desarrollado con el programa Vijeo Citect de Schneider Electric. También se hará una comparación entre las distintas opciones. Las distintas opciones de comunicado que se verán son mediante OPC (OLE for Process Control), comunicación general, o mediante conexión Unity SpeedLink, comunicación propietaria entre equipos de Schneider Electric. La breve introducción teórica de la conexión OPC está basada en la guía teórica introductoria al OPC [12]. 6.1. Conexión OPC El OPC es un estándar de comunicación que permite la comunicación de dispositivos, controladores y aplicaciones sin necesidad de conocer los protocolos de comunicación nativos y la organización interna de los datos de cada uno de ellos. Esta conexión se realiza a través de una arquitectura cliente-servidor, formada por un cliente OPC y un servidor OPC. El servidor OPC es una aplicación de software que hace de vínculo entre los protocolos nativos de los dispositivos o aplicaciones que hacen de origen de los datos, y el estándar de comunicación OPC. Las fuentes de datos que pueden ser comunicadas por un servidor OPC abarcan muchos tipos: autómatas, dispositivos, instrumentos de medición, bases de datos, etcétera. Los clientes OPC son módulos de software usados por cualquier aplicación para comunicarse con cualquier servidor OPC. Conceptualmente, traducen las peticiones de comunicación procedentes de las aplicaciones o dispositivos en la petición OPC equivalente, y las comunican al servidor OPC correspondiente para que sea procesada. Éstos se encuentran implementados en aplicaciones como HMIs 3 , SCADAs, generadores de informes, etcétera. La comunicación OPC permite el uso de variables elementales sin necesidad de que se encuentren direccionadas de forma física en el autómata. 6.1.1 Procedimiento de conexión del autómata al SCADA Se tratará el procedimiento de conexión para el caso del alimentador de bandejas, cuyo autómata ha sido programado en Unity Pro XL con el SCADA desarrollado en el programa Vijeo Citect versión 7.0r3. Este procedimiento será extrapolable a la conexión de cualquier otro autómata de los que se encuentran en la instalación tratada. 3 Interfaz hombre-máquina (Human Machine Interface). Comunicación de autómatas con el SCADA 44 Por último, se pulsa en el resto de ventanas en siguiente hasta finalizar su creación. Ahora, se procede a la creación del dispositivo de E/S. Para ello, en la ventana de comunicaciones del Explorador de proyectos, se pulsará en Dispositivos de E/S (Ilustración 41). Ilustración 41: Apartado de comunicaciones del proyecto. Una vez allí, se añade el nuevo dispositivo a conectar, indicando como dirección del dispositivo Schneider- Aut.OFS, y como protocolo OPC. Ilustración 42: Creación de dispositivo de E/S. Por último, es necesario realizar la exportación de tags de variables desde Unity pro XL, con el fin de escribir o leer variables en un dispositivo externo. Para ello, en el explorador de proyectos, se pulsará en Importar tags, en el menú desplegable Herramientas (Ilustración 43). 45 45 Integración de equipos en célula de fabricación flexible Ilustración 43: Importar tags desde el explorador de proyectos. En la ventana de importación, se selecciona el dispositivo de E/S configurado anteriormente. En el tipo de base de datos se debe marcar OPC. También es necesario poner el directorio en el que se encuentran las variables exportadas desde Unity Pro XL (paso realizado anteriormente). Como opciones extras se encuentran el añadir un prefijo en la exportación de los tags, o el eliminado de los tags de este dispositivo de E/S antes de importar de nuevo. Por último, se pulsa en Importar para proceder con la operación. Ilustración 44: Importación de tags usando OPC. 6.2. Unity Speedlink Static Unity Speedlink es una herramienta de comunicación incluida en Vijeo Citect usada para vincular un proyecto de Unity Pro XL con un proyecto de Vijeo Citect. Es un método de comunicación propiedad de Electric Schneider específico para equipos de este fabricante. Comunicación de autómatas con el SCADA 46 Existen dos tipos de comunicación:  Unity Speedlink Dynamic: Establece un vínculo estático entre Vijeo Citect y un archivo de proyecto ‘.stu’. Todos los cambios que se realicen sobre las variables en Unity Pro XL no serán efectivos hasta que los tags sean actualizados manualmente.  Unity Speedlink Static: Establece un vínculo dinámico entre Vijeo Citect y un archivo de proyecto ‘.XSY’. Todos los cambios que realizados sobre las variables en Unity Pro XL serán realizados en Vijeo automáticamente. Unity Speedlink permite el uso de variables que tengan asignados una dirección de memoria (no siendo válidas aquellas que se encuentren direccionadas en los módulos de entrada o salida del autómata). En Unity Pro XL, las palabras usan una dirección de tipo ‘%MW’, mientras que los bits usan una dirección de tipo ‘%M’. A continuación, se explica el procedimiento de conexión. 6.2.1 Procedimiento de conexión del autómata usando Unity Speedlink Static 6.2.1.1 Exportación de variables en Unity Pro XL Se exportan las variables necesarias pulsando la tecla derecha del ratón sobre las variables deseadas, y pulsando en exportar. El formato necesario será ‘.XSY’. Para poder realizar la exportación, es necesario estar desconectado del autómata. Ilustración 45: Exportación de variables en Unity Pro XL. 6.2.1.2 Configuración en Vijeo Citect SCADA En primer lugar, se configura el dispositivo de E/S. Para ello, se pulsa en Configuración rápida de dispositivos de E/S, dentro del directorio Comunicaciones, que se encuentra en la parte derecha del explorador de proyectos. 47 47 Integración de equipos en célula de fabricación flexible Ilustración 46: Apartado comunicaciones en el explorador de proyectos. En la ventana de selección de servidor E/O, se creará un nuevo servidor. Ilustración 47: Creación de nuevo servidor. En la ventana de selección del tipo de selección de E/S, se selecciona Dispositivo de E/S externo, y se pulsa en siguiente. Ilustración 48: Selección de tipo del dispositivo de E/S. En la ventana de método de comunicación del dispositivo de E/S se busca Modbus/TCP (Ethernet), dentro de la gama M340 del fabricante Schneider-Electric. Comunicación de autómatas con el SCADA 48 Ilustración 49: Selección de Modbus como método de comunicación. A continuación, se introduce como dirección del dispositivo la dirección IP del autómata (en este caso el autómata principal), y como puerto 502. Ilustración 50: Selección de dirección IP y puerto. En este caso no se ha usado una base de datos externa, por lo que no se debe marcar la casilla que aparece en el cuadro de diálogo de la Ilustración 51. Ilustración 51: Posibilidad de vincular con una base externa de datos. 49 49 Integración de equipos en célula de fabricación flexible Por último, se pulsa en el resto de ventanas en siguiente hasta finalizar su creación. Una vez realizada la configuración, se procede a crear el dispositivo de E/S. De nuevo, en la ventana de comunicaciones del Explorador de proyectos, se pulsará en Dispositivos de E/S. Ilustración 52: Apartado Comunicaciones en el explorador de proyectos. Una vez allí, se añade el nuevo dispositivo a conectar, indicando ahora como protocolo MODNET (en vez de MODNET30, el protocolo que viene predeterminado). El nombre del puerto se cambia también a PORT2_BOARD2. Por último, se pulsa en Reemplazar para sobrescribir los cambios. Ilustración 53 Modificación de la configuración del dispositivo de E/S. Por último, se procede a importar las variables usando Unity SpeedLink Static. Para ello, en el explorador de proyectos, se pulsa en Importar tags, en el menú desplegable Herramientas. Comunicación de autómatas con el SCADA 50 Ilustración 54: Importación de tags desde el explorador de proyectos. En la ventana de importación, se selecciona el dispositivo de E/S configurado anteriormente. En el tipo de base de datos se selecciona Unity Speedlink Static. También es necesario poner el directorio en el que se encuentran las variables exportadas. Como opciones extras se encuentran el añadir un prefijo en la exportación de los tags, o el eliminado de los tags de este dispositivo de E/S antes de importar de nuevo. Ilustración 55: Ventana de exportación de variables. Por último, se pulsa en Importar para proceder con la operación. 6.3. Uso de vectores Es posible el uso de vectores usando comunicación Unity Speedlink static. Como ejemplo práctico, se tomará el paso de un vector de 7 componentes de variables tipo INT. En primer lugar, se necesita que el vector se encuentre direccionado físicamente en el autómata. Para ello, en el Editor de variables se direcciona la cabecera del vector (en este caso se ha ubicado en la dirección %MW0). Es también necesario tener en cuenta el tipo de variable que se está direccionando: para el caso de tipo EBOOL se usa una dirección tipo %M, mientras para el resto de variables de debe usar una dirección tipo ‘%MW’. Una vez direccionado, se creará otra variable que indicará el comienzo del vector en la memoria del autómata, la cual será usada posteriormente en el SCADA (en el ejemplo, corresponde con vector_SCADA). Se direcciona en la misma dirección que el primer elemento del vector. 51 51 Integración de equipos en célula de fabricación flexible Ilustración 56: Direccionado del vector y su cabecera en Unity Pro XL. Se procede a compilar el proyecto, y se darán 2 avisos en la compilación, indicando que dos variables se encuentran solapadas en la memoria del autómata. Una vez importado los tags, se procede a la creación del vector en Vijeo Citect. Para ello, en la ventana de exploración de los tags de variables, se indica en el cuadro de texto de la dirección la dimensión del vector mediante el uso de corchetes (como se indica en la Ilustración 57: configuración del vector). Ilustración 57: configuración del vector en Vijeo Citect. Es necesario tener en cuenta en el uso de vectores en Vijeo Citect que la primera componente del vector se considera la componente 0. 6.4. Tabla comparativa entre Unity Speedlink y OPC Unity Speedlink OPC Conexión entre equipos del mismo fabricante Sólo entre equipos de Schneider Electric. Sí Conexión entre equipos de distintos fabricantes No Sí Posibilidad de tipos derivados Vectores No Necesaria direccionamiento físico en memoria de variables Sí No Uso de variables direccionadas en módulos de entrada o salida No (existe procedimiento auxiliar) Lectura/Escritura. Ha de matizarse que sólo es posible la lectura o escritura de variables direccionadas en los módulos de entrada o salida usando Unity Speedlink mediante el uso de variables auxiliares. Para ello, se hará una asignación Comunicación de autómatas con el SCADA 52 directa de estas variables de salida con las variables situadas en los módulos de entrada y salida. 53 7 APLICACIÓN PRÁCTICA: CÉLULA DE FABRICACIÓN FLEXIBLE Una vez exploradas todas las conexiones entre los distintos equipos, se presenta el ejemplo práctico de demostración, que incluye todas las conexiones presentadas en los capítulos anteriores. En la aplicación de demostración, el objetivo será tomar un número determinado de pallets que se encuentren almacenados en el sistema de almacenamiento robótico, y procesarlos en el puesto del robot SCARA situado en el tramo 3 del sistema de transporte (por ejemplo, situando una pieza sobre el pallet). Una vez procesado el contenido del pallet, se almacenará de nuevo en el espacio definido para ellos en el sistema robótico. Como se ha explicado en la descripción de la instalación realizada en el capítulo 3, actualmente el robot SCARA se encuentra fuera de servicio. Por ello, el procesado del pallet en este puesto (servir o retirar pieza del pallet) se simulará con una parada de 3 segundos en el puesto de trabajo del robot. La aplicación consta de dos opciones en su funcionamiento:  Modo servir/retirar pieza: Permite elegir la acción a realizar en el robot SCARA. En el caso de servir pieza, se extrae del sistema de almacenamiento de pallets un pallet no procesado; por el contrario, si se desea retirar pieza, el pallet debe estar ya procesado.  Modo automático: Asigna las peticiones del número de piezas a procesar en función del estado actual del almacén. La elección del modo servir pieza y retirar pieza se realiza de forma automática cuando este modo esté activado. 7.1. Sistema de transporte En este apartado se hace una descripción más detallada del sistema de transporte (sensores y actuadores controlados por el autómata principal) y del panel de control. También se presentará la guía GEMMA de la aplicación de demostración, así como de su implementación en el autómata usando Unity Pro XL. Para la descripción del sistema de transporte, se ha tomado como referencia el trabajo de fin de grado [13] 7.1.1 Descripción del sistema de transporte 7.1.1.1 Descripción de los actuadores y sensores Los actuadores y sensores se encuentran señalizados como cuadrados y círculos respectivamente. Aplicación práctica: Célula de fabricación flexible 60 7.1.2.2.4 A3- Parada pedida En este estado se lleva a cabo el procedimiento para realizar la parada de la planta. El procedimiento consiste en terminar las peticiones que se estén llevando a cabo en ese momento en la instalación, y guardar en memoria aquellas que se han pospuesto. Para acceder a él, se pulsará el pulsador de paro situado en el panel de control de la instalación. 7.1.2.2.5 A4- Parada obtenida Estado alcanzado tras realizar una parada durante el estado de producción normal (F1). Para reanudar la marcha y regresar al estado de producción normal, se debe pulsar en MODO AUTO (tendrá el indicador luminoso encendido). 7.1.2.2.6 D3-Producción a pesar de defectos Estado alcanzado cuando se produce un defecto leve. Los defectos leves son aquellos que permiten el funcionamiento de la planta, aunque con capacidad limitada. Los defectos leves considerados son el fallo de algún sensor de alguno de los desvíos, o la existencia de un número de bandejas en el alimentador menor al número de bandejas máximo en la instalación. 7.1.2.2.7 D1- Parada de emergencia Estado alcanzado en el caso de producirse algún error grave (error de comunicación con el almacén, error grave en el alimentador de bandejas, pérdida de bandeja en el sistema de transporte, …). Para abandonar el estado de parada de emergencia se debe solucionar el error, y resetear el error grave de la instalación. Tras este estado, el estado de la instalación evolucionará hacia una puesta en marcha. 7.1.3 Implementación usando Unity Pro XL 7.1.3.1 Descripción del PLC La configuración del autómata usado es el siguiente:  Rack BMX XBP 0800. Admite hasta un máximo de 7 módulos de entradas, salidas o de funciones especiales.  Módulo de alimentación de red de corriente alterna BMX CPS 2000. Proporciona una corriente continua de 24V.  Módulo procesador BMX P34 2020, con conexión puerto serie, Ethernet y USB (explicado previamente en los capítulos de conexión).  Módulo de entradas digitales BMX DDI 6402K de lógica positiva con canales de entrada que reciben la corriente de los sensores.  Módulo de salidas digitales BMX DD0 6402K de lógica positiva con canales de salida que proporcionan corriente a los actuadores. 7.1.3.2 Configuración del PLC usando Unity Pro XL Se deben indicar los módulos existentes en el autómata que se desea programar. Para ello, en el explorador de proyectos se abre la carpeta Configuración, y se seleccionan cada uno de los módulos. 61 61 Integración de equipos en célula de fabricación flexible Ilustración 64: Configuración de los módulos disponibles en el autómata. Para la configuración de las conexiones, es necesario seguir los pasos indicados en la sección 5.2, donde se explica el procedimiento para la conexión a la red Ethernet. Una vez configurada la red Ethernet, es posible realizar la conexión del PC al autómata mediante ella. Para proceder a la conexión, se accederá a Establecer conexión, situado en el menú desplegable PLC. Ilustración 65: Acceso a la ventana de conexión al autómata. En ella, se configuran los parámetros de conexión al autómata deseado (dirección IP y medios). En el caso de autómata principal, la dirección IP es 192.168.0.12 y en el campo Medios se seleccionará TCPIP. Tras la configuración, es necesario que se pulse en aceptar y se cierre la ventana con el fin de validar la configuración. Aplicación práctica: Célula de fabricación flexible 62 Ilustración 66: Cuadro para establecer conexión con el autómata usando la red Ethernet. También se puede realizar la conexión mediante USB. Para ello, en la ventana emergente se selecciona en la categoría Medios la opción USB, y en la dirección se indica SYS. Para comprobar que los parámetros son correctos se pulsa en Comprobar conexión; en el caso de conexión correcta, se pulsa aceptar para validar los cambios. Ilustración 67: Ventana emergente para configurar la dirección. 7.1.3.3 Direcciones de entradas y salidas al autómata 7.1.3.3.1 Direcciones de entrada Tabla 25: Entradas del autómata principal. Nombre variable Dirección Descripción ED_PRESOSTATO %I0.1.0 Sensor de presión de aire de la instalación. ED_ENT_DESVIO_1 %I0.1.1 Sensor de bandeja en entrada al desvío 1. ED_PALET_ELEV_1 %I0.1.2 Sensor de bandeja en desvío 1. ED_SAL_ DESVIO_1 %I0.1.3 Sensor de bandeja en salida del desvío 1. ED_ ENT_DESVIO_2 %I0.1.4 Sensor de bandeja en entrada al desvío 2. ED_PALET_ELEV_PUSH_2 %I0.1.5 Sensor de bandeja en desvío 2 (final de tramo) ED_ ENT_DESVIO_3 %I0.1.6 Sensor de bandeja en entrada al desvío 3. ED_PALET_ELEV_3 %I0.1.7 Sensor de bandeja en desvío 3. ED_SAL_ DESVIO_3 %I0.1.8 Sensor de bandeja en salida del desvío 3. ED_ ENT_DESVIO_4 %I0.1.9 Sensor de bandeja en entrada al desvío 4. 63 63 Integración de equipos en célula de fabricación flexible ED_PALET_ELEV_PUSH_4 %I0.1.10 Sensor de bandeja en desvío 4 (final de tramo). ED_ENT_DESVIO_5 %I0.1.11 Sensor de bandeja en entrada al desvío 5. ED_PALET_ELEV_5 %I0.1.12 Sensor de bandeja en desvío 5. ED_PALET_ELEV_PUSH_5 %I0.1.13 Sensor de bandeja en desvío 5 (final de tramo). ED_ENT_ALMACEN %I0.1.14 Sensor de bandeja en entrada al almacén. ED_ENT_SCARA %I0.1.15 Sensor de bandeja en entrada al robot SCARA. ED_SAL_SCARA %I0.1.16 Sensor de bandeja en salida del robot SCARA. ED_ENT_DISP_BANDEJA %I0.1.17 Sensor de bandeja en entrada al alimentador de bandejas. ED_SAL_DISP_BANDEJA %I0.1.18 Sensor de bandeja en salida al alimentador de bandejas. ED_PUL_BUSQUEDA %I0.1.21 Pulsador de búsqueda del panel de mandos. ED_PUL_AUTOMATICO %I0.1.22 Pulsador de marcha automático del panel de mandos. ED_PUL_PARADA %I0.1.23 Pulsador de parada del panel de mandos. 7.1.3.3.2 Direcciones de salida Tabla 26: Salidas del autómata principal. Nombre de la variable Dirección Descripción SD_VAL_GENERAL %Q0.2.0 Válvula general. SD_RET_ENT_DESVIO_1 %Q0.2.1 Descenso del retenedor previo al desvío 1. SD_ELEV_DESVIO_1 %Q0.2.2 Elevación del desvío 1. SD_RET_ENT_DESVIO_2 %Q0.2.3 Descenso del retenedor previo al desvío 2. SD_ELEV_DESVIO_2 %Q0.2.4 Elevación del desvío 2. SD_RET_ENT_DESVIO_3 %Q0.2.5 Descenso del retenedor previo al desvío 3. SD_ELEV_DESVIO_3 %Q0.2.6 Elevación del desvío 3. SD_RET_ENT_DESVIO_4 %Q0.2.7 Descenso del retenedor previo al desvío 4. SD_ELEV_DESVIO_4 %Q0.2.8 Elevación del desvío 4. SD_RET_ENT_DESVIO_5 %Q0.2.11 Descenso del retenedor previo al desvío 5. SD_RET_ALMACEN %Q0.2.12 Descenso del retenedor previo al almacén. SD_RET_DISP_BANDEJA %Q0.2.13 Descenso del retenedor previo al alimentador de bandejas. Aplicación práctica: Célula de fabricación flexible 64 SD_MOTOR_1 %Q0.2.16 Motor del tramo 1. SD_MOTOR_2 %Q0.2.17 Motor del tramo 2. SD_MOTOR_3 %Q0.2.18 Motor del tramo 3. SD_MOTOR_4 %Q0.2.19 Motor del tramo 4. SD_PILOTO_MODO_BUSQUEDA %Q0.2.22 Piloto del pulsador de MODO BÚSQUEDA. SD_PILOTO _PARADA_MOTORES %Q0.2.23 Piloto del panel de control PARADA MOTORES. SD_PILOTO_MODO_AUTO %Q0.2.24 Piloto del panel de control MARCHA AUTOMATICO. 7.1.3.4 Programación En primer lugar, con el fin de la comprensión de la programación realizada, se explica cómo se han gestionado los datos de cada una de las bandejas que se encuentran circulando en el modo de producción. Se ha dividido cada tramo del circuito del sistema de transporte en 14 sub-tramos (los tramos 1 y 4 se han dividido en 4 sub-tramos, mientras que los tramos 2 y 3 se han dividido en 3 sub-tramos). Cada sub-tramo lleva asociada una estructura de tipo Tramo, que ha sido definida como una variable derivada. Consta de los siguientes campos: - Bandeja (EBOOL): Indica si hay bandeja en el sub-tramo. - Pallet (EBOOL): Indica si la bandeja lleva un pallet. - Procesado (EBOOL): Indica si el pallet que lleva está procesado. - Tiempo (INT): Número de pulsos de 125ms que se han dado desde que entró la bandeja al sub-tramo. - Defecto (EBOOL): Indica con un 1 si la bandeja está defectuosa. No se usa este campo Tramo 1.1 Tramo 1.2 Tramo 1.3 Tramo 1.4 Tramo 2.1 Tramo 2.2 Tramo 2.3 Tramo 3.1 Tramo 3.2 Tramo 3.3 Tramo 4.4 Tramo 4.3 Tramo 4.2 Tramo 4.1 65 65 Integración de equipos en célula de fabricación flexible en la aplicación actual. A su vez, cada tramo, lleva asociado un vector de estructuras Tramo. Se han definido dos tipos de datos derivados para los tramos de 3 y 4 sub-tramos: - Tramo_3: Vector de tres componentes de tipo Tramo. - Tramo_4: Vector de cuatro componentes de tipo Tramo. Por último, se han declarado 4 variables: Nombre de la variable Tipo de dato Descripción Tramo1 Tramo_4 Variable asociada al tramo 1. Tramo2 Tramo_3 Variable asociada al tramo 2. Tramo3 Tramo_3 Variable asociada al tramo 3. Tramo4 Tramo_4 Variable asociada al tramo 4. En cada uno de los sub-tramos no puede haber dos bandejas al mismo tiempo, pues implicaría la pérdida de la información actual. La programación se compone de un conjunto de 21 secciones. La programación completa puede consultarse en Anexo A. El objetivo de cada sección de programación será explicado a continuación en distintos apartados. 7.1.3.4.1 Valvula_General_y_Temp Mantiene la válvula general de aire comprimido activada. En esta sección también se encuentran los temporizadores usados para los errores leves de desvío de los desvíos y el temporizador usado para simular el procesamiento de la pieza en el puesto de trabajo del robot SCARA. 7.1.3.4.2 Desvio_1 (SFC) Se encarga de la gestión del desvío entre los tramos 1 y 2. Esta sección se encuentra condicionada con la variable COND_DESVIO_1. En el caso de que no haya ningún fallo en los sensores del tramo, la secuencia seguida es la siguiente: Se espera a la llegada de una bandeja al desvío. Cuando el sensor de entrada a la sección es activado (ED_ENT_DESVIO_1 a nivel alto), se hace una espera de 500ms y se eleva el retenedor de bandeja previa del desvío (ED_PALET_ELEV_1). Una vez se detecte la llegada de la bandeja al final del tramo 1, si el tramo 2.1 se encuentra libre (es decir, si Tramo2[1].bandeja está a nivel bajo), se eleva el desvío (SD_ELEV_DESVIO_1) hasta que sea detectada la bandeja en la salida del desvío (ED_SAL_DESVIO_1). Por último, se procede a la bajada del retenedor de bandeja previa. El caso de fallo de alguno de los sensores se encuentra también contemplado en esta sección, indicándose con la variable FALLO_D1 a nivel alto. 7.1.3.4.3 Desvio_2 (SFC) Se encarga de la gestión del desvío entre los tramos 2 y 3. Esta sección se encuentra condicionada con la variable COND_DESVIO_2. En el caso de que no haya ningún fallo en los sensores del tramo, la secuencia seguida es la siguiente: Se espera a la llegada de una bandeja al desvío con el desvío elevado. Cuando el sensor de entrada al desvío es activado (ED_ENT_DESVIO_2 a nivel alto), se hace una espera de 500ms y se eleva el retenedor de bandeja previa del desvío. Una vez se detecte a llegada de la bandeja a final del tramo (SD_ELEV_DESVIO_PUSH_2 a nivel bajo), si el tramo 3.1 se encuentra libre (Tramo3[1].bandeja a nivel bajo) se procede a poner el elevador en su posición inferior. Por último, cuando el sensor de bandeja tipo WIPER vuelva a nivel alto (ED_ELEV_DESVIO_PUSH_2), el desvío se vuelve a poner en su posición elevada, y el retenedor de Aplicación práctica: Célula de fabricación flexible 66 bandejas previa desciende. El fallo de todos los sensores está contemplado (al igual que en la sección del desvío 1), indicándose el fallo con la variable FALLO_D2 a nivel alto. 7.1.3.4.4 Desvio_3 (SFC) Esta sección es análoga a la sección Desvio_1, exceptuando la elevación del desvío (se encontrará a la entrada de la bandeja en el desvío en su posición inferior, y con la llegada de la bandeja al final del tramo pasará a su posición superior). También se encuentra condicionada con la variable COND_DESVIO_3. 7.1.3.4.5 Desvio_4 (SFC) Esta sección es análoga a la sección Desvio_2, exceptuando la elevación del desvío (se encontrará a la entrada de la bandeja en su posición inferior, y con la llegada de la bandeja al final del tramo pasará a su posición superior). También se encuentra condicionada con la variable COND_DESVIO_4. 7.1.3.4.6 ACUMULACION (LD) Se encarga de chequear durante la puesta en marcha cuándo se puede proceder al apagado de los motores que mueven cada uno de los tramos del sistema de transporte. Esta sección funcionará sólo en el caso de que la variable INICIO_ACUMULACION se encuentre activada. En cada uno de los tramos, se espera a que pasen 10 segundos sin que ningún sensor de los que se encuentran en el tramo correspondiente sea activado. En el caso de cumplir esta condición, se activará la variable FIN_ACUMULACIONn, siendo n el número del tramo correspondiente. 7.1.3.4.7 CONTADOR_VEH (LD) En esta sección se encuentran implementados los contadores que llevan a cabo la cuenta del número de vehículos de los tramos 1 y 3. Se ha usado un contador CTU_INT (contadores de cuenta positiva de tipo entero) para cada uno de los tramos. Cuando la variable INICIO_CUENTA_VEH se active, reseteará la cuenta actual en los contadores y comenzará a contar el número de flancos de bajada que se produzcan en el sensor de entrada del desvío (ED_ENT_DESVIO_2 o ED_ENT_DESVIO_4), es decir, vehículos que entran a los tramos 1 y 3. 7.1.3.4.8 Puesta_marcha_SFC (SFC) En esta sección se implementa el estado de puesta en estado inicial (A6) descrito en la guía GEMMA. En primer lugar, se desactivan las secciones DESVIO_1, DESVIO_2, DESVIO_3 y DESVIO_4, se elevan los retenedores de los desvíos y se hace descender a los retenedores intermedios de los tramos. Tras esto, se elevan los desvíos durante 2 segundos para vaciar las posibles bandejas que hayan quedado en el desvío fuera del alcance de detección de los sensores, y se procede a la activación de las secciones de desvíos y a la variable bandera que indica el inicio de la acumulación (realizada por la sección Ladder ACUMULACION). Conforme las variables FIN_ACUMULACIONn vayan siendo activadas, se irá realizando el apagado del motor del tramo n correspondiente. Tras finalizar la acumulación, se hacen descender los retenedores de las secciones y se activa la cuenta de las bandejas durante 20 segundos. Transcurrido ese tiempo, se realiza la escritura de las peticiones de almacenamiento remotas al alimentador de piezas. En el caso de que se detecte una bandeja con pallet, entonces se eleva el retenedor del puesto de trabajo del almacén. Una vez que la pieza sea detectada por el sensor, se solicita el almacenamiento de un pallet defectuoso. Cuando el sistema robotizado de almacenaje haya recogido el pallet de la bandeja, se hace descender el retenedor, dejando avanzar a la bandeja hacia el alimentador de bandejas. Una vez que el número de peticiones remotas de almacenamiento en el alimentador sea 0, se procede a activar una variable bandera indicando el final de la puesta en marcha. 7.1.3.4.9 MODO_AUTO (SFC) Esta sección implementa los estados A4 (Parada obtenida), A3 (Parada pedida), F1 (Producción normal) y D3 (Producción a pesar de defectos) explicados en la guía GEMMA. Se encuentra condicionada con la variable COND_MODO_AUTO. 67 67 Integración de equipos en célula de fabricación flexible En primer lugar, se inicia con la pulsación del pulsador MODO AUTOMÁTICO. Con esto, se activarán los motores y las secciones que rigen los desvíos. En el caso de una parada solicitada, esperará la finalización de la acción de servir o almacenar bandeja o pallet (en el caso de que se esté realizando en ese momento) y guarda el número de peticiones pendientes en una variable llamada Pet_preparo. Una vez guardadas, se establece el número de peticiones al número de peticiones en proceso y se espera a que termine de realizarlas. Por último, se apagan los desvíos y los motores de todos los tramos. 7.1.3.4.10 Comunicación_MODBUS (LD) Está compuesta por los distintos bloques relacionados con la comunicación Modbus entre el autómata principal y el alimentador de bandejas. En ella se encuentran un bloque ADDM, dos bloques READ_VAR para la lectura de los tipos EBOOL e INT del autómata del alimentador de bandejas, un bloque WRITE_VAR para la escritura de las peticiones remotas, y los bloques INT_TO_WORD y WORD_TO_BIT con el fin de realizar la conversión de tipo INT a tipo BIT y poder acceder a los bits leídos. 7.1.3.4.11 ComunicacionPuertoSerie (LD) Realiza la gestión de la comunicación por puerto serie. Para ello usa un bloque ADDM y los bloques creados para la gestión de la comunicación con CRC (Lectura_mensaje_recibido_Con_CRC y Envio_mensaje_con_CRC). 7.1.3.4.12 MODO_OPERA_ALMACEN (SFC) Esta sección en SFC realiza la gestión de la comunicación mostrada en la Ilustración 12Ilustración 12: Posibilidades en la comunicación del apartado 4.2. 7.1.3.4.13 Lee_matriz_sfc (SFC) Esta sección se encarga de la recepción del vector de ocupación que el almacén envía cada vez que lleva a cabo una petición. La recepción se activa mediante un flanco de subida en la variable inicio_recepcion_matriz, e indica su final realizando un flanco de bajada en esta misma variable. Los distintos vectores recibidos son almacenados en el vector Almacen de 72 componentes. En el caso de error de recepción de la matriz, activa la variable Error_almacen_recepcion_mat durante 2 segundos antes de realizar el flanco de bajada para indicar el final de la recepción. 7.1.3.4.14 Generador_pulsos (LD) Contiene dos generadores de pulsos que serán usados en el resto de secciones. Uno de ellos genera pulsos cada 125ms (variable salida_pulsos), mientras que el otro genera pulsos cada 200ms (variable salida_pulsos_200ms). 7.1.3.4.15 SeguidorVisual (ST) Actualiza toda la información contenida en las estructuras de cada tramo, es decir, la existencia de bandejas, pallets o piezas, y el tiempo de permanencia en cada tramo. Esta información se guarda en la estructura explicada al principio del apartado de programación. Para ello, en caso de activación de alguno de los subtramos, recupera la información del tramo anterior, y luego procede a su desactivación. El tiempo del tramo que se activa es reseteado antes de comenzar la cuenta del tiempo. En el caso de que este tiempo de permanencia de una bandeja supere un determinado límite en un sub-tramo, se considerará que la bandeja ha sido perdida. También realiza en cada ciclo el cálculo del número de bandejas con pallets con piezas, con pallets sin piezas y bandejas libres circulando en la instalación. 7.1.3.4.16 ProgramacionRetenedoresAUTO (LD) Realiza el control sobre el control de los distintos retenedores de los tramos. Esta sección se encuentra condicionada por una variable COND_PROG_RET_AUTO, que será activada cuando la instalación se encuentre en el modo de producción normal (F1). Aplicación práctica: Célula de fabricación flexible 68 7.1.3.4.17 Gestion_peticiones_bandejas (ST) Gestiona las peticiones a los distintos puestos de trabajo (alimentador de piezas, robot SCARA y sistema robotizado de almacenaje). En esta sección se encuentra implementado también el modo de peticiones automáticas. 7.1.3.4.18 Supervision_errores (LD) Supervisa la operación y detecta los fallos leves y graves que se produzcan durante la operación de la instalación. El fallo grave de la instalación puede ser producido por: - Número de bandejas incongruente: Se produce en caso de que el número de bandejas que se ha hallado mediante la información de cada tramo sea distinto al número de bandejas que se contabilizan cada vez que realiza el alimentador de bandejas una petición de servir o almacenar pieza. Este fallo se indica con la activación de la variable Fallo_grave_bandejas. - Error de realización de petición en el sistema de almacenamiento: El error de realización se da cuando no ha sido posible realizar la petición debido al estado actual de la ocupación de los estantes. Se indica el error con la variable error_realizacion. - Fallo grave del alimentador de bandejas: Es leída del autómata del alimentador en la sección ComunicacionModbus a través de conexión Ethernet. - Alimentador de bandejas en modo local: El alimentador de bandejas necesita encontrarse con el modo auto remoto activado en el control de mandos de la máquina. La variable que indica que se encuentra en modo remoto es leída en la sección ComunicacionModbus a través de la conexión Ethernet entre autómatas. - Pérdida de bandeja en un tramo: Cada tramo tiene una limitación de tiempo máximo en la que la bandeja puede permanecer en él. En el caso de que este límite sea superado, se supone que la bandeja ha sido perdida en ese tramo (caída, pérdida, …). Este fallo se indica con la componente correspondiente en el vector fallo_grave_tramos[14]. Para el reseteo de los fallos graves, se debe en primer lugar cambiar las condiciones que produjeron el fallo. Tras esto, se repara el fallo grave a través del sistema SCADA pulsando el pulsador indicado para ello, o pulsando los botones de MODO AUTOMÁTICO y MODO BÚSQUEDA en el cuadro de mandos de la instalación. El fallo leve de la instalación puede ser producido por 2 motivos: - Fallo leve en alguno de los desvíos: Puede ser producido por el fallo de uno de los sensores en el desvío o por la manipulación del desvío por parte de un operador (por ejemplo, activación de los sensores sin que se encuentre una bandeja). - Nivel insuficiente de piezas en el alimentador: Se produce en el caso de que el alimentador se encuentre vacío y el número de bandejas en la instalación sea menor al número máximo de bandejas en la instalación. 7.1.3.4.19 Reseteos_tramos_tiempos (ST) Resetea la información acerca de la existencia de bandejas o el tiempo de permanencia de éstas en cada uno de los tramos de la instalación. Este reseteo se encuentra condicionado por dos variables: reparacion_fallo_grave (variable que resetea los fallos graves de la instalación) o reseteos_tramos (variable que es usada en la guía GEMMA para resetear la instalación a su estado inicial). 7.1.3.4.20 Asignacion_variables_SCADA Asigna las variables direccionadas en los módulos de entrada y salida del autómata a variables direccionadas en la memoria del autómata. Estas variables son indicadas con el prefijo SC_. También asigna a las estructuras de cada tramo variables para que puedan ser usadas en el sistema SCADA. 69 69 Integración de equipos en célula de fabricación flexible 7.1.3.4.21 Reseteos_congelacion_secciones En esta sección se lleva a cabo la inicialización de las secciones SFC en el caso de un reseteo completo de la instalación. Esto puede darse con el encendido del PLC o tras la salida del estado de emergencia. También lleva a cabo la congelación de las secciones de los desvíos en el caso de encontrarse en una parada, con el objetivo de evitar que, aunque se activen los sensores de forma manual, su activación no sea detectada como un fallo leve del desvío. 7.2 Alimentador de bandejas La comunicación entre los distintos puestos de trabajo en una célula de fabricación flexible se realiza usando bandejas que se moverán sobre unas cintas transportadoras. Estas bandejas podrán ser servidas o almacenadas por el alimentador de bandejas. En este capítulo se hace una descripción física de la planta (autómata utilizado, sensores y actuadores) y se presenta la guía GEMMA implementada. Para el desarrollo de la descripción del alimentador se ha tomado como referencia la descripción realizada por Antonio Luis Velasco Martín en su trabajo de fin de grado: ‘Integración de alimentador de bandejas a célula de fabricación flexible controlada por PLC’ [15]. 7.2.1 Descripción de la máquina. 7.2.1.1 Descripción de actuadores y sensores El alimentador de bandejas consta de 4 cilindros y 11 sensores. En la Ilustración 68 se presenta un esquema de la instalación con los sensores y actuadores que se disponen. Ilustración 68: Esquema general de la distribución de sensores y actuadores. Aplicación práctica: Célula de fabricación flexible 76 7.2.3.3.3 Supervisor (LD) Realiza la detección de los errores, y activa las transiciones en la guía GEMMA. El supervisor distingue dos tipos de fallos: fallos leves y fallos graves. - Se considera fallo leve cuando se produzca el fallo de alguno de los sensores de final de carrera del cilindro de elevación o de giro. - Se considera fallo grave el fallo de alguna de las electroválvulas de los actuadores del sistema (retenedores, cilindro de giro o cilindro de elevación) o la pérdida de la presión de aire. Con el fin de que sean detectados, cada fallo posible tiene asociado un temporizador que establece el tiempo máximo para la realización de esa tarea. En el caso de que estos temporizadores sean activados, se activa el fallo correspondiente. El reseteo de los fallos dependerá de su tipo: - Los fallos leves serán desactivados en el caso de que se realice de nuevo cualquier operación usando esos sensores de forma correcta. - Los fallos graves causados por fallo de los actuadores deben ser desactivados de forma manual en el panel de control pulsando los dos pulsadores de petición a la vez mientras se encuentre la seta de emergencia activa. También es posible la desactivación de forma remota desde el sistema SCADA. 7.2.3.3.4 Modo_control (SFC) Sección encargada de llevar a cabo las peticiones. Corresponde en la guía GEMMA a los estados F1- Producción normal, D1-Producción a pesar de defectos y al modo remoto. Del paso inicial aparecen dos bifurcaciones: la primera corresponde a si hay petición de almacenamiento, mientras que la segunda si hay petición de servir bandeja. Para almacenar bandeja, el retenedor de bandejas en zona previa es activado durante 3 segundos, con el fin de esperar a la salida de cualquier bandeja que se encuentre en su interior. Tras esto, si existe una bandeja esperando en la zona previa, se desactiva el retenedor para dejar pasar la bandeja a la zona de elevación, y se vuelve a subir con el fin de retener a aquellas que vengan tras ella. Para parar las bandejas en la zona de elevación, se activa el retenedor de bandeja en posición de elevación. Una vez es detectada por el sensor de la zona de elevación, en el caso en el que el sensor de barrido haya detectado un pallet en la bandeja se desactiva el retenedor, dejando paso a una nueva bandeja. Si el sensor de barrido no detecta pallet sobre la bandeja, se activa el cilindro de elevación hasta que llegar a su posición superior. Tras esto, se procede al giro usando el actuador para ello (deberá chequearse antes la posición del cilindro con el fin de saber cuál de los actuadores activar). Por último, se procede a bajar el cilindro de elevación y el retenedor de bandejas en posición de elevación, y se indica con una variable tipo bandera que el ciclo de almacenado ha finalizado. En el caso de que haya más peticiones de almacenamiento, el retenedor de bandeja previa se deja elevado; si por el contrario ya no quedan más peticiones, se procede al descenso del retenedor. Para servir bandeja, se activa el retenedor de bandejas en zona previa durante 5 segundos para esperar a la salida de cualquier bandeja que se encuentre en su interior. Tras esto, se procede a activar el cilindro de elevación hasta que llegue a la posición superior, y se procede al giro usando el actuador para ello (se debe chequear antes la posición del cilindro con el fin de saber cuál de los actuadores activar). Una vez se haya girado, se procede a bajar el cilindro de elevación y tras esto, desactivar el retenedor de bandeja en zona de elevación. Por último, se notifica que el ciclo de servir bandeja ha acabado con una variable tipo bandera, y se desactiva el retenedor de bandeja previa. 7.2.3.3.5 Puesta_en_reposo (SFC) Realiza la puesta en el estado inicial, por lo que corresponde al estado A6 de la guía GEMMA. Esta secuencia es activada por una variable tipo bandera. En ella se llevan todos los pistones a sus posiciones 77 77 Integración de equipos en célula de fabricación flexible iniciales, y tras ello, se eleva el cilindro de elevación a su posición superior durante unos segundos con el fin de corregir cualquier defecto de posición de las bandejas. Además de la secuencia comentada, también lleva a cabo el reseteo de las peticiones y de la sección de Modo_control explicada anteriormente. 7.2.3.3.6 Secuencia_emergencia (SFC) Esta sección lleva a cabo una secuencia de acciones necesaria antes de llevar la instalación a la parada de emergencia, con el fin de que no se atasquen las bandejas en el caso de fallo grave en el cilindro de giro. La secuencia consiste en mantener el retenedor de bandeja previa subido mientras que se hace descender el cilindro de elevación. 7.2.3.3.7 Reseteos_secciones (LD) Si un autómata se encontraba en ejecución mientras se ha desconectado, cuando se vuelva a encender seguirá la ejecución por el mismo punto donde quedó. No obstante, esto puede provocar situaciones peligrosas si las condiciones de la máquina fueron alteradas mientras estuvo apagada. Por ello, se necesita que cuando se vuelva a encender comience de nuevo en el estado A6 de la guía GEMMA. Con ese objetivo, en esta sección se llevará a cabo el reseteo de todas las secciones en el primer ciclo del autómata tras su encendido. Para este fin se usa como condición del reseteo el bit del sistema %S21, que se activará sólo durante el primer ciclo del autómata. 7.2.3.3.8 SCADA_Asignacion_variables(LD) En esta sección se hace la asignación de las variables direccionadas en los módulos de entrada y salida a bits internos del autómata, con el fin de poder ser tratadas en el SCADA. Esto es consecuencia del uso de la comunicación Unity Speedlink, que sólo permite la manipulación de bits y palabras direccionadas en la memoria. 7.2.3.3.9 Generacion_pulsos_Visual (LD) Consta de un bloque Sample_TM que genera pulsos cada 500 ms. Este generador de pulsos es usado para la animación del SCADA. 7.2.3.3.10 Visualizacion_SCADA (ST) En esta sección se crean las variables usadas para la representación del movimiento en el SCADA. Para ello, se usan los pulsos del generador de pulsos para contar el tiempo que pasa durante la realización de la elevación y descenso del pistón, o el movimiento de la bandeja desde el retenedor a la zona de elevación. Estas variables son de tipo INT, y son usadas para el movimiento de la bandeja en la pantalla correspondiente del SCADA. 7.2.3.3.11 Reseteos_secciones (LD) En esta sección se implementa la inicialización de las secciones SFC con el encendido del autómata usando el bit del sistema ‘%S21’ (este bit se encuentra a nivel alto sólo en el primer ciclo del autómata). También será usado para el reseteo de la sección de Modo_Control (SFC) desde el bloque de la guía GEMMA. Aplicación práctica: Célula de fabricación flexible 78 79 8 APLICACIÓN PRÁCTICA: SISTEMA DE SUPERVISIÓN SCADA Se ha realizado una aplicación SCADA con el fin de realizar la supervisión y control de la instalación. La aplicación se ha realizado con Vijeo Citect 7.0, un software perteneciente a Schneider Electric. En este apartado se presenta el aspecto general de cada una de las ventanas de la interfaz gráfica. Tras esto, se enumeran las alarmas que posee la aplicación y, por último, se hablará del registro de la actividad en un documento de texto. Para el diseño de la interfaz gráfica se ha usado como referencia [16]. 8.1 Apariencia de la ventana Se compone de 3 elementos principales: - Selección de ventanas (elemento 1): Permite acceder a cada una de las ventanas que componen el SCADA. Cada ventana está dedicada a una parte de la instalación. - Selección de usuario: Permite la identificación del usuario que se encuentre usando el SCADA, de forma que las acciones que realice queden grabadas en un documento de texto. - Barra de información general: Muestra información general de la aplicación: hora, fecha y nombre de la ventana actual o ultima alarma activada. Permite también el acceso a las 1 2 3 ´ Aplicación práctica: Sistema de supervisión SCADA 80 ventanas de alarmas pulsando los iconos situados a la izquierda (corresponden con las alarmas de señal y de hardware respectivamente), activar el modo de ayuda, volver a la ventana anterior o regresar a la ventana Home de la aplicación. 8.2 Pantallas principales La aplicación principal se divide en seis pantallas, que son explicadas en los siguientes apartados. Para mayor claridad de las pantallas, parte de la información se muestra o se oculta en función del estado de la instalación. Los colores usados siguen la convención del Real Decreto 485/1997, de 14 de abril, sobre disposiciones mínimas en materia de señalización de seguridad y salud en el trabajo [17]. 8.2.1 Home Presenta un resumen del estado actual de toda la instalación. 1. Presenta el estado actual de cada uno de los elementos: estado del alimentador, sistema robotizado de almacenamiento y sistema de transporte. El color del recuadro se muestra verde, amarillo o rojo en función del estado de la instalación (verde para estado sin fallos, amarillo para estado con fallos leves, o rojo para estado con fallos graves) como se aprecia en Ilustración 71. Ilustración 71: Pantalla Home con distintos errores en los equipos. 2. Muestra la configuración actual de la operación (si se encuentra en modo de selección de peticiones automáticas, si la operación es servir o retirar pieza sobre el pallet, y el límite actual de bandejas). Estas opciones son configurables con los botones situados en la derecha. 3. Muestra el número de bandejas actual en la instalación. 4. Permite la selección del número de peticiones sólo en el caso de que se encuentre en modo de peticiones manuales. 5. Cuadro de mandos de la instalación. Permite la activación de los distintos modos y solicitar parada durante el modo de producción normal. En caso de emergencia, muestra un botón de reseteo de error grave, así como un icono de un pulsador de emergencia. 1 4 3 2 5 ´ 81 81 Integración de equipos en célula de fabricación flexible Ilustración 72: Cuadro de mandos en espera de puesta en marcha y en espera de reseteo de error grave. 8.2.2 Info instalación Muestra la guía GEMMA de la instalación, indicando en el estado en el que se encuentra. En la esquina inferior derecha se muestra el mismo cuadro de mandos de la instalación que en la ventana de Home. Ilustración 73: Pantalla Info Instalación mostrando una parada de emergencia. 8.2.3 Transporte Muestra información relevante sobre el sistema de transporte: - Estado de los retenedores: Se representan los retenedores elevados en color rojo, mientras que se representan en su posición inferior en color verde. - Estado de los tramos: Se muestra una estimación de las posiciones de las bandejas en los distintos tramos, así como el estado de las bandejas (si lleva un pallet, y si éste está cargado). En el caso de fallo grave en alguno de los tramos, se muestra en el margen derecho un cuadro indicando en qué tramos se encuentra el fallo grave. En la parte superior de este cuadro, también se muestra un pulsador que permite el reseteo de este error grave. - Estado actual de cada puesto de trabajo. - Estado de los desvíos: En caso de fallo leve en los desvíos, se muestra una advertencia visual en el desvío correspondiente. También se representa el estado de los elevadores de los desvíos mediante su color (el color rojo implica el desvío en su posición de reposo, mientras que el verde indica el elevador elevado). ´ Aplicación práctica: Sistema de supervisión SCADA 82 - Estado de los motores de cada tramo: En el caso de que el motor del tramo se encuentre activado, el color de la cinta es verde, mientras que si el color de la cinta es gris, el motor de ese tramo se encuentra desactivado. Ilustración 74: Ventana de transporte mostrando estimaciones de las posiciones de las bandejas. 8.2.4 Almacén matricial Muestra la información del sistema de almacenaje robotizado. Se distinguen tres zonas en la interfaz: 1. Visualización del estado de ocupación del almacén: Se encuentra dividido en pallets defectuosos, pallets sin pieza y pallets con pieza. Muestra de forma visual el estado de ocupación de los estantes en tiempo real. 2. Estado del almacén: Indica en el estado en el que se encuentra el sistema robotizado de almacenaje (ocupado, esperando petición o tarea finalizada en cinta). Se encuentra en estado ocupado cuando está llevando a cabo cualquier operación (realización de una operación de almacenamiento o extracción de pallet, envío del vector de estado de ocupación, etcétera). En este caso, indica la tarea que está realizando. Cuando se encuentre el piloto Cinta libre para mover iluminado, la operación de manipulación del sistema de almacenaje en el recurso compartido (en este caso el tramo 1) ha finalizado. 3. Fallos graves: Indica la causa del fallo detectado. Permite resetear ambos tipos de error mediante los dos pulsadores situados en la zona derecha del cuadro. En caso de que no haya ningún fallo, los cuadros que contienen los distintos tipos de fallos no son mostrados en la ventana. ´ 83 83 Integración de equipos en célula de fabricación flexible Ilustración 75: Pantalla Almacén Matricial mostrando un error de comunicación. 8.2.5 Alimentador de bandejas Muestra el estado del alimentador de bandejas. En la pantalla se presentan tres zonas diferenciadas (se encuentran indicadas en la Ilustración 77). 1. Animación del estado actual del alimentador. Incluye el movimiento de los pistones y de las bandejas. 2. Información del estado actual: Se encuentra situado en el margen derecho de la pantalla. Indica el número de peticiones remotas y locales que tiene actualmente el alimentador de bandejas. También permite modificar el número de bandejas disponibles en el alimentador. 3. Fallos: Indica los fallos leves y graves producidos durante el funcionamiento del alimentador de bandejas. Son ocultados en caso de que no exista fallo de ningún tipo como se muestra en la Ilustración 76). En el caso de la existencia de un fallo grave en la máquina, se puede reparar usando el pulsador correspondiente situado sobre los errores graves. Ilustración 76: Ventana del alimentador de bandeja sin presencia de fallos. ´ 1 2 3 ´ Aplicación práctica: Sistema de supervisión SCADA 84 Ilustración 77: Alimentador de bandejas en caso de fallo grave. 8.2.6 Ayuda En esta pantalla se describen brevemente los elementos de la pantalla básica de la aplicación SCADA. Ilustración 78: Ventana de ayuda de la aplicación SCADA. 8.3 Alarmas configuradas En la aplicación se han configurado alarmas que alertan de situaciones anómalas en la instalación. Se distinguen dos tipos de alarmas en el sistema: hardware (por ejemplo, aquellas producidas por errores de conexión entre equipos) o digitales (producidas por la activación de una variable digital). En este caso, las alarmas digitales coinciden con los fallos graves y leves de cada uno de los equipos de la instalación. ´ 3 1 2 85 85 Integración de equipos en célula de fabricación flexible En la Tabla 29 se encuentra un listado de las alarmas digitales implementadas, así como de sus descripciones. Tabla 29: Alarmas con las descripciones implementadas en el SCADA. Tag de la alarma Nombre de la alarma Descripción PAR_EMERG P. Emerg. Instalacion Parada de emergencia en instalación. Err_Almacen_Recep Err. Recep. Vector Error en recepción de vector almacén Err_alm_defecto Err_Alm_defecto No hay sitio para pallet defectuoso Err_alm_sin_tratar Err_Alm_sin_tratar No hay sitio para pallet sin pieza Err_alm_tratada Err_Alm_tratada No hay sitio para pallet con pieza Err_ext_tratada Err_ext_tratada No hay pallet con pieza Err_ext_defecto Err_ext_defecto No hay pallet defectuoso Err_ext_sn_tratar Err_ext_sin_tratar No hay pallet sin pieza fallo_leve_T1 F.leve T1 Fallo leve en tramo 1 fallo_leve_T2 F.leve T2 Fallo leve en tramo 2 fallo_leve_T3 F.leve T3 Fallo leve en tramo 3 fallo_leve_T4 F.leve T4 Fallo leve en tramo 4 F_grave_T11 Fallo G. Tramo11 Desaparición bandeja en T11 F_grave_T12 Fallo G. Tramo12 Desaparición bandeja en T12 F_grave_T13 Fallo G. Tramo13 Desaparición bandeja en T13 F_grave_T14 Fallo G. Tramo14 Desaparición bandeja en T14 F_grave_T22 Fallo G. Tramo22 Desaparición bandeja en T22 F_grave_T21 Fallo G. Tramo21 Desaparición bandeja en T21 F_grave_T23 Fallo G. Tramo23 Desaparición bandeja en T23 F_grave_T31 Fallo G. Tramo31 Desaparición bandeja en T31 F_grave_T32 Fallo G. Tramo32 Desaparición bandeja en T32 F_grave_T33 Fallo G. Tramo33 Desaparición bandeja en T33 F_grave_T41 Fallo G. Tramo41 Desaparición bandeja en T41 F_grave_T42 Fallo G. Tramo42 Desaparición bandeja en T42 F_grave_T43 Fallo G. Tramo43 Desaparición bandeja en T43 F_grave_T44 Fallo G. Tramo44 Desaparición bandeja en T44 Anexo A: Programación del autómata principal 92 93 93 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 94 95 95 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 96 97 97 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 98 99 99 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 100 101 101 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 108 109 109 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 110 111 111 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 112 113 113 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 114 115 115 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 116 117 117 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 124 125 125 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 126 127 127 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 128 129 129 Integración de equipos en célula de fabricación flexible Anexo A: Programación del autómata principal 130 131 ANEXO B: PROGRAMACIÓN DEL ALIMENTADOR DE BANDEJAS Anexo B: Programación del alimentador de bandejas 132 133 133 Integración de equipos en célula de fabricación flexible